深入分析Java内存区域的使用详解
时间:2023-09-25 23:21:29
Java 内存划分:
在Java内存分配中,java将内存分为:方法区,堆,虚拟机栈,本地方法栈,程序计数器。其中方法区和堆对于所有线程共享,而虚拟机栈和本地方法栈还有程序计数器对于线程隔离的。每个区域都有各自的创建和销毁时间。
程序计数器:
作用是当前线程所执行的字节吗的行号指示器。Java的多线程是通过线程轮流切换并分配处理器执行时间方式来实现的。因此,每个线程为了能在切换后能恢复到正确的位置,每个线程需要独立的程序计数器。
Java 虚拟机栈:
每个放在被执行的时候都会同时创建一个栈帧用于存储局部变量表,操作数栈,动态链接,方法出口等信息。虚拟内存栈就是我们经常讲的“栈”。其中局部变量表所需内存是在编译期完成分配。
本地方法栈:
与虚拟机栈类似,区别在于虚拟机栈为虚拟机执行Java方法服务,而本地方法栈为虚拟机使用Native方法服务。
Java 堆:
被所有程序共享,并且在虚拟机启动时创建。此内存区域作用是存放对象实例。根据Java虚拟机规定,Java堆可以处于物理上不连续的内存空间,只要逻辑上连续即可。
方法区:
与堆相同,在各个线程间共享。作用是存储已被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据。
运行时常量池:
是方法区的一部分。作用是存储编译期生成的各种字面量和符号引用。
标签:Java,内存区域
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Android nativePollOnce函数解析
2022-05-29 01:51:26
spring中向一个单例bean中注入非单例bean的方法详解
2022-07-19 13:14:18
![](https://img.aspxhome.com/file/2023/7/62167_0s.png)
关于SpringSecurity配置403权限访问页面的完整代码
2023-11-13 02:03:59
![](https://img.aspxhome.com/file/2023/3/86833_0s.png)
C语言 OutputDebugString与格式化输出函数OutputDebugPrintf案例详解
2023-11-02 16:21:47
![](https://img.aspxhome.com/file/2023/3/105163_0s.jpg)
详解C#读写Excel的几种方法
2022-10-23 14:23:28
![](https://img.aspxhome.com/file/2023/7/119417_0s.jpg)
C#处理猜拳问题的简单实例(非窗体)
2021-08-01 18:58:22
Android Intent实现页面跳转的两种方法
2022-03-13 22:27:10
![](https://img.aspxhome.com/file/2023/8/93288_0s.png)
C# 生成随机数的代码
2021-06-16 06:05:43
SpringBoot集成Beetl后统一处理页面异常的方法
2023-11-10 19:57:55
![](https://img.aspxhome.com/file/2023/2/59222_0s.jpg)
C#中应用程序集的装载过程详解
2023-03-30 19:06:05
![](https://img.aspxhome.com/file/2023/5/68065_0s.png)
详解Android自定义控件属性
2023-09-27 18:00:34
![](https://img.aspxhome.com/file/2023/7/126767_0s.png)
Qt QTableWidget基本操作及使用
2022-05-22 23:15:55
![](https://img.aspxhome.com/file/2023/5/117775_0s.gif)
Android开发中ImageLoder加载网络图片时将图片设置为ImageView背景的方法
2021-12-14 14:58:38
探讨Android 的屏幕滚动操作不如 iPhone 流畅顺滑的原因
2023-04-05 09:05:33
Java中List遍历删除元素remove()的方法
2022-07-12 12:27:10
![](https://img.aspxhome.com/file/2023/1/132121_0s.png)
Java定时任务的三种实现方法
2022-01-13 06:59:01
Java项目导入IDEA的流程配置以及常见问题解决方法
2021-11-21 10:02:24
![](https://img.aspxhome.com/file/2023/1/76521_0s.jpg)
C# 类的声明详解
2022-10-15 14:08:38
详解Java中的实例初始化块(IIB)
2023-06-08 08:35:46
Spring IOC创建对象的两种方式
2023-09-10 15:58:27
![](https://img.aspxhome.com/file/2023/3/129263_0s.png)