Java核心知识点-JVM结构和工作方式
来源:互联网 发布:工控机编程用什么语言 编辑:程序博客网 时间:2024/05/17 03:59
一、JVM体系结构
1.1 JVM中主要包括(PC寄存器,栈,)(堆,方法区,)本地方法区
一个Java线程中,包括PC寄存器(保存当前执行的指令位置),和栈帧(一个方法对应一个栈帧),本地变量(保存计算中的临时数据),当一个线程结束后,线程内所有数据就自动销毁,不需要垃圾回收。
- PC寄存器和栈
将1压入栈中,将2压入栈中,将1,2弹出计算1+2,将3压入栈顶,OVER。
- 方法区:
方法区是堆的一部分,就是java的永久区PermGen。
- 本地方法区
本地方法区是为了JVM运行native方法(c/c++等语言写的方法)准备的区。
1.2 内存分配方式:
- 静态内存分配:
在编译时确定需要的内存空间,当程序加载时系统把内存一次性分配给它。静态内存分配是在java栈上分配的,当方法结束时对应的栈帧也就撤销,所以分配的内存空间就被回收。
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
上面一段代码会占用内存空间4+4+8+4+4=24。
- 动态内存分配:
程序执行的时候才知道要分配的内存大小,当对象创建的时候,在堆上给对象分配一块空间,空间回收时间不定,由JVM垃圾回收器管理。
1.3 垃圾回收算法
- 新创建的对象会分配到Young的Eden上,如果Eden满了就触发MinorGC,将Eden区中存活的对象保存到Survivor的一个区中,同时将Survivor另一个区存活的对象也保存到Survivor这个区中,Survivor区始终有一个区是空的。
- survivor的一个区满了之后,会将对象直接放到Old区,Old区满了会触发FullGC,将回收整个堆空间。
- perm区主要保存class对象,垃圾回收也是FullGC触发
学习Java的同学注意了!!!
学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:589809992 我们一起学Java!
0 1
- Java核心知识点-JVM结构和工作方式
- Java核心知识点-JVM结构和工作方式
- Java核心知识点-JVM结构和工作方式
- Java核心知识点-JVM结构和工作方式
- Java核心知识点-JVM结构之常量池
- Java核心知识点-JVM再深入
- JVM体系结构和工作方式
- java JVM体系结构与工作方式
- ThreadPoolExecutor逻辑结构和工作方式
- java核心知识点
- JAVA核心知识点
- Java核心知识点-反射
- Java核心知识点-NIO
- Java核心知识点-NIO
- Java 详解 JVM 工作原理和流程
- Java 详解 JVM 工作原理和流程
- Java 详解 JVM 工作原理和流程
- Java 详解 JVM 工作原理和流程
- 数字排列问题
- 需要在seekbar的滑块上添加文字,请教下大神们应该怎样做,完全没思路啊。。。。
- 一个固定的数据库的连接类
- Redis之String类型
- 80C51学习 蜂鸣器
- Java核心知识点-JVM结构和工作方式
- android TextView字体粗细
- 迪士尼 乐拍通 获取中等清晰度照片免费获取
- 39级台阶
- 第四、五章作业
- webdriver处理alert
- 《Effective java》笔记(第二版) --第四章(13-16)
- 算法复杂性分析
- BZOJ1833: [ZJOI2010]count 数字计数