对象的打印和比较对象以及匿名对象和对象的生命周期

1.对象的打印操作

1)打印对象的时候,打印的效果如下:com.JAVABASIS6.Servants2@40671416
类的名称@十六进制的hashCode System.out.println(s1);
2)其实,我们打印对象,往往关心的是该对象中的数据是多少,可以使用Object的toString方法

2.对象的比较操作

System.out.println(s1==s2);
1)==号:对于基本数据类型来说,比较的是值,而对于引用数据类型来说,比较的是在内存中的地址值,每次使用new关键字,都表示在堆中新开辟一块内存空间,不同的内存空间,地址值也不同。
2)需求:如果,对象拥有完全相同的数据,就想要它们二者相等,那么可以使用Object中的equals方法

3.对象的生命周期:

1)对象什么时候出生:每次使用new关键字的时候,就会在内存开辟新的空间,此时对象开始存在
2) 对象的结束:当堆中的对象,没有被任何变量所引用,此时该对象就成了垃圾,就等着垃圾回收器(GC)来回收该垃圾,当被回收的时候,对象被销毁了,回收垃圾的目的,释放更多的内存空间

4.匿名对象:

没有名称的对象,创建对象之后没有赋给某一个变量,如new Servants2();//匿名对象,只是在堆中开辟一块新的内存空间,但是没有把该空间内存地址赋给任何变量,因为没有名称,匿名对象仅仅只能使用一次,一般的,把匿名对象作为方法的实参传递

class Servants2{
String name;//姓名
int age;//年龄
int height;//身高
void cook(){
System.out.println(“做饭”);
}
void wash(){
System.out.println(“洗碗”);

}

}

public class AbstractDemo1 {
public static void main(String[] args){
Servants2 s1 = new Servants2(); //根据类来创建对象s1
System.out.println(s1); //对象的输出,输出为com.JAVABASIS6.Servants2@2f57d162
Servants2 s2 = new Servants2();//根据类来创建对象s2
System.out.println(s1==s2); //,对象的比较操作,输出为false
s1.name = “小丽”; //给字段设置值
String n = s1.name; //获取字段的值
System.out.println(n); //输出为小丽
s1.wash(); //通过对象调用方法,输出为洗碗
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值