首页 > 代码库 > Java的内存分配

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的内存分配