Object类
来源:互联网 发布:廊坊管家婆软件 编辑:程序博客网 时间:2024/06/03 06:21
一、概述。
1.java.lang.Object类,是所有类的根父类。
2.Object类仅有一个空参的构造器 public Object(){ }
二、Object类相关方法:
1.equals()方法和==
Object类的equals():判断两个对象是否是同一个对象,即引用地址是否相同
==:对于基本数据类型,判断两个数据值是否相等,对于引用数据类型,则判断两个对象是否是同一个对象
==用的时候分两种情况:
1)基本数据类型:根据基本数据类型的值判断是否相等。相等返回true,反之返回false
注:两端数据类型可以不同,在不同的情况下,也可以返回true。
**如一个是int类型,一个是double类型,在比较的时候会自动将int型转化为double型再进行比较
int a=10;float b=10L;char c=10;System.out.println(a==b);//trueSystem.out.println(a==c);//true
2)引用数据类型:比较引用类型变量的地址值是否相等
Person p1=new Person();Person p2=new Person();System.out.println(p1==p2);//false,二者的引用地址不相等p1=p2;System.out.println(p1==p2);//true
equals()方法:
1)只能处理引用类型变量
2)在Object类,equals()比较的是两个引用变量的地址值是否相等
Person p1=new Person();Person p2=new Person();System.out.println(p1.equals(p2));//false,两个对象的引用地址不一样p1=p2;System.out.println(p1.equals(p2));//true
Object类中的源码:
public boolean equals(Object obj) { return (this == obj);//实际使用的是==方法判断两个对象的引用地址是否相等 }
**特殊情况:
1)像String 类,包装类,File类,Date类这些重写Object类的equals()方法,比较是两个对象的内容是否相同,即使两个对象不是同一个对象,也会返回true
String str1=new String("aa");String str2=new String("aa");System.out.println(str1==str2);//false,两个对象不是同一个对象System.out.println(str1.equals(str2));//true,两个对象的内容相同
2)字符串所在内存位置解析
String str1 = "AA";String str2 = "AA";String str3 = new String("AA");System.out.println(str1.equals(str2));//trueSystem.out.println(str1.equals(str3));//true
上面两条输出语句都是true,原因是str1,str2,str3都有相同的内存位置所指,如下图所示
上述三条语句执行步骤如下:
1)String str1 = "AA";
在方法区创建开辟一个空间存储字符串“AA”,并在栈内存开辟一个名为“str1”的引用,首地址ox1111(假设的)指向“AA”.
2)String str2 = "AA";
在栈内存建立一个名为“str2”的引用,并指向“AA”.
3)String str3 = new String("AA");
在堆内存开辟一个空间存储对字符串“AA”的引用,并在栈内存开辟一个名叫“str3”的引用指向堆内存2.toString()方法
当我们输出一个对象的引用时,会调用toString()方法。
1)Object类的toString()方法源代码
public StringtoString() { return getClass().getName() +"@" + Integer.toHexString(hashCode()); }
当我们没有重写Object类的toString()方法时,打印的就是对象所在的类,以及对象实体在堆空间的位置
2)一般我们需要重写Object类的toString()方法,将此对象的各个属性值返回。
3)像String类、Date、File类、包装类都重写了toString()方法。
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- SWT 实现靠边自动隐藏
- leetcode解题方案--152--Maximum Product Subarray
- 软件小白学习java的日常生活
- android屏幕全屏下判断软键盘打开关闭,软键盘打开关闭不好用
- java异常
- Object类
- 【随笔】封装算法,在不同时间应用不同的业务规则
- JDBC—综述
- CORS解决ajax跨域问题
- 使用Sql Developer调试Oracle步骤
- kettle 列转行的demo
- Apache Lucene初探
- python入门第三天——文件/存储器
- 关于Android Studio项目的Gradle构建 泡在网上的日子 / 文 发表于2016-02-16 12:16 第2500次阅读 Gradle 3 编辑推荐:稀土掘金,这是一个针对技术开发者的