引用类型变量
1.基本概念:存放对象的引用,而不是存放对象本身。通过引用可以找到该对象。(可以为空null)
Person p1 = new Person(); p1.name = "Fiona";p1.age = 22; Person p2 = new Person(); p2.name = "Lip";p2.age = 18; //其中p1,p2为引用类型变量
2.使用
“==”可用于比较两个变量的引用是否相同,而不是比较他们的内容
String s1 = new String("123");
String s2 = new String("123");
System.out.println(s1==s2);
输出
equals方法可以比较两个变量的内容是否相同。
s1.equais(s2);
引用类型变量作为方法的参数时传递的是变量所存放引用的一个拷贝,不会改变变量的值。数组也是引用类型变量。
3.个人总结与体会
- 理解引用类型的概念:引用类型变量并不存储实际的数据,而是存储对实际数据的引用。这意味着,当我们改变引用类型变量的值时,实际的数据也会被改变。
- 避免对象的不必要复制:使用引用类型变量可以避免对整个对象进行不必要的复制,从而提高内存使用效率。当我们传递对象给方法或将其赋值给变量时,实际上传递的是引用而不是对象的实际副本。
- 作用域和生命周期:引用类型变量的作用域和生命周期通常取决于它们被声明的位置和如何被分配内存。在某些情况下,当超出作用域或重新分配内存时,需要特别注意处理可能出现的异常或错误。
- 垃圾回收:由于引用类型变量可能引用了大量的内存空间,因此垃圾回收器在回收这些空间时可能会花费更多的时间和资源。了解垃圾回收机制可以帮助我们更好地管理和优化内存使用。
- 类型安全:引用类型变量通常具有类型安全的特点。在强类型的语言中,如Java和C#,编译器会检查类型并防止不安全的操作。这有助于减少运行时错误和异常。
- 封装和隐藏细节:通过使用引用类型变量,我们可以实现对象的封装和隐藏细节。外部代码无法直接访问对象的内部状态,只能通过引用类型变量进行操作,从而增强了代码的可维护性和安全性。