平台奖励创作,可能会升级VIP文章,可以移步我的公众号:【编程朝花夕拾】,且可获取首发内容。
1、引言
各行各业都会有面试的环节,面试中被问的问题也是多种多样,让候选人应接不暇。如果你从容不迫,将面试官带入自己的节奏,恭喜你,你上岸了;如果被虐,吊打了,很可能就失去了这个机会。
IT圈的面试经常被大家诟病说,面试造火箭、入职拧螺丝。不知道其他行业怎么样?
2、面试场景
我们来回顾一下一则面试场景:
…
面试官:你说一下Object对象的占多大内存?
候选人:系统是32位还是64位?
面试官:64位
候选人:哪有没有开启指针压缩呢?
面试官:开启了
候选人:那应该占16个字节
面试官:哪不开启指针压缩呢?
候选人:那也是占16个字节
面试官:那开启指针和不开启指针的有什么区别?
候选人:开启指针压缩压缩对象头会变小,但是启用了对齐补充。
面试官:你明天来上班吧!
…
候选人对对Java对象的内存布局,JVM(Java虚拟机)相关的知识有一定的深度,直接变被动为主动,将面试官一步步带到自己的节奏上,最终拿下这场面试。
3、新手解读
如果只停留在编程表面,而不关注逻辑底层时,心中可能就是一万只羊驼奔腾而过。心里想着这玩意要估算么,实际测一下不就知道了,Object对象大小重要么,基本不用不到它,这不是故意为难人么!算了吧,这个公司不适合我,再见!
这也是典型的面试造火箭、入职拧螺丝,平时日常开发中99.99%用不到。
其实面试官,想考察候选人对Java对象的内存布局,JVM(Java虚拟机)相关的知识。下面跟着我,一起走进JAVA的内存世界。
JAVA是基于JVM运行的,这也是JAVA语言能够跨平台的原因。JVM的内存大小,影响的代码运行的流畅度。就好比我们的手机,内存越小就越容易卡顿一样。
因此,对JVM内存的管理也至关重要。Java对象首当其中,对象的大小,创建对象的多少,直接影响着内存。对象的估算,也是高并发情况下的对内存管理的一个重要指标。