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
上一篇: Web前端学习笔记—— jQuery之操作节点、属性、尺寸和位置
下一篇: [算法]斐波那契数列