多语言展示
当前在线:801今日阅读:152今日分享:13

Java面试中常见异同点比较总结

1、抽象类abstract class 和接口interface的区别抽象类:a、声明方法的存在但不去实现;单继承关系b、不能创建抽象类的实例,可以创建一个变量,类型是抽象类,指向具体子类的一个实例c、不能有抽象构造函数和抽象静态方法d、抽象类的子类必须实现父类中的所有抽象方法接口:a、接口中的所有方法都是抽象的,所有成员变量都是public static final 修饰的b、类实现接口时,必须实现接口中的所有方法,c、多继承关系,可以实现多个接口2、String 、StringBuffer、StringBuilder的区别String: 的内容不可更改StringBuffer:内容可更改,是线程安全的StringBuilder:JDK5后为StringBuffer提供的单线程等价类,速度更快,优先选择3、final、finally、finalize的区别final:修饰符是关键字 final类不可被继承(一个类不可能同时为final和abstract) final变量必须声明时给初值,只可读取,不可更改 final方法只能使用不能重载finally:异常处理时提供的finally块来执行任何清楚操作finalize:方法名,实在object类中定义的,因此所有类都继承了它,finalize()方法是垃圾收集器删除对象之前对这个对象调用的,子类覆盖finalize()方法以整理系统资源或者执行其它清理工作4、Bit和Byte的区别Bit中文名称是位,用以描述电脑数据量的最小单位Byte,字节,是计算机信息技术用于计量存储容量和传输容量的一种计量单位。1Byte=8bit5、重写Overriding和重载Overloading的区别overriding重写:发生在父子类之间,方法名相同,参数(类型,个数,顺序)相同,返回值相同,访问权限不能更封闭,抛出异常不能更宽泛overloading重载:发生在同一个类中,方法名相同,但是参数(类型或个数或顺序)不同,返回值可以不相同。6、List 、Map 、Set 和接口 CollectionList和Set继承了Collection接口,Map不是Map中存放的是键值对List中存放的是有序允许重复Set中是无序不允许重复ArrayList ---按顺序存放数据的数组LinkList ---按顺序存放数据的链表Vector ---线程安全的按顺序存放数据的数组HashSet ---根据HashCode()和equals()方法来判断是否重复SortedSet ---有序TreeSet ---通过实现Comparable接口和Comparator接口而具有排序功能的接口ArrayList是线程不安全的,即不是同步的,数据默认增长为原来的一半Vector是线程安全的,数据默认增长为原来的一倍HashTable是线程安全的,不允许空(null)键值(key)HashMap是HashTable的轻量级实现,非线程安全的,都实现了Map接口,效率上HashMap高于HashTable,允许空键值,元素的排列顺序是不固定的TreeMap中的所有元素都保持着某种固定的顺序6、Collection和CollectionsCollection是java.util下的接口,是各种集合的父接口,继承于它的接口主要有Set和ListCollections是java.utils下的类,是针对集合的帮助类,提供一系列静态方法实现对各种集合的搜素、排序,线程安全化等操作7、应用服务器和WEB服务器应用服务器即能实现动态网页技术的服务器。是通过很多协议来为应用程序提供商业逻辑,提供的是客户端应用程序可以调用的方法Web服务器(www服务器)主要功能是提供网上信息浏览服务。专门处理HTTP请求,传送页面使浏览器可以浏览应用服务器:BEA weblogic ,IBM Websphere,Apach Tomcat,JbossWEB服务器:Microsoft IIS,Apach8、JSP中动态Include和静态Include的区别动态Include:总是会检查所含文件中的变化,适合用于包含动态页面,可以带参数静态Include:<%@include file='head.jsp'%>不会检查所含文件中的变化,适合静态页面9、Servlet中forward和redirect的区别forward是容器中控制权的转向,是服务器请求资源,服务器直接访问目标地址的URL,把URL的响应内容读取过来,再发给浏览器,浏览器不知道服务器发送的内容来自哪儿,所以地址栏不变redirect是服务器端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session、request参数都可以获取,可以看到地址栏中跳转后的链接地址前者更加高效,在forward可以满足需要时,尽量使用forward方法,这样有助于隐藏实际的链接,在需要跳转到一个其它服务器上的资源,必须使用sendRedirect()方法。10、B/S和C/S结构B/S (Browser/Server):客户机只要安装一个浏览器,服务器端安装数据库,用户界面通过www浏览器实现一部分事务逻辑在前端实现,主要事务在服务器端实现。浏览器通过web server同数据库进行数据交换C/S (Client/Server):服务器端通常采用高性能的PC,工作站或小型机,并采用大型数据库系统,客户端需要安装专用的客户端软件。11、get 和 post 的区别Form 中的 get 和 post 方法,在数据传输过程中分别对应了 HTTP 协议中的GET 和 POST 方法。二者主要区别如下:1) Get 将表单中数据按照 variable=value 的形式,添加到 action 所指向的URL 后面,并且两者使用“?”连接,而各个变量之间用“&”连接;Post 是将表单中的数据放在 form 的数据体中,按照变量和值相对应的方式,传递到 action所指向 URL;2)Get 是不安全的,因为在传输过程,数据被放在请求的 URL 中;Post 的所有操作对用户来说都是不可见的;3)Get 传输的数据量小,这主要是因为受 URL 长度限制;而 Post 可以传输大量的数据,所以在上传文件只能使用 Post;4) Get 限制 Form 表单的数据集必须为 ASCII 字符,而 Post 支持整个 ISO10646字符集;5)Get 是 Form 的默认方法。
推荐信息