1.基本数据类型
java中的基本数据类型可以在栈中直接分配内存,它有以下八种:
boolean,byte,char,short,int,long,float,double
2.引用数据类型
除了基本数据类型外,还有例如 String 、Integer、用户自定义的引用数据类型(使用关键字new创建的类型 ),他们的对象的引用在栈中,对象实际存放在堆中,实际上是将对象的地址赋值了过去
不清楚的可以看下面的例子:
**//定义两个基本数据类型**
int i=10;
double j=2.0;
**//定义三个引用数据类型**
int[] arr={100,200,300};//Java中将数组作为一种特殊的引用类型处理
String str1="hello";
String str2="java";
存储情况如下:
常量池画错地方了,可能对大家有误导,抱歉抱歉,大家可以去看看常量池位置参考,也可以自己去找找相关资料。
图中的001、002、003是地址,String类型是字符串类型,它里面是字符串常量,存储在常量池中。
栈的小知识点:
1. 局部变量 的空间是在栈上分配的;
2.栈上内存的分配规则是先定义的变量分配在更高的地址处。