2022兴业数金内推凉经
1.怎么理解Java跨平台特性
- 因为有java虚拟机,会把不同平台编译的java代码转化为字节码文件,如果需要在不同的平台上运行,则需要不同平台的虚拟机对字节码进行反编译。
2.编译的时候是32位的JVM,可以放在64位的虚拟机上运行吗
- 不行
3.Windows编译的可以放在Linux上运行吗
- 可以,跨平台特性
4.jvm的内存管理机制中什么时候会触发GC动作
对象首先分配在伊甸园区域
伊甸园(eden)空间不足时,触发minor gc(新生代GC),伊甸园和from存活的对象使用copy复制到to中,存活的对象年龄+1,并且交换from to
minor gc会引发stop the world ,暂停其他用户的线程,等待垃圾回收结束,用户线程才恢复运行
当对象寿命超过阈值时,会晋升至老年代,最大寿命是15(4bit)
当老年代空间不足时,会先尝试触发minor gc,如果之后空间仍不足,会触发full gc,STW时间更长
5.面向对象,重载和重写的区别
6.字符串比较==和equals的区别,原理是什么?String a = “1”和String b = “1”相等吗
- 相等,String a = “1",则字符串”1“将加入到字符串常量池中,String b = ”1“时,则会先在字符串常量池中找”1“,如果有则返回串池中的”1“,如果没有,则将”1“,加入到串池当中,故a==b是返回结果是true。