java程序的加载过程和equalse比较11

java中静态语句块,实例语句块的加载顺序。

JVM在加载类的时候,会先将static修饰的静态内容加载至jvm,实例变量当程序运行过程中,用到实例对象的时候,该对象才被创建并被加载至JVM。

类在执行过程中会先加载静态语句块,在执行其他方法,创建该类对象时,会先加载实例语句块,在执行对应的构造方法。在执行后续代码。

==和equalse的区别

从Object类来将,equalse和==的作用是一样的。

都是用来判断简单类型的数值大小,或者引用类型的引用地址是否相同。

但equsalse方法可以进行重写,用于判断对象是否相同。

重写equslse方法:
//重写equals
public boolean equals(Object obj){
//需要满足让equals方法去比较字符串内容
//在STRING方法中已经重写了该方法
//如果之前的a1,a2地址相同则指向同一个对象,
if (this==obj){//this是当前调用对象,谁调用this就是谁
return true;}

/*如果地址不同需要比较
this.id=id //这个可以直接调用
this.obj=obj
这样写错误,obj传入的是一个objectle类型的引用,这个
引用中并没有id

 
但引用的类型与star这个类型
不一定存在继承关系,或者说你传入的这个引用是不是一个star类型??
有继承关系或者说就是SRAI 这样才能进行强转!
因此需要判断之后才能进行强制类型转换

*/
if(obj instanceof Star){
//obj这个引用中也没有变量id和变量name
//需要进行强制类型转换
Star s=(Star)obj;
//强制类型转换完成以后则可以进行比较
if(s.id==id && s.name.equals(name)){     //在STRING方法中已经重写了该方法
return true;
}
}
//如果条件都不成立
return false;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值