Java刚诞生的宣传口号:一次编写,到处运行(Write Once, Run Anywhere),其中字节码是构成平台无关的基石,也是语言无关性的基础。
在堆里存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,首要的就是确定这些对象中哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象)。...
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。主要包括:程序计数器、虚拟机栈、本地方法栈、Java堆、方法区(运 行时常量池)、直接内存。...
在了解双亲委派机制之前,我们先设想一个问题,就是如果我们用户自己写一个String这样一个的类,会出现什么样的情况?
JDK 是开发 Java 程序所需的工具包,包含了 JRE,并且额外提供了开发工具和库。JRE 是 Java 的运行时环境,包含了JVM。JVM 是运行 Java 程序的虚拟机。
脚本慢:程序流程图,加log计时 发现特别慢的时间结点,看代码逻辑,从逻辑上不可能有特别耗时的操作。 考虑是垃圾回收操作。 使用JVisaulVM进行排查,发现是在做垃圾回收。 堆做dump,定位到代码。 有几个地方。 第一个地方是,生...
GC Roots是垃圾回收器的起点,直接或间接地与GC Roots相关的对象就不会被回收。主要的GC Roots有:
在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可...
当被问到垃圾回收算法的时候,大多数人都知道三种回收算法,标记-清楚,标记-复制,标记-整理,但是标记的过程是如何的呢?在并发型标记的时候是怎么对对象图进行遍历的?...
Serial收集器是最基本、历史最悠久的垃圾收集器了。JDK1.3之前回收新生代唯一的选择。