Java的对象中的方法解析
来源:互联网 发布:mysql存储过程写法格式 编辑:程序博客网 时间:2024/06/03 05:08
原文:http://www.cogu.cn/archives/187
OBJECT对象的方法
getClass()
原文的翻译是获取运行时对象的类,这个类对象就是被这个类用静态同步方法锁定的对象。实际上返回的类型是Class<? extends |X|,其中|X|也就是类本身。例如:Number n = 0;
Class<? extends Number> c = n.getClass();
toString()
默认返回当前对象的String方式的展现。格式为getClass().getName() + ‘@’ + Integer.toHexString(hashCode())。为了能够让结果更容易阅读理解,javadoc建议所有子类都重写这个方法。所以我们一般将这个对象的方法重写后在日志输出的时候打印出来。
equal()
用来判断一个对象和这个对象是否相等。对于非空对象来说,它满足一下5中关系:
1、自反性:x.equals(x)==true,每个非空引用都和自己相等。
2、传递性:x.equals(y)==true;y.equals(z)==ture;那么x.equal(z)==true.
3、一致性:x.equals(y)==true或false多次比较结果都是不变的,只要equals方法没有被修改。
4、非空性:x!=null;x.equals(null)==false任何非空的对象和null比较都返回false。
5、对称性:x.equals(y)==true;y.equals(x)==true
类对象的equals方法是实现了最挑剔的等价关系,即非空的x和y,只有x==y为true时,x.equals(y)==true,也就是x、y为同一个对象的引用。值得注意的是,重写equal方法时,一般都要重写hashCode方法,以保证相等的对象有相等的hashcode。
hashCode()
返回对象的hashCode值。这个方法利用了java.util.Hashtable实现了hashCode。有几个要点要注意一下:
1、同一个对象的hashCode值一定是一样的integer。
2、如果两个对象通过equal方法是相等的, 那么他们打hashcode值也是一样的。
3、java里没有要求如果两个对象通过equal判断不相等,他们的hashcode值也必须不相等,但是程序员应该尽量让他们不等,这样系统更合理。(通过将对象的内部地址转换成hashcode的整数)
clone()
返回对象的一个复制版本…
wait()/wait(long millis)/wait(long millis,int nanos)
用户在线程获取当前对象的同步锁以后,进入阻塞状态操作,直到它被其他线程通过notify()或者notifyAll唤醒。含有参数的wait()方法值线程进入等待状态直到它被通知或者经过指定参数的时间。millis是毫秒,nanos是毫微秒。
notify()
唤醒等待中的对象,进入待运行状态。随机选择一个在该对象上调用wait方法的线程,解除其阻塞状态。
notifyAll()
解除所有那些在该对象上调用wait方法的线程的阻塞状态。
wait、notify和notifyAll方法是Object类的final native方法。所以这些方法不能被子类重写,Object类是所有类的超类,以上线程操作方法只能在同步方法或同步块内部调用。如果当前线程不是锁的持有者,该方法抛出一个IllegalMonitorStateException异常。
这部分内容可以同时参考JAVA多线程相关总结。
- Java的对象中的方法解析
- 解析Java中的String对象的数据类型
- 解析Java中的String对象的数据类型
- 解析Java中的String对象的数据类型
- 解析Java中的String对象的数据类型
- 解析Java中的String对象的数据类型
- 解析Java中的String对象的数据类型
- 解析Java中的String对象的数据类型
- 解析Java中的String对象的数据类型
- 解析Java中的String对象的数据类型
- 解析Java中的String对象的数据类型
- java中的对象头的解析
- java中的finalize() 方法解析
- java中的对象和方法
- java中的File对象的renameTo方法的理解
- 全面解析java中的String对象
- Java中的面向对象与内存解析
- java中string对象中的split方法的使用
- java socket编程案例
- android 下 HTTP 的并发和线程协断式取消
- 有关返回对象的说明
- OpenStack系列讲座1:安装配置篇
- C#执行vbs文件
- Java的对象中的方法解析
- 關於 Android 下的自動化測試
- Android 用style简化layout布局文件
- 图片下载 缓存等问题
- java程序员菜鸟进阶(三)oracle基础详解(三)常用的SQL PLUS命令详解
- PowerDesigner生成数据库方法
- OpenStack系列讲座2:以公司实际应用讲解OpenStack到底是什么(入门篇)
- Eclipse 常用快捷键
- Android 编译系统 (一)