java虚拟机的内存区域划分

java虚拟机内存区域

参照官方文档 1.8版本

Oracle虚拟机内存划分文档 : https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.5

官方是这样对虚拟机内存进行描述的:
The Java Virtual Machine defines various run-time data 
areas that are used during execution of a program. 
Some of these data areas are created on Java Virtual 
Machine start-up and are destroyed only when the Java 
Virtual Machine exits. Other data areas are per thread. 
Per-thread data areas are created when a thread is created
and destroyed when the thread exits.

大概意思就是:Java虚拟机定义了在程序执行期间使用的各种运行
时数据区域。其中一些数据区域是在Java虚拟机启动时创建的(例如堆、方法区),仅
在Java虚拟机退出时销毁。其他数据区域是每个线程。线程数据区
域是在线程退出时创建和销毁线程时创建的(虚拟机栈、本地方法栈、程序计数器)。

The pc Register(程序计数器或者pc寄存器):
    程序计数器是线程私有的,如果线程执行的不是native 
    方法,则它保存的是当前虚拟机执行的java指令地址。
    如果是native方法,则它的值未定义
Java Virtual Machine Stacks(虚拟机栈或者“C stacks(C 栈)”):
    它随线程的创建而创建,它主要用来保存栈帧,
    栈帧主要用来保存局部变量、并在方法调用和返回结果中起作用,栈帧可以被分配在堆上,它的内存空间是不需要连续的。
    
    栈的大小可以人为设定。
    当计算的栈空间大于实际的栈空间的时候
    会抛出StackOverflowError。
    当栈需要进行扩容的时候,所剩的内存空间不满足扩容所需的大小的时候,
    或者内存不足以为新线程创建栈,会抛出OutOfMemoryError。
Heap(堆):
    堆是线程共享的数据区域、它是运行时数据区、分配所有实
    例对象内存和数组的内存。
    堆在虚拟机启动的时候创建、堆的内存空间有垃圾收集器管理
    (垃圾收集器类型可以有程序员来指定、选择合适的收集器)
    。堆的内存也可以不连续。堆上的对象永远不会显示的释放、
    即使调用了System.gc()方法也不一定会进行垃圾回收。
    程序员可以指定堆的初始大小、最大值和最小值。
    
    如果计算所需要的堆内存+已用堆内存超过堆的最大内存、则
    会抛出OutOfMemoryError。
Method Area(方法区):
    方法区属于线程共享的区域,它用来存储虚拟机加载的类信息、常量等。虚拟机规范认为它在逻辑上面是堆的一部分。但是可以不在方法区上面进行垃圾收集。它上面的对象属于永远不会被回收的。
    
    它的大小同样可以由伟大的程序员来指定。
    当需要加载的类信息的内存大于可用的方法区的内存时候,
    他会抛出OutOfMemoryError。
Run-Time Constant Pool(运行时常量池):
    运行时常量池是从方法区中分配的。当虚拟机构建类和接口时
    将为类和接口创建运行时常量池。
    在创建类或接口时,如果运行时常量池的构造需要的内存比Java虚拟机的方法区域中可用的内存多,则会抛出一个OutOfMemoryError。
Native Method Stacks(本地方法栈):
    本地方法栈和虚拟机栈作用差不多、只不过一个用来执行native方法、一个用来执行外部方法。
    
以上就是虚拟机的内存区划分及其大致作用。

下一篇将总结一下内存 区域中常用的一些名词,例如栈帧、局部变量等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值