欢迎访问北大青鸟鲁广校区~

  1. 加入收藏
  2. 设为主页
  3. 学校简介
北大青鸟鲁广校区

17740513250

三分钟了解北大青鸟

×
  • 数据加载中...

Java中Object是所有类的父类 所有类的对象都是Class

责任编辑:宏鹏来源:武汉北大青鸟鲁广校区发布时间:2013-01-02 11:40:50
导读:java中Object是所有类的父类,所有类的对象都是Class的实例。Object中到底有哪些我们常用的方法呢?

java中Object是所有类的父类,这句话就不多做解释。但是Object中到底有哪些我们常用的方法呢?

1. public native int hashCode();

这个方法是一个native方法,也就是说它是用C/C++完成,返回一个int类型的哈希码,这个hashcode用来干什么呢?用来标注这个对象的一性。

这里doc上有两句话这么描述:

如果根据 equals(Object) 方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果。

如果根据 equals(java.lang.Object) 方法,两个对象不相等,那么对这两个对象中的任一对象上调用 hashCode 方法不 要求一定生成不同的整数结果。

有兴趣的同学可以研究一下hash的问题,如果是计算机专业的应该还记得hash是怎么回事!

2.public boolean equals(Object obj)

根据上面的一句话我们可以知道这个equals比较的就是hashcode。

但是String中比较的却是字符串的内容,这是因为String覆写了equals方法。所以String和StringBuffer的equals是不同的。

3. protected native Object clone() throws CloneNotSupportedException;

clone方法在doc中值得注意的一句话是;

先,如果此对象的类不能实现接口 Cloneable,则会抛出 CloneNotSupportedException。注意,所有的数组都被视为实现接口 Cloneable。否则,此方法会创建此对象的类的一个新实例,并像通过分配那样,严格使用此对象相应字段的内容初始化该对象的所有字段;这些字段的内容没有被自我复制。所以,此方法执行的是该对象的“浅表复制”,而不“深层复制”操作。

这句话明确的告诉了我们什么叫做浅表复制,和深层复制。对于一些问题的理解很有帮助。

这里插入一个创建模式:原型模式

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.

就是使用clone()方法完成的。

4.public String toString() {

return getClass().getName() + "@" + Integer.toHexString(hashCode());

}

返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。

如果没有重写这个方法,那么返回的就是个classname@hashcode的形式。

其他的就是3个多线程方法和一个protected的finalize()以及一个private的本地registerNatives方法。

当然还有一个非常重要的方法:public final native Class<?> getClass();

这个方法就能返回每个对象的Class对象。也就是该类的类对象。通过这个方法我们就能找得到对象的Class对象并且完成反射。

另外我们还能通过类的名:Class.forName("jdbc.oracle.OracleDriver")来实例化类的Class对象。

或者我们使用 类.class也可以获得Class的实例化对象。

本文标题:#Java中Object是所有类的父类 所有类的对象都是Class#,宏鹏发布于北大青鸟鲁广校区。java中Object是所有类的父类,所有类的对象都是Class的实例。Object中到底有哪些我们常用的方法呢?

专业老师指导

专业老师指导

赵老师

从事IT教育培训十年有余,致力于帮助广大学子找到适合自己的专业。

培训咨询客服

培训咨询客服

陈老师

IT培训专业客服,用自己的真诚解决了无数学子的困惑。

本文地址:https://www.027hpedu.com/wenda/java/2117.html

大家都在看的大家都在看的Java开发

热门课程

更多>>
  • 数据加载中...
7天免费试学

7天课程免费试学

实战学习干货限时领取

行业解读+大咖授课+项目实操
10年以上业内强师集结,手把手带你蜕变精英!

点我咨询
×
在线咨询更多问题

如您有任何疑问
在线咨询随时为您解答或拨打咨询热线:13125006136

×
  • 姓 名*
  • 手 机*
  • QQ号/微信号
  • 所报学科 *
  • 其他备注
  • 验证码 获取验证码 *
  • 温馨提示:请保持手机畅通,咨询老师将为您提供专属的一对一报名服务。