欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java基础复习1 | 类的一些需要注意的地方

程序员文章站 2022-03-13 17:53:08
...
(:把之前在学校学得不牢固的知识重新梳理总结一番,方便自己以后忘记的时候重新复习~

1.

Person per = new Person("张三");
在这段代码中 per 是一个引用,是指向一个可以指向Person类的对象的引用。
真正创建对象的是等号右边 new Person(“张三”)。
	Person  per     =  new Person("张三");
//   类名  对象的引用      创建对象  
对象是存在堆里,用上面代码举例,当用 new 创建一个Person(“张三”)对象时,他就会被放在堆里,而堆是没有顺序的,要找到这个存在于堆里的Person(“张三”)对象时,就需要我们找到栈中per这个对象的引用变量,per 中有这个对象的地址值,可以用它来找到这个对象,如果一个对象没有被指向引用,那么他就会被扔在垃圾回收站里。

2.

当一个对象被一个或多个对象引用
 //创建三个对象引用变量,三个都存在栈中
 Person per1,per2,per3;
 //per1 这个对象引用变量中有指向堆中 Person() 对象地址
   per1=new Person();
 //per2和per1一样都指向 Person() 对象地址
   per2=per1;
 //per3和per2一样都指向 Person() 对象地址
   per3=per2;
需要注意的是后面两行代码只改变了对象的地址值,而对象本身的空间大小都没有变化。

——————————————————————————————————————————————
理解完上面,再看下面的这些代码就简单多了~

UserType ut = new UserType();  // ut是引用,实际的对象在内存里。
ut = new UserType(); /*现在ut是另一个对象的引用,先前的对象被垃圾回收了(因为先前的对象不能被再次使用了)。*/
UserType ut2;  // 定义了一个引用ut2,他不引用任何对象,不能使用。。。。
ut2 = new UserType(); // 然ut2成为一个对象的引用。
UserType ut3 = new UserType();
UserType ut4 = new UserType();
ut3 = ut4;   // 现在ut3引用ut4的对象,这里不是赋值。。。
int a = 5;
int b = 4;
a = b;  // 这里是赋值。 a b 依然引用不同的对象

————————————————————————————————————————————

参考:
https://blog.csdn.net/qq_44543508/article/details/102891436

相关标签: 小知识