随笔分类 - JVM
摘要:以下代码展示Java堆内存、方法区和Java栈内存之间的关系 引用关系图: SimpleHeap实例本身分配在堆内存中 描述SimpleHeap类的信息存放在方法区 main()函数中s1和s2局部变量存放在Java栈内存中,并指向堆内存的两个实例
阅读全文
摘要:java引用类型 强引用 :当内存不足的时候,都不会进行空间回收,最终JVM抛出OutOfMemoryError 软引用 :当内存不足的时候,进行对象的回收处理,往往用于高速缓存中 弱引用 :不管内存是否紧张,只要GC运行都会回收 幽灵引用 :和没引用一样。 强引用 JVM默认支持模式 在引用期间内
阅读全文
摘要:G1收集器(Garbage First) 从JDK1.7 u4版本之后正式引入到Java中的垃圾收集器 此类垃圾收集器主要应用在多CPU以及大内存的服务器环境下 主要特点是极大的减少垃圾收集的停顿时间,以提升服务器的操作性能 引入此收集器的目的是为了在将来的某一时间内可以替换掉CMS收集器 G1区域
阅读全文
摘要:GC策略 新生代GC策略: 串行GC:Serial Copying 并行回收GC:Parallel Scavenge 并行GC:ParNew 老年代GC策略: 串行GC:Serial MSC 并行GC:Parallel MSC 并发GC:CMC 新生代GC策略 新生代 串行GC(Serial Cop
阅读全文
摘要:JVM堆内存划分 在JDK1.8之后,将最初的永久带内存空间取消了,该图为JDK1.8之前的内存空间组成 取消永久代目的是为了将HotSpot于JRockit两个虚拟机标准联合为一个 在整个JVM堆内存之中实际上将内存分为了三部分: 新生带(年轻代):新对象和没达到一定年龄的对象都在年轻代 老年代:
阅读全文
摘要:java中最大的特点在于其具备良好的垃圾收集特性 GC是整个java之中最重要的安全保证 整个JVM中的GC的处理机制:对不需要的对象进行标记,而后进行清除 JVM堆内存划分 在JDK1.8之后,将最初的永久带内存空间取消了,该图为JDK1.8之前的内存空间组成 取消永久代目的是为了将HotSpot
阅读全文
摘要:java的引用类型是最为重要的数据处理模型 整个引用数据类型在数据处理之中会牵扯到:堆内存、栈内存、方法区。 整个引用操作流程 新定义的对象名称保存在本地变量表中 而后在这块区域里面需要确定要与之对应的栈内存空间 通过变量表中的栈地址可以找到堆内存 利用堆内存的对象进行本地方法的调用(方法区) 例如
阅读全文
摘要:java程序执行流程 所有的java程序代码必须保存在 .java的文件之中(源代码) 然后使用javac.exe命令将其编译为 .class文件 最后利用java.exe命令在JVM进程之中解释此程序 当JVM将所需要的 .class文件加载到JVM进程之中需要一个类加载器(ClassLoader
阅读全文

浙公网安备 33010602011771号