一、华为题库1)tcpip应用层之上的几个协议具体说明内容:OSI是一个开放性的通信系统互连参考模型,他是一个定义得非常好的协议规范。OSI模型有7层结构,每层都可以有几个子层。OSI的7层从上到下分别是7应用层6表示层5会话层4传输层3网络层2数据链路层1物理层;其中高层(即7、6、5、4层)定义了应用程序的功能,下面3层(即3、2、1层)主要面向通过网络的端到端的数据流。其中传输层包含tcpudpspx等协议Tcpip模型是一系列网络协议的总称。Tcpip模型的四层结构:这些协议分成四个层次,上一层的协议都以下一层的协议为基础。从下到上的四层,连接层(LindLayer)、网络层(InternetLayer)、传输层(TransportLayer)、应用层(ApplicationLayer)。1、连接层负责建立电路连接,是整个网络的物理基础,典型的协议包括以太网、ADSL等。数据链路层。这个层次为待传送的数据加入一个以太网协议头,并进行CRC编码,为最后的数据传输做准备。再往下则是硬件层次了,负责网络的传输,这个层次的定义包括网线的制式,网卡的定义等等(这些我们就不用关心了,我们也不做网卡),所以有些书并不把这个层次放在tcp/ip协议族里面,因为它几乎和tcp/ip协议的编写者没有任何的关系。发送协议的主机从上自下将数据按照协议封装,而接收数据的主机则按照协议从得到的数据包解开,最后拿到需要的数据。这种结构非常有栈的味道,所以某些文章也把tcp/ip协议族称为tcp/ip协议栈。2、网络层负责分配地址和传送二进制数据,主要协议是IP协议。3、传输层负责传送文本数据,主要协议是TCP协议、UDP协议4、应用层负责传送各种最终形态的数据,是直接与用户打交道的层,典型协议是HTTP、FTP等。TCP/IP详解学习笔记(1)-基本概念互联网IP地址:现在,通常使用的IP地址是一个32bit的数字,也就是我们常说的IPv4标准,这32bit的数字分成四组,也就是常见的255.255.255.255的样式。IPv4标准上,地址被分为五类,我们常用的是B类地址。具体的分类请参考其他文档。需要注意的是IP地址是网络号+主机号的组合,这非常重要。32Bit分成四组,一组8bit2^8=16*16=256域名系统域名系统是一个分布的数据库,它提供将主机名(就是网址啦)转换成IP地址的服务。RFCRFC是什么?RFC就是tcp/ip协议的标准文档,在这里我们可以看到RFC那长长的定义列表,现在它一共有4000多个协议的定义,当然,我们所要学习的,也就是那么十几个协议而已。端口号(port)注意,这个号码是用在TCP,UDP上的一个逻辑号码,并不是一个硬件端口,我们平时说把某某端口封掉了,也只是在IP层次把带有这个号码的IP包给过滤掉了而已。应用编程接口现在常用的编程接口有socket和TLI。而前面的有时候也叫做“Berkeleysocket”,可见Berkeley对于网络的发展有多大的贡献。TCP/IP详解学习笔记(2)-数据链路层数据链路层有三个目的:为IP模块发送和接收IP数据报。为ARP模块发送ARP请求和接收ARP应答。为RARP发送RARP请求和接收RARP应答ip大家都听说过。至于ARP和RARP,ARP叫做地址解析协议,是用IP地址换MAC地址的一种协议,而RARP则叫做逆地址解析协议,在tcp/ip协议的后面章节会介绍它们(在局域网里面用ARP协议可以很容易的搞瘫痪网络哦)数据链路层的协议还是很多的,有我们最常用的以太网(就是平时我们用的网卡)协议,也有不太常见的令牌环,还有FDDI,当然,还有国内现在相当普及的PPP协议(就是adsl宽带),以及一个loopback协议。联系linux里面的ifconfig-a命令,这个命令通常会得到如下的结果其中,eth0就是以太网接口,而lo则是loopback接口。这也说明这个主机在网络链路层上至少支持loopback协议和以太网协议。以太网(Ether-net)的定是指数字设备公司(DigitalEquipmentCorp.)、英特尔公司(IntelCorp.)和Xerox公司在1982年联合公布的一个标准,这个标准里面使用了一种称作CSMA/CD的接入方法。而IEEE802提供的标准集802.3(还有一部分定义到了802.2中)也提供了一个CSMA/CD的标准。这两个标准稍有不同,TCP/IP协议对这种情况的处理方式如下:·以太网的IP数据报封装在RFC894中定义,而IEEE802网络的IP数据报封装在RFC1042中定义。·一台主机一定要能发送和接收RFC894定义的数据报。·一台主机可以接收RFC894和RFC1042的封装格式的混合数据报。·一台主机也许能够发送RFC1042数据报。。如果主机能同时发送两种类型的分组数据,那么发送的分组必须是可以设置的,而且默认条件下必须是RFC894分组。可见,RFC1042在TCP/IP里面处于一个配角的地位。这两种不同的数据报格式请参考教材。ppp(点对点协议)是从SLIP的替代品。他们都提供了一种低速接入的解决方案。而每一种数据链路层协议,都有一个MTU(最大传输单元)定义,在这个定义下面,如果IP数据报过大,则要进行分片(fragmentation),使得每片都小于MTU,注意PPP的MTU并不是一个物理定义,而是指一个逻辑定义(个人认为就是用程序控制)。可以用netstat来打印出MTU的结果,比如键入netstat-in上文摘自上面的网址上面的是tcpip协议的补充2)继承子类父类的问题extends关键字理解继承是理解面向对象程序设计的关键。在Java中,通过关键字extends继承一个已有的类,被继承的类称为父类(超类,基类),新的类称为子类(派生类)。在Java中不允许多继承。子类可以覆盖父类的方法。Java中是单继承,一个子类只能有一个直接父类。子类包含于父类同名方法的现象称为方法重写,也成为方法覆盖。Override。方法的重写遵守“两同两小一大”规则,两同,方法名相同,形参列表相同。两小指的子类返回值类型应该比父类方法返回值类型更小或者相等。子类方法声明抛出的异常应该比父类方法声明抛出的异常类更小或者相等。一大,子类的访问权限应该比父类方法更大或者相等。覆盖方法和被覆盖的方法要么都是类方法,要么都是实例方法。3)java的集合对象arraylistlinklisthashsethashmap的区别arrayListLinkList1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。2.对于随机访问get和set,ArrayList优于LinkedList,因为ArrayList可以随机定位,而LinkedList要移动指针一步一步的移动到节点处。(参考数组与链表来思考)Arraylist适合查询linkedlist适合增删改3.对于新增和删除操作add和remove,LinedList比较占优势,只需要对指针进行修改即可,而ArrayList要移动数据来填补被删除的对象的空间。ArrayList和LinkedList是两个集合类,用于存储一系列的对象引用(references)。例如我们可以用ArrayList来存储一系列的String或者Integer。那么ArrayList和LinkedList在性能上有什么差别呢?什么时候应该用ArrayList什么时候又该用LinkedList呢?java中ArrayList、LinkList区别和hashmap://blog.chinaunix.net/uid-26864892-id-3167656.html)Stringbuffer和String的比较)接口的说法不能有proteced修饰的方法不能有static修饰的方法都是publicabstract修饰的方法都是publicvoid类型一个类能实现多个接口接口里不允许定义静态方法,接口支持多继承。接口的主要用途是被实现类实现6)数据库连接池的原理数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接。更为重要的是我们可以通过连接池的管理机制监视数据库的连接的数量﹑使用情况,为系统开发﹑测试及性能调整提供依据。7)collectionIterator接口arraylisthashsethashmaplinklist)使用jdbc链接java的codeJDBC连接各种数据库的方法(经典)Sqlserver1.PublicvoidFindAllUsers(){2.//1、装载sqlserver驱动对象3.DriverManager.registerDriver(newSQLServerDriver());4.//2、通过JDBC建立数据库连接5.Connectioncon=DriverManager.getConnection(jdbc:sqlserver://192.168.2.6:1433;DatabaseName=customer,sa,123);6.//3、创建状态7.Statementstate=con.createStatement();8.//4、查询数据库并返回结果9.ResultSetresult=state.executeQuery(select*fromusers);10.//5、输出查询结果11.while(result.next()){12.System.out.println(result.getString(email));13.}14.//6、断开数据库连接15.result.close();16.state.close();17.con.close();18.}1)连接Oracle8/8i/9i/10g/11g(thin模式)Class.forName(oracle.JDBC.driver.OracleDriver).newInstance();Stringurl=JDBC:oracle:thin:@localhost:1521:orcl//orcl为Oracle数据库的SIDStringuser=test;Stringpassword=test;Connectioncon=DriverManager.getConnection(url,user,password);2)连接DB2数据库Class.forName(com.ibm.db2.jcc.DB2Driver);Stringurl=JDBC:db2://localhost:5000/testDb;Stringuser=test;Stringpas