一、http和tcp/ip的区别?
http是应用层协议,主要解决如何封装数据。
tcp/ip则是传输层协议,主要解决数据如何在网络中传递。
web应用使用http协议作为应用层协议来封装成http文本协议,然后使用tcp/ip做传输层协议将信息发布到网络上。



二、xml的解析方法?
(DOM、SAX)基本的解析方式、DTD、XSLT
SAX是基于事件流的解析,DOM是基于XML文档树结构的解析

DOM解析的优缺点?
原理:解析器读入整个文档,构建一个驻留内存的树结构,然后就可以使用了。
优点:整个树结构存在内存当中方便操作,支持删除,修改,重新排列等功能;
缺点:整个文档存入内存,浪费空间和时间。
使用场合:一旦解析了文档还需多次使用这些数据,硬件资源充足(内存,cpu)。

SAX生成和解析xml的优缺点?
为解决dom的问题而生的。
优点:不用事先调入整个文档,占用资源少;代码量少于dom解析器,适用于Applet,下载!
缺点:不是持久的;事件过后,若是没有保存数据,数据就会丢失,无状态性;从事件中只能只能得到文本,但不知道来源;
使用场合:Applet;只需知道xml的少量内容,很少回头访问,机器内存少。


三、String和StringBuffer和StringBuilder都什么时候用?
String一般多用于定长字符串。
需用经常修改或追加的字符串用Stringbuffer和StringBuilder。(效率高于String)
多线程用StringBuffer,线程安全
单线程StringBuilder,线程非安全。(速度最快)

总结
1.如果要操作少量的数据用 = String
2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer

四、线程和进程的区别?
线程是指进程内的一个执行单元,也是进程内的可调度实体。
与进程区别:
1.地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己的内存地址。
2.资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源。
3.线程是处理器调度的基本单位,但进程不是。
4.二者可以并发执行。

五、 for(foo('A');foo('B')&&(i<2);foo('C'))  for循环的结构?
1.初始化语句
2.循环的终止控制
3.每次循环完毕时执行

六、this和super的区别?
this通常指当前对象,super则指父类的;
this的另一个用途是调用当前对象的另一个构造函数,super引用父类的某种东西。

七、public,private,protected的区别?
public修饰词,表示成员是公开的,所有其他类都可以访问;
private修饰词,表示成员是私有的,只有自身可以访问;
protected修饰词,即子类可以访问父类受保护成员,同时相同包内的其他类也可以访问protected成员。

八、什么是多态?
多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。