- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java面試题精编
JAVA面试题精编
1. String 和StringBuilder、StringBuffer的区别
String对象是不可变的(immutable),类中每一个修改String值的方法,都是创建了一个全新的String对象。StringBuilder、StringBuffer支持可变的字符串,StringBuffer是线程安全的。字符串串联(+)是通过 StringBuilder(或 StringBuffer)类及其append()方法实现的,在动态构造字符数据(循环方式)时应使用 StringBuilder(或StringBuffer)。
2. Collection 和 Collections的区别。
Collection是集合结构的根接口,继承它的接口主要有Set和List。
Collections是集合类的一个帮助类,提供了一系列的静态方法,实现对各种集合的搜索、排序、同步等操作。
3. Error、Exception、RuntimeException有何异同?列举常见的RuntimeException、Error。
Error、Exception继承自所有异常的超类Throwable,RuntimeException是Exception的一个特殊子类。Error和RuntimeException是未受检异常,在程序中不需要也不应该被捕获。按照惯例,Error被JVM保留用于表示资源不足、约束失败,或其他严重错误;RuntimeException表明编程错误。Exception表示程序运行过程中可能出现的非正常状态,是受检异常。对可恢复的情况应使用受检异常,对编程错误使用RuntimeException。
常见RuntimeException:NullPointerException、IllegalArgumentException 、IllegalStateException 、IndexOutOfBoundsException、UnsupportedOperationException、 NoSuchElementException、ClassCastException、BufferOverflowException。
常见Error:NoClassDefFoundError、UnsatisfiedLinkError、OutOfMemoryError、StackOverflowError、UnknownError。
4. final, finally, finalize的区别。
final用于声明属性、方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示总是执行。
finalize是Object类的一个方法,在垃圾收集器执行时会调用被回收对象的此方法。
5. Overload和Override的区别。Overload的方法是否可以改变返回值的类型?
如果子类中定义的方法与父类有相同的名称、参数和返回类型(自Java 5开始支持协变返回类型),称覆盖(Override)了父类方法,子类的对象使用这个方法时,将调用子类中的定义。
如果在一个类中定义了多个同名的方法,它们有不同的参数个数或参数类型,则称为方法的重载(Overload)。
Overload的方法可以改变返回值的类型,但不能以返回值区分重载方法。
6. (,|)与 (,||)的区别。
(,|)是位操作符,(,||)是逻辑操作符。
逻辑操作只能应用于布尔型,而位操作可以应用于布尔型和整型;对于布尔型位操作符与逻辑操作符效果相同,但位操作不会产生短路
7. List、Set、Map三者的异同。
List、Set继承自Collection接口,保存单一的元素。List以特定的顺序保存一组元素,可有重复元素。Set不保证迭代顺序,不能有重复元素,元素必须定义equals()方法。Map保存key-value值,Map不能包含重复的键,每个键最多只能映射一个值,键必须定义equals()方法。
8. ArrayList、LinkedList、CopyOnWriteArrayList的存储性能和特性。
三者均按照插入顺序保存元素。ArrayList使用数组方式存储数据,随机访问速度快,插入和移除元素较慢。LinkedList使用双向链表实现存储,插入和移除元素快,随机访问较慢,另外LinkedList可用作堆栈、队列或双端队列。CopyOnWriteArrayList是ArrayLis线程安全的变体,其中所有可变操作都是通过对数组进行复制来实现的,只对修改操作加锁,因此修改和读取操作可同时发生。
Vector也是线程安全的List,是Java早期版本的实现,在新程序中不应该使用。Collections类提供了同步的静
文档评论(0)