网站首页 > 精选教程 正文
- 每一个java都是一个单独的进程,进程是表示正在运行的程序实例,每个进程都有独立的内存空间,其中jvm虚拟机就运行在java进程中。
- jvm内有堆、栈、程序计数器、本地方法栈,堆是共享区域,存储着java对象,其内存区域主要有新生代和老年代,且比例默认为1(新生):3(老年),新生代中,也分为eden、s0、s1三个区域,默认比例为8(eden):1(s0):1(s1);其次是栈信息,这里的私有区域,一个线程分配一个栈内存,其中栈信息主要有局部变量,方法调用、动态连接、方法返回地址信息;本地方法栈用于执行本地方法(native)调用;程序计数器存储当前线程所执行的字节码指令地址,即当前正在执行的指令或将要执行的指令的位置。本地程序计数器在线程切换时被保存和恢复,确保线程恢复执行时能准确地从之前的执行位置继续执行,本地程序计数器在jvm中起着非常重要的作用,保证线程能够正确执行。
- 本地内存,通常指堆外内存,共享区域,其内有方法区和直接内存区;方法区中存储了类结构信息、静态变量、常量池、方法信息等,在java8中该区域由元空间取代;直接内存区可以用于存储大量数据或需要快速访问的数据提高IO效率;
- 本地内存不受 JVM 内存管理,这些内存通常由操作系统管理,但它虽不受jvm管理,但它是java进程中的一部分,工作中,它可以提高内存的使用效率,减少受垃圾回收的影响,同时由于不占用jvm内存,它间接提高了程序性能,降低了因为程序代码的失误而造成的内存泄漏风险,适用于需要大内存操作的场景。
import java.nio.ByteBuffer;
public class DirectBuffer {
public static void main(String[] args) {
// 创建一个直接内存的ByteBuffer
ByteBuffer directBuffer = ByteBuffer.allocateDirect(1024);
// 使用directBuffer来实现自己的业务功能
// 当不再需要时,清理直接内存
directBuffer = null;
System.gc(); // 建议JVM进行垃圾回收,但不保证一定会回收
}
}
- 上一篇: 程序员面试干货|一文讲清JVM内存结构
- 下一篇: 你需要知道的jvm系列:JVM内存结构
猜你喜欢
- 2024-11-18 jvm之内存结构
- 2024-11-18 Java内存模型(JMM)详解
- 2024-11-18 Java8堆内存结构、组成部分、工作原理以及如何影响程序的性能。
- 2024-11-18 jvm内存结构java内存模型,对象布局还分不清?快来围观
- 2024-11-18 你需要知道的jvm系列:JVM内存结构
- 2024-11-18 程序员面试干货|一文讲清JVM内存结构
- 2024-11-18 一篇文章带你了解Java内存分布,爸妈再也不用担心啦
- 2024-11-18 探秘 JVM:内存结构
- 2024-11-18 JVM的内存结构详解
- 2024-11-18 JVM内存模型和结构详解(五大模型图解)
你 发表评论:
欢迎- 04-11Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- 04-11Java中你知道几种从字符串中找指定的字符的数量
- 04-11探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- 04-11Python字符串详解与示例(python字符串的常见操作)
- 04-11java正则-取出指定字符串之间的内容
- 04-11String s1 = new String("abc");这句话创建了几个字符串对象?
- 04-11java判断字符串中是否包含某个字符
- 04-11关于java开发中正确的发牌逻辑编写规范
- 最近发表
-
- Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- Java中你知道几种从字符串中找指定的字符的数量
- 探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- Python字符串详解与示例(python字符串的常见操作)
- java正则-取出指定字符串之间的内容
- String s1 = new String("abc");这句话创建了几个字符串对象?
- java判断字符串中是否包含某个字符
- 关于java开发中正确的发牌逻辑编写规范
- windows、linux如何后台运行jar(并且显示进程名)
- 腾讯大佬私人收藏,GitHub上最受欢迎的100个JAVA库,值得学习
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)