- 在Java中,除了8中基本数据类型外,其他类型都是引用类型;
- 可以理解为,任何一个对象都是引用类型;
- 举例:
- int a = 10 ; a为基本数据类型
- Date d = new Date(); d 为引用类型
-
引用数据类型使用 = 赋值
-
除了String 、 包装器类 (8个) 外 ,都需要new 关键字;
-
引用类型可以使用 == 、 != 进行比较 ,比较的是引用类型的地址,不是内容;
-
引用类型不能使用 > 、>= 、<= 、 < 进行比较;
// 声明两个引用类型变量 s1 、 s2 ,并使用 new 进行复制
String s1 = new String("Hello");
String s2 = new String("Hello");
// 使用 == 以及 != 比较 s1 和 s2 的地址
System.out.println("s1==s2"+s1 == s2);
System.out.println("s1!=s2"+s1 != s2);
- s1 、s2 内存分配情况如图所示:
s1 == s2 比较的是栈中s1 和 s2 的值 ; 由于s1和s2 指向堆中不同的内存空间,所以s1 和 s2 的值不同,因此比较返回false
当值声明一个引用类型变量,却没有为其赋值,则此时该变量为null;
- 枚举
- 枚举也是一种引用类型
- 使用enum关键值可以声明一个枚举:
public enum Item0303{
MON.TUE,WED,THD,FRI,SAT,SUN;
}
- 枚举编译后也可以生成 .class 文件,也是一种引用类型
注解
- 注解也称之为元数据,是和类、接口、枚举,并列的一种引用类型;
- java API 中定义了系列注解类型,称之为内置注解:
@Override
public String toString(){
return super.toString();
}