一.如何确定某个对象是“垃圾” 二.典型的垃圾收集算法 三.典型的垃圾收集器 JVM(HotSpot) 7种垃圾收集器的特点及使用场景 https://www.cnblogs.com/chengxuyuanzhilu/p/7088316.html 什么时候会垃圾回收 什么对象可以作为gc root ...
分类:
编程语言 时间:
2018-08-04 15:49:26
阅读次数:
138
java虚拟机性能监控常用命令 Sun JDK监控和故障处理命令有jps、jstat、jinfo、jmap、jhat、jstack 。 1.jps jps:JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程。 常使用用命令如下: jps -l -m 显示系统 ...
分类:
其他好文 时间:
2018-08-04 14:31:59
阅读次数:
162
1.前言 HotSpot采取了可达性分析算法用来判断对象是否被能被GC,无论是引用计算法还是可达性分析算法都是判断对象是否存在引用来判断对象是否存活。如果reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称这块内存代表着一个引用。为了丰富的描述对象与对象之间的关系,更为了实现 ...
分类:
编程语言 时间:
2018-08-03 17:27:22
阅读次数:
145
浅谈Java中的hashcode方法 哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率。在Java的Object类中有一个方法: 1 public native int hashCode(); 根据这个方法的声明可知,该方法返回一个int类型的数值,并且是本地 ...
分类:
编程语言 时间:
2018-07-30 11:31:00
阅读次数:
179
呃。HotSpot VM的GC组老人之一Jon Masamitsu很久之前就写过blog讲解这个:https://blogs.oracle.com/jonthecollector/entry/our_collectors 简单来说,有这么多东西反映了HotSpot VM的开发历史和实现细节。我在写篇 ...
分类:
其他好文 时间:
2018-07-28 11:56:02
阅读次数:
374
[TOC] LockSupport源码分析 LockSupport是Java6引入的一个工具类, 用于挂起和唤醒线程; LockSupport 通过提供park() 和 unpark() 方法实现阻塞线程和解除线程阻塞, 实现阻塞与解除阻塞是基于许可(permit), permit相当于一个信号量, ...
分类:
其他好文 时间:
2018-07-27 01:29:30
阅读次数:
311
本章内容 本章介绍,JVM运行过程中是怎样划分区域的,堆,栈,方法区,这些是什么鬼?每个区域存储哪些内容? 区域介绍 程序计数器 虚拟机栈 本地方法栈 堆 方法区 本章已Hotspot为例,虚拟机栈和本地方法栈,是合并的 程序计数器(线程私有) 1 作用 存储程序当前执行指令的地址 2 注意 JVM ...
分类:
编程语言 时间:
2018-07-24 17:43:25
阅读次数:
138
垃圾回收机制 示例代码: gc的测试类,基础date就是为了输出方便带了时间,冲洗了finalize方法,在执行垃圾回收的时候调用 垃圾收集算法是垃圾收集器的理论基础,而垃圾收集器就是其具体实现。下面介绍HotSpot虚拟机提供的几种垃圾收集器。 Serial/Serial Old 最古老的收集器, ...
分类:
编程语言 时间:
2018-07-21 14:47:32
阅读次数:
166
报错信息:Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (err ...
分类:
其他好文 时间:
2018-07-20 01:12:01
阅读次数:
572
当虚拟机运行在-client模式的时候,使用的是一个代号为C1的轻量级编译器, 而-server模式启动的虚拟机采用相对重量级,代号为C2的编译器. C2比C1编译器编译的相对彻底,服务起来之后,性能更高… 重点:在部分JDK1.6版本和后续的JDK版本(64位系统)中,-client参数已经不起作 ...
分类:
编程语言 时间:
2018-07-18 20:44:48
阅读次数:
245