Object类上的方法
1.getClass:
public final native Class<?> getClass();
返回当前对象运行时的类的对象。
2.hashCode:
public native int hashCode();
这个方法是为哈希表这种数据结构提供支持的。(例如HashMap)
hashcode 的通用约定为:
1)在一个java应用中在同一个对象上调用多次hashCode方法应该返回同样的int结果。
但是int结果不必保持一致性在同一个java应用的两次执行中。
2)如果两个对象是相等的(equals方法返回true),则hashCode方法必须返回相同的int结果。
3)如果两个对象通过equals方法不相等,不要求他们的hashCode方法必须返回不同的int结果,但是
不同对象上返回不同的hashCode可以提高哈希表的性能(缩短链表的长度)。
3.equals:
public boolean equals(Object obj) {
return (this == obj);
}
4.clone:
protected native Object clone() throws CloneNotSupportedException;
注意两点:第一此方法是protected,只有子类可以调用;第二,子类必须实现Cloneable接口,不然此方法会抛出CloneNotSupportedException异常。
所有数组默认为实现了Cloneable接口,所以数组都有clone方法。另外,这个方法是创建一个新的对象,并且使用被拷贝的对象的属性值来初始化新对象的属性。
而并不是将属性也拷贝一份。所以此方法是一个浅拷贝,并不是深拷贝。
5.toString:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
6.notify:
public final native void notify();
唤醒一个正在等待此对象上的线程。如果有多个等待线程,则任意挑选一个唤醒。具体挑选哪个依赖具体实现。
被唤醒的线程不会立即执行,直到当前线程释放对象上的锁。被唤醒的线程还要和其他想要获取锁的线程竞争锁。
此方法只能被已经获取对象上的锁的线程调用。
7.notifyAll:
public final native void notifyAll();
唤醒所有等待在此对象上的线程。其他和notify方法一样。
8.wait:
public final void wait() throws InterruptedException {
wait(0L);
}
导致当前线程进入等待状态直到被唤醒(notified或者interrupted),此方法和调用wait(0L, 0)效果一样。
public final native void wait(long timeoutMillis) throws InterruptedException;
9.finalize
此方法在java9中已经申明为Deprecated,而且在其他版本中也极不推荐使用,所以不做介绍了。
Object类上的方法的更多相关文章
- 关于Object类下所有方法的简单解析
类Object是类层次结构的根类,是每一个类的父类,所有的对象包括数组,String,Integer等包装类,所以了解Object是很有必要的,话不多说,我们直接来看jdk的源码,开始我们的分析之路 ...
- Object类中通用方法之:toString()方法
1.Java所有的对象都是Object类的实例,都可以直接调用该类中定义的方法,这些方法称为通用方法 2.toString()方法即为Object类中定义的通用方法之一 3.平时我们如果在控制台直接打 ...
- [ 转载 ] Java基础10--关于Object类下所有方法的简单解析
关于Object类下所有方法的简单解析 类Object是类层次结构的根类,是每一个类的父类,所有的对象包括数组,String,Integer等包装类,所以了解Object是很有必要的,话不多说,我们直 ...
- Java Object类的equals()方法
所有类都从Object类中继承了equals方法,Object类中equals方法源代码如下: public boolean equals(Object obj) { retu ...
- Java基础知识强化26:Object类之hashCode()方法、getClass()方法
1. Object类的hashCode()方法,如下: public int hashCode():返回该对象的哈希码值,这个值和地址值有关,但是不是实际地址值(哈希码值是根据实际地址值转化过来的 ...
- object类的equals方法简介 & String类重写equals方法
object类中equals方法源码如下所示 public boolean equals(Object obj) { return this == obj; } Object中的equals方法是直接 ...
- Java Object类及其equals方法
基本概念: Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入: Object类是所有Java类的祖先.每个类都使用 Object 作为超 ...
- Java中的Object类的toString()方法,equals()方法
Object类是所有类的父类,若没有明确使用extends关键字明确表示该类继承哪个类,那么它就默认继承Object类,也就可以使用Object中的方法: 1.toString 如果输出一个对象的时候 ...
- Object类及其equals()方法
== : 1.基本数据类型:根据基本数据类型的值判断是否相等,相等返回true,反之返回false 注意:两端数据类型可以不同, 在不同的情况下,也可以返回true 2.引用数据类型:Object ...
随机推荐
- MVC2 阻止公共方法被调用
阻止公共方法被调用 using System.Web.Mvc; namespace MvcApplication1.Controllers { public class WorkController ...
- 使用SignalR 2进行服务器广播
概述 在本教程中,您将创建一个股票代码应用程序,该应用程序代表您希望定期“推送”或广播从服务器到所有连接客户端的通知的实时应用程序.在本教程的第一部分中,您将从头开始创建该应用程序的简化版本.在本教程 ...
- Python:Selenium Chrome无弹窗+property/attribute/text
我们在用Selenium写自动化程序时候,并不希望程序在实际运行过程中一直弹Chrome窗口,这个时候就需要让Chrome默默打开,自动读取数据,然后默默关闭掉就好. 以下是让chrome用无界面形式 ...
- MVC中使用Hangfire执行定时任务
需求描述 项目中有一个通知公告的功能,在后台管理员添加公告后需要推送消息给所有注册用户,让其查看消息.消息推送移动端采用极光推送,但是消息在何时发送是个问题,比如说有一个重要的会议通知,可能希望在会议 ...
- shiro之深度解析FormAuthenticationFilter
shiro是我们在项目经常使用到的权限管理框架,本文我们就重点来分析FormAuthenticationFilter的验证过程. FormAuthenticationFilter 1.继承结构 ...
- C博客作业03—函数
1.本章学习总结 1.1思维导图 1.2本章学习体会及代码量学习体会 1.2.1 学习体会 知道了程序的模块化设计可使程序结构清晰,简化复杂问题,解决代码重复问题 学会使用自定义函数简化主函数,使代码 ...
- Process Class (System.Diagnostics)
import sys def hanoi(n, a, b, c): if n == 1: print('%c --> %c' % (a, c)) else: hanoi(n-1, a, c, b ...
- socket agent统一模板
# -*- coding: utf- -*- # data:-- : # user:DIY # file:agent_eay.py import socket def work(i): sock = ...
- java实现fp-growth算法
本文参考韩家炜<数据挖掘-概念与技术>一书第六章,前提条件要理解 apriori算法. 另外一篇写得较好的文章在此推荐: http://hi.baidu.com/nefzpohtpndho ...
- js闭包之我见
很久前的一个问题终于得以解决,内心是无比喜悦的,不多说,先上代码: function test(){ for(var i=0;i<5;i++){ window.onclick=function( ...