Java

面试题汇总(Java基础)

2019-10-29  本文已影响0人  王勇1024

Timer执行任务会有什么缺点?

Timer执行定时任务只会创建一个线程。
Timer是基于绝对时间的调度机制,对系统时间敏感。
Timer存在线程泄露问题(Timer不捕获异常,当抛出一个未检查异常时线程将终止)。

深拷贝和浅拷贝区别是什么?

对于基本数据类型,实际上是拷贝的它的值,但是对于对象而言,其实赋值的只是这个对象的引用,将原对象的引用传递过去,他们实际上还是指向的同一个对象。
1、浅拷贝:对基本数据类型进行值传递,对引用数据类型进行引用传递般的拷贝,此为浅拷贝。

== 和 equals 的区别是什么?

基本数据类型他们之间的比较,应用双等号(==),比较的是他们的值。
复合数据类型(类),当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址

字符串比较

# s1 == s2
String s1 = "Monday";
String s2 = "Monday";

# s1 != s2
String s1 = "Monday";
String s2 = new String("Monday");

# s1 == s2
String s1 = "Monday";
String s2 = new String("Monday");
s2 = s2.intern();
浅拷贝

2、深拷贝:对基本数据类型进行值传递,对引用数据类型,创建一个新的对象,并复制其内容,此为深拷贝。

深拷贝

for、foreach和iterator的区别

  1. 使用 Iterator 的好处在于可以使用相同方式去遍历集合中元素,而不用考虑集合类的内部实现(只要它实现了 java.lang.Iterable 接口)
  2. 使用for/foreach如果在循环的过程中调用集合的remove()方法,就会导致循环出错

强引用、软引用、弱引用、虚引用

参考资料

https://github.com/Snailclimb/JavaGuide
Java面试题汇总

上一篇下一篇

猜你喜欢

热点阅读