深入理解Java虚拟机笔记1
来源:互联网 发布:淘宝大c家是正品吗 编辑:程序博客网 时间:2024/06/10 13:34
Java的内存区域
1. 程序计数器(Program Counter Register)
一块很小的内存,可以被看作当前线程所执行的字节码的行号指示器。
2. Java虚拟机栈
虚拟机栈描述的是Java方法执行的内存模型:
(1).每个方法在执行的同时都会创建一个栈帧,
用于存储局部变量表、操作数栈、动态链接、方法出口等信息。
(2). 每一个方法从调用直至执行完成的过程,
就对应着一个栈帧在虚拟机栈中入栈到出栈的过程。
PS:
(1).局部变量表存放了编译期可知的各种基本数据类型、对象引用和returnAddress类型
(指向了一条字节码指令的地址)。
(2).对象引用(reference类型,它不等同于对象本身,可能是一个指向对象起始地址的引 用指针,也可能是指向一个代表对象的句柄或其他与此对象相关的位置)
3.本地方法栈
与虚拟机栈所发挥的作用是非常相似的,他们之间的区别为:
虚拟机栈为虚拟机执行Java方法(也就是字节码)服务,
而本地方法栈则为虚拟机使用到的Native方法(本地方法)服务。
Native方法常用于两种情况:
(1)在方法中调用一些不是由Java语言写的代码。
(2)在方法中用Java语言直接操纵计算机硬件。
4. Java堆
Java虚拟机所管理的内存中最大的一块。
Java堆是被所有线程共享的一块内存区域,在虚拟机启动的时候创建。
此内存区域的唯一目的就是存放对象实例(还有数组?),
几乎所有的对象实例都在这里分配内存。
5. 方法区
用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。
6. 运行时常量池
是方法区的一部分,用于存放编译期生成的各种字面量和符号引用。
7.直接内存
- 《深入理解JAVA虚拟机》笔记1
- 《深入理解JAVA虚拟机》笔记1
- 《深入理解Java虚拟机》笔记1
- 深入理解Java虚拟机学习笔记1
- 深入理解Java虚拟机笔记1
- 《深入理解JAVA虚拟机》笔记
- 《深入理解JAVA虚拟机》笔记
- 《深入理解Java虚拟机》笔记
- 《深入理解Java虚拟机》笔记
- 《深入理解JAVA虚拟机》笔记
- 《深入理解Java虚拟机》笔记
- 《深入理解Java虚拟机》笔记
- 《深入理解Java虚拟机》笔记
- 《深入理解Java虚拟机》笔记
- 《深入理解Java虚拟机》笔记
- 《深入理解Java虚拟机》笔记
- 《深入理解Java虚拟机》笔记
- 《深入理解Java虚拟机》笔记
- 在假期如何不被工作打扰?
- java学习笔记(10)-Java 异常处理
- Linux下如何查看版本信息
- 2017/11/7日学习到的东西
- 批量创建KVM虚拟机与批量推公钥的shell脚本
- 深入理解Java虚拟机笔记1
- 数据结构与算法分析(Java语言描述)(11)—— 二叉堆(Binary Heap)
- 正方形构造
- 欢迎使用CSDN-markdown编辑器
- nginx 上传文件出现413 Request Entity Too Large 的解决方法
- 迅雷二
- 支付宝对接支付问题
- 静态成员和非静态成员的区别
- 传统 Java 网站如何实现容器化?看看 Cars.com 如何玩转 Docker!