JVM
啊林博士
这个作者很懒,什么都没留下…
展开
-
重温Java基础(一)
目录 1.Java名的来源 2.Java的特点 3.JDK 4.Java应用程序 5.反编译 6.编程风格 7.Java之父-James Gosling 1.Java名的来源 印度尼西亚有一个重要的盛产咖啡的岛屿叫Java,中文译名为爪哇,开发人员为这种新的语言起名为Java,其寓意是为世人端上一杯热咖啡。所以我们可以看到Java的图标是一杯咖啡的形状。 2.Java的特点...原创 2018-08-12 01:27:58 · 576 阅读 · 0 评论 -
JVM-Java内存区域
1.为什么要了解JVM? 不知道你是否写过C++和C语言的程序,当你用new创建一个对象的时候,就必须去写配对的delete/free代码,来释放该对象的内存。这是因为C++和C语言对象的内存都是由程序员来管理的,也就是承担着每一个对象生命开始到终结的维护责任。 来看这篇文章的朋友肯定写过Java程序,在写Java程序中,我们并没有看到delete/free代码来...原创 2018-08-31 16:39:34 · 196 阅读 · 0 评论 -
JVM-垃圾收集器
如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。 在了解这些收集器的时候,要了解每一种收集器是单线程还是多线程、采用的是什么算法、优缺点。了解这些特征,就比较好了解这些收集器在相应场景的具体作用。 以下的图是HotSpot虚拟机的垃圾收集器。如果两个收集器之间存在连线,就说明它们可以搭配使用。虚拟机所处的区域,则表示它是属于新生代收集器还是老年代收集器。 新...原创 2018-09-03 18:23:39 · 177 阅读 · 0 评论 -
JVM-判断对象死活
Java虚拟机的内存管理机制其实就是在堆和方法区中,对已经“死去”的对象进行内存回收,也可以说是释放这些对象的内存。所谓“死去”的对象,其实就是这些对象没有被其他任意一个对象所引用(这句话对应着引用计数算法,其实说得不是很准确,所以引用计数算法引用不多)。比较准确的说法是,“死去”的对象都跟一个指定区域内的对象没有任何联系(也就是根对象),就是跟这个指定区域里面的对象隔绝。 判断一个对象是否已经...原创 2018-09-03 20:39:51 · 213 阅读 · 0 评论 -
JVM-垃圾收集算法
标记-清除算法(Mark-Sweep) 最基础的收集算法就是“标记-清除”算法,如同名字一样,算法分两个阶段标记和清除。 首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。 两个不足之处: 效率问题,标记和清除两个过程的效率都不高。 空间问题,标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致以后在程序运行过程中需要分配较大对象时,无法找到足够的连续...原创 2018-09-03 22:23:31 · 219 阅读 · 0 评论