您的位置:首页 > 编程语言 > Java开发

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

2017-01-09 21:03 204 查看

一:Java堆

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

二:线程

线程是JVM运行实际程序的实体,但是线程需要内存空间来存储一些必要的数据。每当一个线程被创建时,JVM会为他创建一个堆栈,通常在256KB-756KB之间。

如果线程的数量过多,一:线程占用的内存用量可能会很大,二:CPU的效率可能会很低,还会导致较差的性能和更高的内存占用率。

三:类和类加载器

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

JVM在加载类时时按需加载的。

四:NIO

NIO是一种基于通道和缓冲区的方式来执行IO操作。NIO并不使用Java堆中的内存,而是直接申请操作系统的内存,这种方式避免了在java堆和本机堆之间复制数据,从而提高了java的IO操作效率。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jvm java