Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

JVM内存管理_GC模型_编写GC友好的代码 PDF 下载


分享到:
时间:2024-05-30 10:38来源:http://www.java1234.com 作者:转载  侵权举报
JVM内存管理_GC模型_编写GC友好的代码
失效链接处理
JVM内存管理_GC模型_编写GC友好的代码 PDF 下载
 
 
 
 
相关截图:

 
主要内容:

Java平台的基本概念
 

• JVM,JRE,JDK
 

– JVM: Java Virtual Machine
• 负责执行符合Java规范的Class文件
• 不同厂家会有不同的实现,IBM J9, Sun Hotspot, JRockit, etc

 

– JRE: Java Runtime Environment
• 包括JVM和基础类库(常见的标准API,比如java.util.*, etc)。
一般来说基础类库是那些JCP大牛呕心沥血之作。但有些厂家
也会针对自己的硬件修改一部分基础类库的实现。最典型的是
IBM的JRE。

 

– JDK: Java Development Kit
• 包括JRE和开发/编译工具(javac, javadoc, etc)。

 

JVM运行时数据区域
• 程序计数器
• 本地方法栈
• Java虚拟机栈(JVM Stack)

– Java虚拟机栈描述的是Java方法的执行模型:
每个方法执行的时候都会创建一个帧(Frame)
栈用于存放局部变量表,操作栈,动态链接,
方法出口等信息。一个方法的执行过程,就是
这个方法对于帧栈的入栈出栈过程。
– 线程隔离

 

JVM运行时数据区域
 

• 堆 (Heap)
– 堆里存放的是对象的实例
– 是Java虚拟机管理内存中最大的一块
– GC主要的工作区域,为了高效的GC,会把堆细分更
多的子区域(后面有详细介绍)
– 线程共享

 

• 方法区域
– Hotspot JVM的永久代(Permanent Generation)
– 存放了每个Class的结构信息,包括常量池、字段描述、
方法描述
– GC的非主要工作区域
JVM运行时数据区域-例子
– 生成了2部分的内存区域,1)obj这个引用变量,因为
是方法内的变量,放到JVM Stack里面 2) 真正Object 
class的实例对象,放到Heap里面
– 上述的new语句一共消耗12个bytes,JVM规定引用占4
个bytes(在JVM Stack),而空对象是8个bytes(在
Heap)
– 方法结束后,对应Stack中的变量马上回收,但是Heap
中的对象要等到GC来回收

 

 


------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐