public String toString()
class MyTime{
private int year;
private int mouth;
private int second;
public MyTime(int year , int mouth , int second){
this.year = year;
this.mouth = mouth;
this.second = second;
}
public String toString(){
return year + "/" + mouth + "/" + second;
}
}
public class Test{
public static void main(String[] args){
MyTime m = new MyTime(1977 , 1 , 1);
System.out.println(m);
}
}
public boolean equals(Object obj){
return (this == obj);
}
以后编程的过程当中,通过equals方法来判断两个对象是否相等。
1.使用场景:
class User{
String name;
Address addr;
public User(String name , Address addr){
this.name = name;
this.addr = addr;
}
public boolean equals(Object obj){
if(obj == null) return false;
if(obj == this) return true;
if(obj instanceof User){
User m = (User)obj;
return name.equals(m.name) && addr.equals(m.equals);
}
return false;
}
}
class Address{
String city;
String street;
String zipcode;
public Address(String city, String street, String zipcode){
this.city = city;
this.street = street;
this.zipcode = zipcode;
}
public boolean equals(Object obj){
if(obj == null) return false;
if(obj == this) return true;
if(obj instanceof Address){
Address m = (Address)obj;
return city.equals(m.city) && street.equals(m.street) && zipcode.equals(m.zipcode);
}
return false;
}
}
public class Test{
public static void main(String[] args){
User m1 = new User("Zhao yan", new Address("Xu Zhou" , "Zheng Ji", "111111"));
User m2 = new User("Zhao yan", new Address("Xu Zhou" , "Zheng Ji", "111111"));
System.out.println(m1.equals(m2));
}
}
protected void finalize() throws Throwable
1.GC:负责调用finalize()方法
2.finalize()方法只有一个方法体,里面没有代码,而且是protected修饰的
3.不需要程序员手动调用,JVM的垃圾回收器负责调用这个方法,不需要手动调用
4.finalize()是SUN公司为Java程序员准备的另一个时机(垃圾回收时机),类似于静态代码块和实例代码块。
5.垃圾回收器不是轻易启动的,垃圾太少或者时间未到,种种条件下,才可能启动
public class Test{
public static void main(String[] args){
Person p = new Person();
//将对象变成垃圾
p = null;
//建议启动垃圾回收器(只是建议)
System.gc();
}
}
class Person{
//重写
protected void finalize() throws Throwable{
System.out.println("对象被销毁");
}
}
public native int hashCode();
1.带有native关键字,底层调用C++程序
2.返回哈希码,可以等同看作对象的内存地址
public class Test{
public static void main(String[] args){
Object o = new Object();
System.out.println(o.hashCode());
}
}
原文:https://www.cnblogs.com/zy200128/p/12790448.html