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

(:把之前在学校学得不牢固的知识重新梳理总结一番,方便自己以后忘记的时候重新复习~

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

发布了11 篇原创文章 · 获赞 0 · 访问量 174

猜你喜欢

转载自blog.csdn.net/weixin_44824500/article/details/104392701