学习笔记-java虚拟机-JVM虚拟机调优-未完~~~~

学习笔记-java虚拟机-JVM虚拟机调优

一、JVM引言

JVM在整个jdk中处于最底层,负责与操作系统(计算机)的交互(zmh理解语言交流),用来屏蔽操作系统环境,提供一个完整的Java运行环境,因此也叫虚拟计算机。操作系统装入JVM是通过jdk中Java.exe来完成解释运行,java.exe完成编译运行!

二、JVM内存结构

在这里插入图片描述

  1. 方法区 (Mthod Area):
    也称“永久代(permanent generation)”,“非堆”,用于储存虚拟机加载的类信息,常量,静态变量,是各个线程共享的内存区域,运行时常量池:方法区的一部分,Class文件中除了有类的版本,字段,方法,接口等描述信息外,还有一项信息就是常量池,用于存放编译器生成的各种符号引用,这部分内容将在类加载后放到方法区的运行时常量池中
  2. 栈空间:
    描述的是java方法执行的内存模型,每个方法被执行的时候,都会创建一个“栈帧”用于存储局部变量(包括参数),操作栈,方法出口等信息。
    每个方法被调用到执行完成的过程,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。声明周期与线程相同,是线程私有的.局部变量表:存放八种基本类型,对象引用,其中64位长度的long和double类型的数据会占用两个局部变量的空间,其余数据类型只占一个。
    局部变量表是在编译时完成分配的,当进入一 个方法时,这个方法需要在栈帧中分配多大的局部变量是完全确定的,在运行期间不再改变
  3. 程序计数器:
    是最小的一块内存,它的作用是当前线程所执行的字节码的行号指示器,在虚拟机的模型里,
    字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支,循环,异常处理,
    线程恢复等基础功能都需要依赖计数器完成.
  4. 堆(Heap):
    也叫java堆,CG堆。是JVM中所管理的内存中最大的一块内存区域,是线程共享的,在JVM启动时创建。存放了对象的实例及数组(所有new的对象)
    JVM的优化也可以称为堆的优化
  5. 程序计数器:
    是最小的一块内存,它的作用是当前线程所执行的字节码的行号指示器,在虚拟机的模型里,
    字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支,循环,异常处理,
    线程恢复等基础功能都需要依赖计数器完成
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值