摘要:Main.java (总结在注释中) public class Main { public static void main(String[] args) { /** * REASON: * 单纯的只初始化数组,不会触发相应的类实例化 * * OUTPUT: * empty output */ //
阅读全文
摘要:GC log 这是真实的例子: Java HotSpot(TM) 64-Bit Server VM (25.92-b14) for windows-amd64 JRE (1.8.0_92-b14), built on Mar 31 2016 21:03:04 by "java_re" with MS
阅读全文
摘要:什么叫引用reference Object o = new Object(); 这个 o,我们可以称之为对象引用,而 new Object()我们可以称之为在内存 中产生了一个对象实例。 当写下 o=null 时,只是表示 o 不再指向堆中 object 的对象实例,不代表这个对象实例不存在了。 强
阅读全文
摘要:对象的创建 Step1 类加载检查 当发现一条new指令时,检查: Step2 为新生对象分配内存 对象所需的内存大小在类加载完成之后便可完全确定。分配方式有两种,选择哪种分配方式由java堆是否规整决定;而java堆是否规整又由所采用的垃圾收集器是否带有压缩整理功能决定。 两种分配方式: Step
阅读全文
摘要:ClassLoader定义 ClassLoader种类 BootStrapClassLoader无法在IDEA里面查看源代码,只能看JVM 源码才能找到。 ExtClassLoader,会从System.getProperty("java.ext.dirs") 寻找.class 文件 AppClas
阅读全文
摘要:GC机制的一些总结 https://blog.csdn.net/super_qing_/article/details/85263991 https://blog.csdn.net/yhyr_ycy/article/details/52566105 https://www.cnblogs.com/s
阅读全文
摘要:Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。 JVM是一个内存中的虚拟机, Java虚拟机在执行Java程序的过程中会把它管理的内存划分为若干个不同的数据区域。 运行时数据区Runtime Data Area 一、程序计数器(Prog
阅读全文