1)jvm有很多种,其实jvm是一个标准,sun做的那个叫hotspot,作者就是后来v8的作者lars bak,其他公司也做过jvm,其中做得比较好的有bea的jrockit,其他的包括ibm的r9,apple的jvm等在内,都做得不行,所以jvm主要是整合淘汰掉这些做得不好的jvm(s),整合成 ...
分类:
编程语言 时间:
2017-10-24 14:11:41
阅读次数:
199
java是一门内存动态分配、垃圾自动回收的高级编程语言。 1 运行时数据分区 方法区 用来存储已被虚拟机加载的类信息、常亮、静态变量、即时编译后的代码等数据;在hotspot虚拟机中又被称为永久代,此外字符串常量池已经在java7版本后移除永久代。 运行时常量池是方法区的一部分,具有动态性,用于存放 ...
分类:
其他好文 时间:
2017-10-16 00:11:19
阅读次数:
189
一、对象的组成 对象头(Header): 运行时数据:存储对象运行时的数据,如哈希码、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等,这部分数据官方成为“Mark Word”,它的长度在32位和64位的虚拟机中分别是32bit和64bit。32bit的HotSpot虚拟机中,当对 ...
分类:
其他好文 时间:
2017-10-09 15:57:27
阅读次数:
191
如上面代码。 运行的时候输出: 上面输出结果中的"main"是执行mt.run();语句输出的, 而"子线程对象"则是执行.start()语句输出的。 也即前者代表着主进程,后者代表着子进程。 在HotSpot VM上,其实mt.run()几乎总是会比.start()调用的run()要早执行,因为T ...
分类:
编程语言 时间:
2017-10-08 19:42:25
阅读次数:
249
JVM的GC分为两个主要部分,第一部分是判断对象是否已死(堆内存的垃圾回收占主要部分,方法区(metaspace)的内存回收在最新的官方文档中未给出详细解释,暂时不做讨论范围),第二部分是对内存区进行回收用于下次的内存分配。 一、判断对象是否已死 JDK 8的VM实现是Hotspot虚拟机,它采用的 ...
分类:
其他好文 时间:
2017-10-04 14:07:31
阅读次数:
268
堆内存结构 引言 垃圾收集器就是垃圾收集算法的具体实现。HotSpot7种不同分代的收集器彼此之间可能搭配使用。 ...
分类:
其他好文 时间:
2017-09-30 11:43:29
阅读次数:
134
引言 判断对象是否被回收的算法有引用计数算法和可达性分析算法。其中可达性分析算法是根据GC Roots根节点作为起始点向下搜索引用链,找不到引用链则判定对象可回收。 可作为GC Roots根节点的对象主要是在全局性的引用(如常量、类静态属性)和执行上下文中(如栈帧中的本地变量表),现在的很多应用仅方 ...
分类:
其他好文 时间:
2017-09-29 19:51:33
阅读次数:
176
jps:JVM Process StatusTool,显示指定系统内所有的HotSpot虚拟机进程 jstat:JVM Statistics Monitoring Tool,用于手机HotSpot虚拟机各方面的运行数据 jinfo: Configuration Info for Java 显示虚拟机 ...
分类:
其他好文 时间:
2017-09-27 10:11:54
阅读次数:
201
Java 8彻底将永久代移除出了HotSpot JVM,将其原有的数据迁移至Java Heap或Metaspace。这一篇文章我们来总结一下Metaspace(元空间)的特性。如有错误,敬请指出,谢谢~ 一、引言:永久代为什么被移出HotSpot JVM了? 详见:JEP 122: Remove t ...
分类:
Web程序 时间:
2017-09-26 16:06:48
阅读次数:
244
安装可以参考 https://wiki.openwrt.org/doc/howto/wireless.hotspot.nodogsplash 安装注意事项: 1. 如果使用Chaos 15.05系统时,最好能安装nodogsplash 0.9_beta9.9.8-2,最新版本没有研究好,据说redi ...
分类:
其他好文 时间:
2017-09-24 18:13:08
阅读次数:
999