北大青鸟

网站首页 > 常见IT技术问题 > Java开发 >

站内公告

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

专业老师指导

赵老师

赵老师

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

立即在线咨询

培训咨询客服

陈老师

陈老师

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

立即在线咨询

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

文章标题:Java中Object是所有类的父类 所有类的对象都是Class

上一篇:怎么学JAVA?如何才能学好JAVA?

下一篇:Java手机应用程序开发

热点关注

推荐Java开发

热门Java开发

预约你的精彩未来

预约将免费领取7天课程体验卡

-------请选择试预约课程-------

JAVA
WEB前端
PHP
UI设计
Python
电子商务
视频剪辑
大数据工程师
平面设计

83345人已领取

全国百余家校区

只为您方便就学

北大青鸟鲁广校区

北大青鸟鲁广校区

武汉市洪山区珞喻路724号(地铁二号线光谷广场站F口出)

预约到校
领取学习大礼包

首页

热门课程

视频网课

新闻资讯

关于学校

联系学校

预约选课申请

  • 预约时间

    请选择预约时间

  • 预约课程

    请选择预约课程

  • 姓   名
  • 手机号
  • QQ 号
  • 微信号

添加老师微信号

专业老师24小时1对1学习指导

定制专属于你的专属学习方案

微信号:17740513250

复制老师的微信号

复制成功啦

快去微信添加老师为好友吧~

北大青鸟小青

微信号:17740513250

北大青鸟小青

微信号:17740513250

设置备注
小主知道啦