目录
1.java中的字符串常量池,JVM的什么地方?
JDK7之前,类似于字符串常量池等等常量数据都是存储方法区(Method Area),也被叫做永久代
JDK7开始去永久代,将字符串常量池等等常量数据存储到堆内里。
JDK8,元数据区(Metaspace),将1.6其他一些存储在方法区的数据,挪到了元数据区中,
字符串常量池并没有被挪回去
言外之意:java从jdk7,字符串常量池存储在heap中,jdk之前是存储在永久代中
2.final、finally、finalize()三者的区别?
finally
提到finally,那么try-catch就逃不掉了。finally 则是Java保证重点代码一定要被执行的一种机制。最常用的地方:通过try-catch-finally来进行类似资源释放、保证解锁等动作
finalize
设计之初的作用就是:在CG要回收某个对象时,让这个对象有底气的大喊一声:“报告,我还能再抢救一下!”。但是也正是因为如此,JVM要对它进行额外处理。finalize也就成为了CG回收的阻碍者,也就会导致这个对象经过多个垃圾收集周期才能被回收。
3.值传递和引用传递
参考博文:
Java 是值传递还是引用传递
4.Object类
参考博文:
Object类
5.三个print区别
print()
输出不换行
println()
输出换行
pringtf()
可以在输出的时候进行格式化,不换行
参考博文:
Java中print、printf、println的区别
6.toString()的方法的作用
2021.7.29:
主要是用于格式化对象的输出
参考博客:
传送门
7.面试题:ArrayList与LinkedList的区别
1. 对于随机访问,ArrayList要优于LinkedList。
2. 对于插入和删除操作,LinkedList优于ArrayList。
图片传送门