1.引用(reference)数据类型
(1)类型
①类
②接口
③数组
(2)概述
引用数据类型,相当于C语言中指针等类型,引用事实上就是指针,指向一个对象的内存地址,引用数据类型中保持的是对象的内存地址,很多资料上提到Java不支持指针,事实上是不支持指针运算,但是保留了指针类型,在Java中成为;引用数据类型。
(3)示例
int x=7;
int y=x;
String str1="Hello";
String str2=str1;
str2="World"
上述代码声明了两个基本数据类型(int)和两个引用数据类型(String)。当程序执行完第二行代码后,x=7,x赋值给y,y=7。x、y的值都是7,但它们之间是独立的,任何一个变化都不会影响到另一个。
当程序执行完第三行时,“Hello”对象被创建,保存到内存地址0x12345678中,str是引用类型变量,它保存的是内存地址0x12345678,这个地址指向“Hello”对象。
当程序执行完第四行时,str1和str2保存了相同的地址,都指向"Hello"对象。此时str1和str2本质上是引用了一个对象,通过任何一个引用都可以修改对象本身。
当程序执行完第五行时,字符串“World”对象被创建,保存到内存地址0x23455678中,地址保存到str2变量中,此时,str1和str2不再指向相同的内存地址。