问题一:什么情况下会触发Full GC?
什么情况下会触发Full GC?
参考回答:
每次进行Minor GC或者大对象直接进入老年区时,JVM会计算所需空间大小。如果所需空间小于老年区的剩余空间大小,则进行一次Full GC(全局垃圾回收)。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/627155
问题二:创建一个对象需要经过哪些步骤?
创建一个对象需要经过哪些步骤?
参考回答:
创建一个对象需要经过以下步骤:类加载检查、分配内存、初始化零值、设置对象头、执行init方法。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/627157
问题三:类加载检查是什么?
类加载检查是什么?
参考回答:
类加载检查是虚拟机在遇到new指令时,首先检查是否能在常量池中定位到这个类的符号引用,并确认这个符号引用代表的类是否已经被加载、解析和初始化过。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/627160
问题四:如何为新生的对象分配内存?
如何为新生的对象分配内存?
参考回答:
新生对象的内存分配方式有“指针碰撞”和“空闲列表”两种,具体选择哪种方式由Java堆是否规整决定,而Java堆的规整性又取决于所采用的垃圾收集器是否带有压缩整理功能。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/627161
问题五:初始化零值是什么操作?
初始化零值是什么操作?
参考回答:
初始化零值是在内存分配完成后,虚拟机将分配到的内存空间都初始化为零值,以确保对象的实例字段在Java代码中可以不赋初始值就直接使用,此时程序能访问到这些字段的数据类型所对应的零值。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/627162