JVM: jvm各个区域

JVM:通过软件模拟的一个完整的具有硬件系统功能的计算机系统,运行在一个完全隔离的环境中。具有跨平台的功能。

 

jvm和vmware 的区别:vmware模拟的是真实存在的计算机系统。但是jvm模拟的是一个虚拟不存在的系统

 

jvm如何实行跨平台?

  原理:编译后字节码文件和平台无关,所以只需要每个平台有对应的虚拟机就可以。

 

 

jVM ,jdk, jre 三者 

 

java语言优点:

 优点:摆脱平台的束缚,有了jvm就可以实现跨平台,一次编写,到处运行。它提供了一个相对安全的内存管理和访问机制,避免了大部分的内存泄露,和指针越界问题。

 

JDK:把java程序设计语言,java虚拟机,java api类库这三部分统称为JDK。JDK是用于支持java程序开发的最小环境。

JRE: java api类库中的javase api子集和java虚拟机称为 JRE; JRE是支持java程序运行的标准环境

 

 

jvm各个区域:

程序计数器:  

    程序计数器,可以看作是当前线程执行字节码文件的一个行号指示器。字节码解释器,通过程序计数器的值来选取下一条需要执行的指令是什么。分支,循环,跳转,异常处理,线程恢复都是由它来实现。如果执行的是一个本地方法,那么计数器值为空。

  每个线程都有私有的程序计数器。它的生命周期随线程的启动而产生,随线程结束而消亡。它是唯一一个没有规定outofMemoryError异常的区域,不存在内存溢出。

 

java虚拟机栈:

   也是线程私有的,生命周期和线程同步。虚拟机栈描述的是java方法执行的内存模型。并且每一个方法执行的同时都会创建一个栈帧存入虚拟机栈,方法执行完毕,对应的栈帧就会出栈。

  (栈帧:是方法运行是的基本数据结构。包含了方法的局部变量表,操作数栈,返回地址,动态连接等信息)

  对于这个区域,有两种异常状况: 1、如果线程请求栈帧的深度大于虚拟机栈的深度,那就会抛出StackOverflowError异常,如果虚拟机栈可以进行动态扩展,但是扩展时无法申请足够的内存,就会抛出OutOfMemeoryError异常。

 

本地方法栈:

   和虚拟机栈它们非常相似,不同在于虚拟机栈用于java方法的调用,而本地方法栈用于本地方法的调用。有的虚拟机直接就把虚拟机栈和本地方法栈合二为一。和虚拟机栈一样。本地方法栈也会抛出StackOverflowError异常和OutOfMemeoryError异常。

 ( native方法:被native修饰的方法,主要用于加载文件,和动态连接库。它和抽象方法相似,只有方法签名,没有方法体。本地方法无法实行跨平台,它可以被c语言重写。)

 

java堆:

    是虚拟机所管理内存中最大的一块,几乎所有的对象实例都在这里分配。它在虚拟机启动是就创建了,是被所有线程共享的一块区域。java堆也是垃圾回收管理的主要区域,也就是“GC"堆。从内存分配角度来说,java堆还可以细分成多个线程私有的分配缓存区,进一步细分可以方便更好的进行回收,更快的进行分配内存。其实无论如何划分,都和存放内容无关,都存的是对象实例。

  java堆也是可以进行动态扩展的,如果对象没有内存去完成实例分配,并且堆也没法再扩展,就会抛出OutOfMemoryError异常。

 

方法区:

   也是线程共享的区域,用于存储常量,类变量,类信息等数据。

   如果方法区内存不足,会抛出OutOfMemoryError异常

 

 

 运行时常量池:

     是方法区的一部分。用于存放编译时期的字面量和符号引用。这部分内容在类加载后进入方法区的运行时常量池。如果常量池在方法区无法申请到内存空间,会抛出OutOfMemoryError异常。

 

直接内存:

   本机内存,在java堆外。它并不是运行时数据区的一部分,它不用java堆的内存限制,它是直接本机系统申请内存,受本机总内存的限制。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值