JVM基础

什么是JVM

JVM,中文java虚拟机,运行与java代码和os之间,正是因为JVM的存在才使得java能跨平台使用。

JVM能干啥

  • 使java语言跨平台,支持各种OS系统
  • 帮助回收内存

JVM内存模型

java内存模型.png
  • 线程共享
    • 堆:内存最大区域,存放对象实例,GC主要区域。
    • 方法区:存储虚拟机加载的类信息,常量和静态变量等。
  • 非线程共享
    • 栈(虚拟机栈):线程私有,存储栈帧,运行时常量等。
    • 本地方法栈:为执行native方法服务。
    • 程序计数器:线程私有,记录线程中方法执行位置,独享的原因是多线程是通过线程切换实现的,需要计数器记录每个线程的执行状态和位置。

jdk1.8虚拟机变化

去掉了方法区,增加了元数据区,存放类加载信息、常量和静态变量。

你可能感兴趣的:(JVM基础)