JVM

作者: tesla1984 | 来源:发表于2017-04-24 10:41 被阅读0次

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

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

Java中的内存分配

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

  • :存放局部变量
  • :存放所有new出来的东西
  • 方法区:被虚拟机加载的类信息、常量、静态常量等
  • 程序计数器(和系统相关)
  • 本地方法栈

堆内存:

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

栈内存:

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

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

  • 引用计数算法(老牌垃圾回收算法,无法处理循环引用,没有被java采纳)
  • 根搜索算法(在根搜索算法基础上,主要有下面三种)
    • 标记清除算法
    • 复制算法(新生代的GC)
    • 标记整理算法(老年代的GC)
  • 分代收集算法(新生代的gc+老年代的gc)
  • 根据对象的存货周期的不同将内存划分为几块。一般是把jva堆分为新生代和老年代:短命对象为新生代,长命对象为老年代
  • 少量对象存活,适合复制算法:在新生代中,每次gc都发现有大批对象死去,只有少量存活,那就选用复制算法,只需要付出少量存活对象的复制成本就可以完成gc
  • 大量对象存活,适合用标记清理/标记整理:在老年代中,因为对象存活率高、没有额外空间对他进行分配担保,就必须使用标记清理/标记整理算法进行gc
    老年代的对象中,有一小部分是因为在新生代回收时,老年代做担保进来的对象;绝大部分对象是因为很多次gc都没有被回收掉进入老年代

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

类加载过程

  1. 加载:将类的class文件读入内存,并创建java.lang.Class对象
  2. 链接
  • 验证:文件格式、语法语义验证等
  • 准备:为static修饰的静态域默认初始化,并在方法区分配内存空间
  • 解析:将符号引用替换为直接引用
  1. (显示)初始化
    以下几种情况中,会执行初始化过程:
  • 创建类的实例
  • 访问类或接口的静态变量(final static修饰的常量不会对类进行显示初始化。static final修改的变量则会做显示初始化)
  • 调用类的静态方法
  • 反射
  • 初始化类的子类(子类初始化问题:满足主动调用,即父类访问子类中的静态变量、方法,子类才会初始化,,否则仅父类初始化)
  • java虚拟器启动时被表明为启动类的类

相关文章

  • 深入JVM内核 目录

    深入JVM内核 目录 深入JVM内核1 初识JVM深入JVM内核2 JVM运行机制深入JVM内核3 常用JVM配置...

  • JVM内存模型(jvm 入门篇)

    概述 jvm 入门篇,想要学习jvm,必须先得了解JVM内存模型,JVM内存模型,JVM内存模型,JVM内存模型,...

  • Jvm(一)-Java虚拟机的内存管理

    [toc] JVM JVM回顾 1. 什么是 JVM JVM是Java Virtual Machine(Java虚...

  • JVM介绍系列文章

    知晓JVM系列(一):对JVM总览知晓JVM系列(二):JVM内存管理机制与优化初探知晓JVM系列(三) :常用的...

  • 科普

    1.JVM/JRE/JDK关系JVM

  • JVM

    JVM之内存模型JVM之对象定位与访问JVM之Java垃圾回收机制JVM之类加载

  • JVM

    栈容量由-Xss指定深入理解JVM—JVM内存模型 JVM内存模型和JVM参数的关系

  • JVM基础知识系列

    JVM基础系列 JVM知识点扫盲系列(1) JVM知识点扫盲系列(2) JVM内存的那些事 JVM类加载的那些事 ...

  • (过时、作废)android 多线程 — GC

    简单解析下JVM 先说下 JVM,虽然上篇文章在讲内存时介绍了 JVM ,但是我在这里还是以 JVM 开头,JVM...

  • 技术文章罗列

    JVM JVM知识点详解JVM初步诊断JVM内存模型 Java Api java8 stream Api讲解(上)...

网友评论

      本文标题:JVM

      本文链接:https://www.haomeiwen.com/subject/glikzttx.html