JVM内存管理之java中需要使用内存的组件

一:Java堆

java堆是存储java对象的内存区域,JVM在启动时向操作系统申请堆的大小,也可以通过-Xmx 和-Xms两个选项来控制堆的大小,但是使用这两个选项后堆的大小就会固定,不能在向操作系统重新申请内存了

二:线程

线程是JVM运行实际程序的实体,但是线程需要内存空间来存储一些必要的数据。每当一个线程被创建时,JVM会为他创建一个堆栈,通常在256KB-756KB之间。
如果线程的数量过多,一:线程占用的内存用量可能会很大,二:CPU的效率可能会很低,还会导致较差的性能和更高的内存占用率。

三:类和类加载器

类和类加载器本身需要存储空间,他们存储在java堆中的永久代(PermGen);
JVM在加载类时时按需加载的。

四:NIO

NIO是一种基于通道和缓冲区的方式来执行IO操作。NIO并不使用Java堆中的内存,而是直接申请操作系统的内存,这种方式避免了在java堆和本机堆之间复制数据,从而提高了java的IO操作效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值