zoukankan      html  css  js  c++  java
  • JVM宏观认知&&内存结构

    JVM宏观认知

    1.什么是虚拟机?

    虚拟机是一种软件

    可分为系统虚拟机(仿真物理机)和程序虚拟机(执行单个计算机程序,比如JVM)。


    2.什么是Java虚拟机(JVM)?

    JVM是一种将字节码转化为机器码的软件。(同上)

    历经时间的迭代,目前广泛应用的Java虚拟机是Oracle的HotSpot VM。


    3.JVM有什么用?

    • 理论:加深对Java底层运行机制的了解和认知
    • 实践:自定义性能更强的JVM(参数调优),排查由于Java应用本身导致的线上问题(调优主要是调堆)

    JDK的发布版本了解一下

    • 1991.4 :Java语言前身Oak诞生

    • 1995.5:Oak语言改名为Java

    • 1996.1:JDK1.0发布,代表技术包括JVM,Applet,AWT
      • Applet是一种Java程序,需要嵌入在HTML中解释执行
      • AWT是早期的抽象窗口工具包,目前流行的有Swing,JavaFx

    • 1997.2:JDK1.1发布,代表技术有JAR文件格式,JDBC,内部类,反射

    • 2002.2:JDK1.4发布,新的技术有正则表达式,NIO,日志类
      • 正则表达式是对字符串操作的一种逻辑格式
      • NIO在IO的基础上增加了缓冲区,是一种非阻塞式的IO模型

    • 2004.9:JDK1.5发布,新的技术有自动装箱,泛型,注解,枚举,foreach循环

    • 2006.11:Sun公司宣布将Java开源,并建立了OpenJDK组织对源码进行管理。

    • 2009.4:Oracle以74亿美元收购Sun公司。

    • 2014.3:Oracle发布JDK1.8,新的特性有Lambda表达式,Stream API

    • 2017.9:JDK9发布,新特性有模块化系统,可交互的REPL工具,JIT,JVMCI等等

    • 2018.3:JDK10发布,新特性包括JEP286局部变量的类型推断,JEP317向G1引入Full GC

    • 2018.9:JDK11发布,新特性包括基于嵌套的访问控制,JavaFx被移除【JDK1.8有】

    • 2019.3:JDK12发布,新特性有低暂停时间的GC,微基准测试套件,Switch表达式。

    ......



    JVM内存结构

    JVM内存结构也称为「运行时数据区」。


    线程公有:

    • Java堆:存放Java实例对象,生命周期和JVM一致
    • 方法区:存储已被虚拟机加载的类信息、final修饰的常量、static修饰的静态变量。
    • 运行时常量池:是方法区的一部分,存放字面量与符号引用。
      • 字面量可以理解为实际值,int a = 8中的8 和 String a = "hello"中的hello都是字面量
      • 符号引用是一个字符串,对应唯一的类,方法,或者字段。

    线程私有:

    • 程序计数器:每个线程都有一个程序计数器,就是一个指针,指向方法区中的方法字节码(下一个将要执行的指令代码),由执行引擎读取下一条指令
    • 虚拟机栈:描述Java方法执行的过程内存是如何变化的。
      • 每执行一个方法就会往栈中压入一个元素,这个元素叫“栈帧”用于存储局部变量表栈的出入信息以及方法出口信息等。
      • 生命周期和线程相同,线程结束自动释放内存,不需要垃圾回收。
    • 本地方法栈:为虚拟机使用到的Native方法服务。Native底层是C语言编写的,用于和操作系统交互。
  • 相关阅读:
    AS将一个项目导入到另一个项目中
    Android Studio出现:Cause: unable to find valid certification path to requested target
    小米手机Toast带app名称
    PopupWindow 点击外部区域无法关闭的问题
    EditText inputType类型整理
    Fragment通过接口回调向父Activity传值
    Android selector一些坑
    Installation failed with message Failed to commit install session 634765663 with command cmd package
    旷视上海研究院机器人方向招聘
    语义SLAM的数据关联和语义定位(四)多目标测量概率模型
  • 原文地址:https://www.cnblogs.com/noneplus/p/11440694.html
Copyright © 2011-2022 走看看