JVM

2017-04-24  本文已影响0人  tesla1984

JVM:Java Virtual Machine即java虚拟机
虚拟机:指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统

Java虚拟机详解02----JVM内存结构

Java中的内存分配

java程序在运行时,需要在内存中的分配空间。为了提高运算效率,就对数据进行了不同空间的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
具体划分为如下5个内存空间

堆内存:

和程序开发密切相关
应用系统对象都保存在Java堆中
所有线程共享java堆
对分代GC来说,堆也是分代的
gc管理的主要区域

栈内存:

线程私有,生命周期和线程相同
栈由一系列帧组成(因此java栈也叫做帧栈)
帧保存一个方法的局部变量、操作数栈、常量池指针
每一次方法调用创建一个帧,并压栈

Java虚拟机详解04----GC算法和种类【重要】

  • 根据对象的存货周期的不同将内存划分为几块。一般是把jva堆分为新生代和老年代:短命对象为新生代,长命对象为老年代
  • 少量对象存活,适合复制算法:在新生代中,每次gc都发现有大批对象死去,只有少量存活,那就选用复制算法,只需要付出少量存活对象的复制成本就可以完成gc
  • 大量对象存活,适合用标记清理/标记整理:在老年代中,因为对象存活率高、没有额外空间对他进行分配担保,就必须使用标记清理/标记整理算法进行gc
    老年代的对象中,有一小部分是因为在新生代回收时,老年代做担保进来的对象;绝大部分对象是因为很多次gc都没有被回收掉进入老年代

Java虚拟机详解----JVM常见问题总结

类加载过程

  1. 加载:将类的class文件读入内存,并创建java.lang.Class对象
  2. 链接
  1. (显示)初始化
    以下几种情况中,会执行初始化过程:
上一篇 下一篇

猜你喜欢

热点阅读