Java的内存分配

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java的内存分配相关的知识,希望对你有一定的参考价值。

Java的内存分配上,主要分4个块!
一块是用来装代码的,就是编译的东西。
一块是用来装静态变量的,例如用static关键字的变量,例如字符串常量。
一块是stack,也就是栈,是用来装变量和引用类型的!但区别在于,装了变量以后,变量上是有值的,而引用类型本身在stack上是没有值的。
一块是heap,也就是堆!堆可以一句话概括,装new出来的东西!

所以综上所述,基本数据类型都在stack中,而引用类型,变量是放在stack中,真正有内容的东西放在heap中,也就是当new了一个新的引用类型,他就会放在堆中,同时栈中的引用类型变量会指向堆中你new出来的东西!
两种数据类型:

1)基本数据类型
整数类型(byte/short/int/long)
浮点类型(float/double)
字符类型(char)
布尔类型(boolean)
2)引用类型:类/接口/数组
另外附上2点笔记:
1.初始化java数组的两种方式:
静态(给定元素)和动态(给定长度)
2.java数组的静态特性:
java数组(对象)初始化之后,数组长度不可变;数组对象是创建数组时内存分配的一块空间;

初始化:为数组元素分配内存空间,并为每个元素指定初始值;




















以上是关于Java的内存分配的主要内容,如果未能解决你的问题,请参考以下文章

Java虚拟机详解------内存分配

深入Java核心 Java内存分配原理精讲

浅谈java内存分配和回收策略

java内存分配实例

Java静态内存与动态内存分配的解析

Java 内存管理机制:04 Java 内存分配策略