一个Java程序运行,占用的内存分为哪几部分?直接内存怎么申请?

  1. 1、java中的内存被分成以下四部分:

       ①、代码区  ②、栈区  ③、堆区   ④、静态区域

    2、栈区:由编译器自动分配释放,存放函数的参数值、局部变量的值等;具体方法执行结束后,系统自动释放JVM内存资源

    3、堆区:一般由程序员分配释放,存放new分配的对象和数组,JVM不定时查看这个对象,如果没有引用指向这个对象就回收

  2. 4、静态区:存放全局变量、静态变量和字符串常量,不释放

  3. 5、代码区:存放程序中方法的二进制代码,而且是多个对象共享一个代码空间区域。

  4. 分配 :程序员需要通过关键字new 为每个对象申请内存空间 (基本类型除外),所有的对象都在堆 (Heap)中分配空间。


原文地址:https://www.cnblogs.com/wzf-Learning/p/8109479.html