2哥:3妹,昨天教你的java基本数据类型 掌握了吗?
3妹:掌握了,java有8大基本类型(byte,short,char,int,long,float,double,boolean)……
2哥:我们今天再来学习一下java的引用类型。
引用数据类型
引用数据类型包括3钟。存储空间分为两部分,一个在stack(栈)中,一个在heap(堆)中。一般在stack中存放head的地址,head里面存放实际的数据。引用数据类型在类中初始化为null。
1、数组
2、类
3、接口
注:
1、不同的引用可能指向同一个对象。(同一个对象可以有多个引用)
区别:
基本数据类型:
1、变量名指向具体的数值。
2、基础数据类型在变量声明后,立刻就会分配给他内存空间。
3、基本数据类型是分配在栈上的。
4、基础类型比较相等,可以使用 == 。(比较值相等,是不是同一个)
引用数据类型:
1、变量名指向存储对象的内存地址。
2、引用数据类型在声明后分配的是内存地址,不会分配内存。
3、引用数据类型是分配在堆上的。
4、引用数据类型使用equals方法去比较。(equals可以复写,比较相等,值是不是相同)
注:不论是基本数据类型还是引用数据类型,都会在栈中分配一块内存。
String是引用类型吗?
首先明确一下,String是引用类型。
JAVA语言除了8大基本类型, 其他的都是引用类型, 所以String也是引用类型。
详细信息请参考:一文搞懂String这个特殊的引用类型