Java中Object类的公有方法
来源:互联网 发布:守望先锋 a卡优化设置 编辑:程序博客网 时间:2024/05/04 03:20
Java中Object类的公有方法
HashCode();wait();notify();equals();getClass();toString();clone();finalize();
这里只是简单介绍一下其中的几个函数:
HashCode():
* As much as is reasonably practical, the hashCode method defined by * class {@code Object} does return distinct integers for distinct * objects. (This is typically implemented by converting the internal * address of the object into an integer, but this implementation * technique is not required by the * Java™ programming language.)
这个是Java官方文档里的部分解释,简单地说就是返回一个integer类型的值,这个值是通过该Object的内部地址(internal address)转换过来的,这个哈希码是可以通过getClass()方法看到具体值的,显示的是十六进制的数,有时候可以通过此方法来判断对象的引用是否相等,研究java内存的时候,这个可能会有用。
equals():
都知道java中比较字符串是否相等应该用equals();而==则是比较的值,也就是引用;那么为什么是这样的呢?我今天看了下equals的实现方法,发现字符串的比较,是通过每一个字符进行比较,如果都相等,则返回true;而源码里面Object类型的equals方法却是直接用==来代替的,也就是说相当于直接比较引用了,这也就是为什么我们有时候要重写equals方法了,下面附上Jdk中String类型的equals方法源码。
public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String)anObject; int n = value.length; if (n == anotherString.value.length) { char v1[] = value; char v2[] = anotherString.value; int i = 0; while (n-- != 0) { if (v1[i] != v2[i]) return false; i++; } return true; } } return false; }
getClass():
toString():
下面的例子中j是一个简单的Java对象,后面分别是toString()方法和getClass()方法的输出,@后面的即为哈希码,也就是内存地址,getClass()返回运行时的类,
还有getName(),getSimpleName()方法,这些都可以通过查看源码的方法来了解用法,看源码真的是很好的一种学习方法。
System.out.println(j.toString());System.out.println(j.getClass());com.wust.cvte.j2se@15db9742class com.wust.cvte.j2se
clone():
中文”克隆"的意思,刚开始我看源码里的注释,看的并不是很懂,后来又在网上查看一些博客,明白了clone方法实际上是实现了浅复制,附上一篇详解此方法的博客,有图有真相,特别详细,http://blog.csdn.net/zhangjg_blog/article/details/18369201#0-qzone-1-28144-d020d2d2a4e8d1a374a433f596ad1440
其它方法涉及到线程和内存回收,GG等,到用的时候再做记录吧,其中若有不正确之处,欢迎指证。
- Java中Object类的公有方法
- Java中Object类的公有方法
- Java中Object类的公有方法
- 关于java Object类的公有方法
- Effective Java 第14条:在公有类中使用访问方法而非公有域
- effective java(14) 之在公有类中使用访问方法而非公有域
- Effective Java之在公有类中使用访问方法而非公有域(十四)
- JavaScript 中 私有/公有属性 私有/公有方法 类/实例方法 的区别
- java Object类中常用的方法
- Java中Object类的equals方法
- Java中Object类的常用方法
- java中Object类的方法
- Java中 Object的方法
- Java中Object的方法
- Java中Object的方法
- JAVA中object的方法
- Java中Object的方法
- 学习effective java-14类和接口之在公有类中使用可访问的方法,而不是使用公有域
- 关于安卓的屏幕适配 (待完善)
- android studio
- CTO、技术总监和技术经理有啥区别?
- PHP结合memcacheq消息队列解决并发问题
- Android Studio使用系列——新建工程后cannot resolve symbol 'R'
- Java中Object类的公有方法
- Zephyr OS 内核篇: 执行上下文
- 数据库数据类型对应的java数据类型
- 909422229__javascript 获取HTML DOM父、子、临近节点
- java将图片文件转化为字节流
- http学习总结
- linux下tomcat吃内存解决方法
- Android Nougat new Features for developer
- java md5加密结果不一至的问题