Java 面试准备[二]

发布时间:2019-11-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Java 面试准备[二]脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

关于字符串的10个面试问题

1. == 和 equals()方法

== 是用于比较对象的引用地址的,或者是否指向同一个变量。
equals是比较对象的真实值的

2. 为什么针对安全保密高的信息,char[]比String更好?

char[] 是可以修改的,String是不可变对象,创建之后无法修改,无法删除,只能等到JVM垃圾回收。

3. 我们可以针对字符串使用switch条件语句吗?

JDK7 是支持在switch中使用字符串比较的,但AndROId目前还是基于JDK6的。

4. 如何将字符串转化成int?

int a = Integer.partInt("124");

5. 如何将字符串用空白字符分割开?

String [] a = aString.splIT(" ");

6. substring()方法到底做了什么?

JDK7 中 subString(m, n) 会创建一个新的字符串。

7. String vs StringBuilder vs StringBuffer

String 不可变对象。
StringBuilder 线程不安全类,速度比StringBuffer快。
StringBuffer 线程安全类,内部使用同步机制。

关于集合框架

1. Java集合框架都有哪些最佳实践呢?

根据实际的使用情况选择合适的数据结构,例如固定大小的还是需要增加大小的,有重复元素的还是没有的,需要保持有序还是不需要,遍历是正向的还是双向的,插入是在末尾的还是任意位置的,更多的插入还是更多的读取,是否需要并行访问,是否允许修改,元素类型是相同的还是不同的,等等。另外,还需要尽早考虑多线程,原子性,内存使用量以及性能等因素

不要假设你的集合里元素的数量一直会保持较小,它也有可能随着时间增长。所以,你的集合最好能够给定一个合适的大小。

针对接口编程优于针对实现编程。例如,可能在某些情况下,LinkedList是最佳的选择,但是后来ArrayList可能因为性能的原因变得更加合适
不好的方式

ArrayList list = new ArrayList(100); 

好的方式,针对接口编程

// PRogram to interface so that the implementation can change List list = new ArrayList(100); List list2 = new LinkedList(100);  List emptyList = Collections.emptyList( ); Set emptySet = Collections.emptySet( ); 

在取得列表的时候,如果返回的结果是空的话,最好返回一个长度为0的集合或者数组,而不要返回null。因为,返回null的话可能能会导致程序错误。调用你的方法的开发人员可能会忘记对返回为null的情况进行处理。

封装好集合:一般来说,集合都是不可变的对象。所以尽量不要把集合的成员变量暴露给调用者。因为他们的操作一般都不会进行必要的校验。

脚本宝典总结

以上是脚本宝典为你收集整理的Java 面试准备[二]全部内容,希望文章能够帮你解决Java 面试准备[二]所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。