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 part1的更多相关文章

  1. Java Object 引用传递和值传递

    Java Object 引用传递和值传递 @author ixenos Java没有引用传递: 除了在将参数传递给方法(或函数)的时候是"值传递",传递对象引用的副本,在任何用&q ...

  2. Java Object 构造方法的执行顺序

    Java Object 构造方法的执行顺序 @author ixenos 为了使用类而做的准备工作包括三个步骤 1)加载:类加载器查找字节码(一般在classpath中找),从字节码创建一个Class ...

  3. Java Object 对象创建的方式 [ 转载 ]

    Java Object 对象创建的方式 [ 转载 ] @author http://blog.csdn.net/mhmyqn/article/details/7943411 显式创建 有4种显式地创建 ...

  4. Java Object 对象拷贝答疑

    Java Object 对象拷贝答疑 @author ixenos 摘要:在对象的clone过程需要注意的几点.关于关键字this.super 关于clone[对象拷贝] 在实际编程过程,有时候我们会 ...

  5. Java Object 对象拷贝

    Java Object 对象拷贝 @author ixenos JAVA 对象拷贝 Java里的clone分为:  1.浅拷贝:浅复制仅仅复制所考虑的对象,而不复制它所引用的对象,Object类里的c ...

  6. Java基础-SSM之Spring的POJO(Plain Old Java Object)实现AOP

    Java基础-SSM之Spring的POJO(Plain Old Java Object)实现AOP 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 上次我分享过Spring传统的A ...

  7. java Object解析

    java Object是所有对象的根父类,所有对象都直接或间接集成自该类. java 的Object类也比较简单,有equals(Object).toString().finalize() java方 ...

  8. Java Object Clone

    Java Object Clone User user = new User(); user.setName("tom"); User user1 = new User(); us ...

  9. java Object转换成指定的类型

    java Object转换成指定的类型 /** * Object转成指定的类型 * @param obj * @param type * @param <T> * @return */ p ...

随机推荐

  1. net.sf.json------json解析

    下载地址 [plain] view plain copy   本次使用版本:http://sourceforge.net/projects/json-lib/files/json-lib/json-l ...

  2. C语言扫盲篇

    C语言扫盲篇 作者:尹正杰 版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接. 一.什么是C语言 C 语言是一种通用的高级语言,最初是由 ...

  3. Linux shell 日期,时间相关的命令

    在shell脚本中,经常要用到跟获取日期相关的东西,这里记录一下Linux shell 获取日期的方法 获取当前日期:today=`date +"%Y-%m-%d"` 获取昨天的日 ...

  4. c#的委托用法delegate

  5. spring框架学习(二)使用注解代替xml配置

    注解 1.使用注解配置spring 1)开启使用注解代理配置文件 <?xml version="1.0" encoding="UTF-8"?> &l ...

  6. [转载]必须Mark!最佳HTML5应用开发工具推荐

    http://www.csdn.net/article/2014-04-25/2819503-10-html5-tools-worth-checking-out/2 摘要:HTML5自诞生以来,作为新 ...

  7. 第10月第13天 xcode ipa

    1. xcodebuild -exportArchive -exportFormat ipa -archivePath RongChatRoomDemo\ 17-7-13\ 下午4.04.xcarch ...

  8. ajax函数说明

    url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...

  9. 洛谷 P1478 陶陶摘苹果(升级版)

    本萌新第一次发布题解,若有不严谨处请谅解. 我看了前面几位大佬的手笔,表示自己还是比较钟爱桶排序的.它非常简易直接,还省时间,尤其对于这类题目占用的的空间也很小. 我们看到题目下面的说明:xi< ...

  10. Oracle 基本操作符

    1.一般操作符 (1)!= 不等于 select empno,ename,job from scott.emp where job!='manager' (2)^= 不等于 select empno, ...