美文网首页我爱编程
JAVA中哪些组件需要内存

JAVA中哪些组件需要内存

作者: codingBen | 来源:发表于2018-02-18 00:34 被阅读0次

1.JAVA堆

    JAVA堆是用于存储Java对象的内存区域,堆的大小在JVM启动的时候就一次向操作系统申请完成,通过-Xmx 和- Xms 来控制大小,Xmx在表示堆的最大大小,Xms表示初始大小。一旦分配完成,堆的大小就要固定,不能再内存不够的时候再向操作系统申请,同时当内存空闲时也不能将多余的空间交还给操作系统。

2.线程

    JVM的运行实体是线程,当然线程需要内存空间来存储一些必要数据。每个线程创建时JVM都会为他创建一个堆栈。

3.类和类加载器

    JAVA的类和类加载器被存放在堆中,所处的区域被称为永久代(PermGen)。三种类加载器:

            (1)BootStrap Classloader 

            (2)ExtClassLoader

            (3)AppClassLoader

任何系统类,或通过应用程序加载器加载的任何应用类都不能在运行时释放。

4.NIO

    NIO使用java.nio.ByteBuffer.allocateDirect()分配的内存是本机内存,而不是Java堆上的内存,这也说明每次分配内存时都会调用操作系统的os::malloc()函数。因为不需要讲数据复制到java内存中,所以速度比在java堆上切换快了很多。

5.JNI

相关文章

  • JAVA中哪些组件需要内存

    1.JAVA堆 JAVA堆是用于存储Java对象的内存区域,堆的大小在JVM启动的时候就一次向操作系统申请完成...

  • 垃圾收集器

    一、思考GC需要完成3件事情 哪些内存需要回收? 什么时候回收? 如何回收? 二、哪些内存需要回收? Java 内...

  • 《深入理解Java虚拟机》三:垃圾收集器与内存分配策略

    本章的主要问题是: 哪些内存需要回收?什么时候回收?如何回收 ? 大纲 哪些内存需要回收? Java堆:这部分内存...

  • 深入理解Java虚拟机读书笔记 三

    垃圾回收需要解决的三个问题是: 哪些内存需要回收 何时回收 如何回收 哪些内存需要回收 对于Java内存运行时区域...

  • jvm垃圾回收器

    哪些内存需要回收 java堆中存放着几乎所有对象实例,垃圾收集器在堆进行回收前,判断哪些对象还存活着。 1.引用...

  • JVM

    请介绍一下JVM内存模型?用过哪些垃圾回收器?其在并发当中的作用? Java中堆内存和栈内存区别? Java8的内...

  • 深入理解java中的类加载器

    java类加载器是将java class字节码加载到内存中的组件,分为引导类加载器(bootstrapClas...

  • 安卓中 GC

    [序言] GC是Java对内存回收机制,了解GC,应该从了解GC的概念、内存分配、识别哪些内存需要回收和回收方式几...

  • CPU中的MESI缓存最终一致性---CPU为什么需要缓存

    前言 锁章节我们已经发布了【java对象在内存中如何分布】、【java有哪些锁】、【synchronized和vo...

  • Java 垃圾收集(GC)浅谈

    Java 垃圾收集(GC)浅谈 为什么需要垃圾回收?哪些内存需要回收?什么时候回收?如何回收? 为什么需要垃圾回收...

网友评论

    本文标题:JAVA中哪些组件需要内存

    本文链接:https://www.haomeiwen.com/subject/emoptftx.html