5.Object类
来源:互联网 发布:淘宝直播视频审核范本 编辑:程序博客网 时间:2024/06/03 23:38
1.关于Object类 中的tostring方法
SUN在Object类中设计toString方法的目的:返回Java对象的字符串表示形式
在现实开发过程中,Object里边的toString方法已经不够用
2.关于Object类 中的equals方法
通过查源代码:public boolean equals(Object obj) {
return (this == obj);
}
this:o1 obj:o2 两个引用的内存地址不同,返回值为false
SUN在Object类中设计toString方法的目的:返回Java对象的字符串表示形式
在现实开发过程中,Object里边的toString方法已经不够用
因为Object的toString方法实现的结果不满意
public class test{public static void main(String[] args){//创建一个Object类型的对象Object o1 = new Object();String ostr = o1.toString();System.out.println(ostr);//java.lang.Object@1db9742Person p1 = new Person("gyc", 20);String pstr = p1.toString();System.out.println(pstr);//name=gycage=20Person p2 = new Person("zpp", 21);System.out.println(p2);//name=zppage=21 //println方法后括号中如果是一个引用类型,会默认调用引用类型的toString方法}}class Person{String name;int age; Person(String name, int age){this.name = name;this.age = age;}//重写toString方法,根据项目的需求而定 public String toString(){ return "name="+name+"age="+age;}}
2.关于Object类 中的equals方法
通过查源代码:public boolean equals(Object obj) {
return (this == obj);
}
this:o1 obj:o2 两个引用的内存地址不同,返回值为false
设计目的:判断两个对象是否一样
public class test{public static void main(String[] args){//创建一个Object类型的对象Object o1 = new Object();Object o2 = new Object();boolean b1 = o1.equals(o2);System.out.println(b1);//falseStar s1 = new Star(100, "gyc");Star s2 = new Star(100, "gyc");System.out.println(s1.equals(s2));//第一次false,重写后true}}class Star{int id;String name;public Star(int id, String name){this.id = id;this.name = name;}//Object中的equals方法中比较的是内存地址,在现实业务逻辑中,不应该比较内存地址,应该比较内容//所以Object中的equals方法也要重写//如果身份证号和名字一致,则为truepublic boolean equals(Object obj){if (this == obj)return true;if(obj instanceof Star){Star s = (Star)obj;if (s.id == id && s.name.equals(name)){return true;}}return false;}}
3.关于Object类 中的finallize方法
finalize方法什么时候调用?
1.finalize方法每个对象都有
2.finalize方法不需要程序员去调用,由系统自动调用
3.Java对象如果没有更多的引用指向它,则该Java对象成为垃圾数据,等待垃圾回收器的回收,垃圾回收期在回收这个Java对象之前会自动调用该对象的finalize方法
public class test{public static void main(String[] args){Person p1 = new Person();p1 = null;//没有引用再指向它,等待回收//程序员只能建议垃圾回收器回收垃圾System.gc();}}class Person{//重写object中的finalize方法 public void finalize() throws Throwable { System.out.println(this + "马上就要被回收了"); }}
4.关于Object类 中的hashCode方法
public class test{public static void main(String[] args){//hashCode方法返回的是该对象的哈希码值//Java对象的内存地址经过哈希算法得出的int类型的数值test t = new test();System.out.println(t.hashCode());}//31168322}
阅读全文
0 0
- 5.Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- 解决The SDK platform-tools version ((23)) is too old to check APIs compiled with API 23
- PAT-1078 Hashing (散列表 二次探测法)
- 返回键不退出应用(返回到桌面)
- POJ
- python学习(4)
- 5.Object类
- 毛玻璃效果
- CodeForces
- B
- 整型-文件-方法名-日期-文件拷贝-缩略图-JSON创建-PDF-HTTP-单例-抓屏-目录-ZIP-XML-Map-邮件-Array
- 侧滑菜单与轮播图的冲突
- JavaScript学习之操作DOM事件
- How to cleanup and shrink disk space usage of a Windows KVM virtual machine
- C++父类指针指向子类对象的实现原理