Object之超级奶爸一

Object类

先开心一下哦,有个好心情......

开心一笑


刚刚看到楼下有对情侣在互送巧克力
·
·
·
·
·
·
·
·
·
·

我哐一桶水下去
听说下雨天和巧克力更配哦![微笑](非原创哦!勿喷)


好了,开始了......

提出问题

解决问题

  • 奴家不是祸水,所有人都要叫我老爸(Every class has Object as a superclass)
  • 可是我爹呢? (Object don't have father)
  • 我住在java.lang这个家(java language)

Object()

在源码中,未给出我(Object类)的构造函数定义,但实际上,是存在的。

toString()

该方法返回一个字符串,它的值等于(不信看源码):
getClass().getName() + '@' + Integer.toHexString(hashCode())

eg:
Object obj = new Object();//我能生孩子
System.out.println(obj.toString());//打我,我就吐一个给你
System.out.println(obj);//自动调用toString()
//吐:java.lang.Object@56f0474c

再啰嗦下:

  • 传言sun公司开发java的时候为了方便所有类的字符串操作而特意加入的一个方法
  • 调用System.out.println()时,会自动调用对象的toString()方法
  • 一般子类一般重写toString()方法
  • 真啰嗦

equal(Object obj)

判断我们是否相等,调我啊

看看我肚子装的是啥(源码)

public boolean equals(Object obj) {
    return (this == obj);
}

继续啰嗦:啦啦啦

  • 我(Object 类)的 equals 方法实现对象上差别可能性最大的相等关系;
    即,对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时
    此方法才返回 true(x == y 具有重点内容值 true)。 (不是我想抄,人家啊译的很好)
  • “==”判断两个引用是否指向同一个对象
  • 举一反三:Object类中的equals()方法等价于==
eg:
Object obj = new Object();//别光看
Object obj2 = new Object();//动手写
Object obj3 = obj;//知道吗?
System.out.println(obj.equals(obj2));//false
System.out.println(obj.equals(obj3));//true
System.out.println(obj.equals(null));//false

hashCode()

返回该对象的哈希码值(整形数值)

public native int hashCode();//Object hashCode方法源码

eg:
Object obj = new Object();
System.out.println(obj.hashCode());//886506736
System.out.println(obj.hashCode());//886506736
System.out.println(obj.hashCode());//886506736
//.....

eg:
Object obj = new Object();
Object obj2 = new Object();
System.out.println(obj.hashCode());//593224478
System.out.println(obj2.hashCode());//1704712372
//哈希值不同:看上面的源码就知道了,超级奶爸hashCode是一个本地方法,返回的对象的地址值

  • 同一对象多次调用hashCode()方法时,其返回的哈希码是相同的
  • 两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果(API这么写的,我没骗你!)
  • 程序猿应该意识到,为不相等的对象生成不同整数结果可以提高哈希表的性能(后续会有专门文章介绍哈希这个鬼东西)
  • hashCode()相同的两个对象,不一定相等,换言之,不相等的两个对象,hashCode()返回的哈希码可能相同
Object之超级奶爸一_第1张图片
美图

个人感悟

  • 自信点,悲伤给谁看.
  • 用最好的状态去迎接每一天.
  • 行动,行动,行动,结果.

你可能感兴趣的:(Object之超级奶爸一)