最近看了点关于 JVM 的东西,这里简单的梳理并记录一下。并不保证我梳理的每一句都是正确的,但是对于我而言应该是最容易方便我记忆的。
大多数情况下,对象在新生代Eden区中分配。当Eden区没有足够空间进行分配时,虚拟机将发起一次Minor GC
以下实现中,私有静态变量 uniqueInstance 被延迟实例化,这样做的好处是,如果没有用到该类,那么就不会实例化 uniqueInstance,从而节约资源。这个实现在多线程环境下是不安全的,如果多个线程能够同时进入 if (uniqueInstance...
字符串常量池和 intern 方法先举个例子,我们创建 10000 个相同的 String,并且不使用常量池
永久代和元空间都是 HotSpot 虚拟机中的概念,HotSpot 虚拟机是 Sun JDK 和 Open JDK 中自带的虚拟机,也是目前使用范围最广泛的 Java 虚拟机,当我们提到虚拟机时,大概率指的就是 HotSpot 虚拟机。...
在Java的内存运行时区域的各个部分中:程序计数器、虚拟机栈、本地方法栈3个区域属于线程私有,随线程而生、随线程而灭,因此不需要过多的考虑内存的回收;所以垃圾回收的主要区域就主要集中在Java堆和方法区...
Java堆用于存储对象实例,只要不断的创建对象并且保证GC Roots到对象之间有可达路径来避免垃圾回收,就可以触发Java堆的内存溢出异常
最新 IDEA 激活码提取链接:https://docs.qq.com/doc/DVU9meURJVENHV2VJ
72 System.gc() 和 Runtime.gc() 的作用?有什么区别?