object 类方法(object类型)
object 类方法(object类型),新营销网红网本栏目通过数据整理汇集了object 类方法(object类型)相关信息,下面一起看看。
对象是Java中一个非常特殊的类。它是所有其他类的父类,当定义一个类时,没有必要声明新类是从Object扩展的。今天,我们来看看Java中最基本的对象类。
对象类包含什么?
对象类中的。
通过IDE,我们可以很容易地看到对象有哪些,其中一个是私有的,两个是受保护的,九个是公共的。这些很多都是原生的,也就是说它们是C,在jdk中无法直接查看源代码。接下来我就一一介绍。
注册
注册
这个是静态原生,这个是私有的,日常工作中肯定不会直接用这个。这个功能其实很简单,就是注册Object中使用的几种原生语言。
GetClass也是native和final,所以不能在所有派生类中重写。的作用也很简单获取定义当前实例的类的类对象。这在获取诸如对象的类名之类的信息时非常有用,并且经常在Java反射相关的编程中使用。
HashCode这也是原生的,可以重写。从Object的代码注释中,我们发现这必须遵循JRE中的某个约定。所谓契约是大家都同意的,所有JVM厂商都会遵守
同一对象对hashCode的多次调用必须返回同一个整数。
如果两个对象使用equals返回true,它们的hashCode也必须返回相同的整数。
如果两个对象使用equals返回false,则不要求它们的hashCode返回不同。,为了更好地在HashTable中使用,两个对象都等于false,它们的hashCode也是不同的。
hashCode的关键注释
如果我们自己重写一个类的hashCode,需要特别注意以上三点。只有满足这三点,重写的hashCode才是可靠的,否则可能会出现意想不到的问题。
Equals这是我们平时用的非常频繁的一个。用于判断两个对象是否相等,与“==”有本质区别。Equals确定两个对象的内容是否相同,而“==”确定两个对象的内存地址是否相同。在Object类中equals内部使用了“==”,这意味着对于一个自定义类来说,如果不重写equals,就无法判断两个对象的内容是否一致。
所以当我们定义一个类,需要比较不同实例的内容在使用中是否一致时,就需要重写equals。因为equals和hashCode是有关联的,所以在重写equals的时候往往需要重写hashCode。
Equals具有以下特征(其中x、y、z、y和z是非空对象引用):
它是反射性的。X.equals(x)必须返回true。
具有对称性。当x.eqals(y)返回true时,y.equals(x)也应该返回true。
它是可传递的。当x.equals(y)返回true,y.equals(z)返回true时,x.equals(z)也应该返回true。
有一致的。当多次调用equals时,每次返回的结果应该是相同的。
X.equals(null)总是返回false。
等号的关键注释
当我们重写一个类的equals时,我们需要遵循这些特性来确保equals的可靠性。
克隆的功能是复制自身,生成新的对象实例。,clone不是每个类都可以调用的。只有实现Cloneable接口的类才能调用clone。在不使用Cloneable接口的类上调用clone会引发CloneNotSupportedException异常。
克隆的关键评论
在对克隆的注释上,我们可以知道克隆对于任何对象都应该具有以下特征
x.clone()!=x为真
X.clone()。getclass ()==X.getclass()为真,不需要。
X.clone()。equals(x)为真,这不是必须的。
如果我们需要重写克隆体,我们需要特别注意上面的特性,重写克隆体的场景很少。
ToString这也是一个常用的,通过它可以将对象转换成字符串。Object中的toString只是简单的返回这个对象的类名,hashCode,在实际工作中没有太大意义。在此注释中,还建议您为每个类重写toString,以获得更友好的toString结果。
对象的字符串
Notify唤醒一个等待当前对象作为锁的线程。在所有等待当前对象锁定的线程中随机唤醒一个线程。注意,这需要与synchronized一起使用。
NotifyAll类似于notify,但这将唤醒所有等待当前对象的线程。
对象类中有三个wait。它们的主要功能是一样的,不同的是等待的超时。这个函数是让当前线程等待,直到对象的notify或notifyAll被调用或等待超过指定时间。如果超时设置为0,意味着它将一直等待。
定稿这个不建议重写。它的作用相当于析构函数,在释放Object对象时由JVM调用。一般在这里发布一些资源等。如果不是很有必要,请不要重写这个。
这具有以下特点
对finalize的调用是由jvm发起的。
这个中抛出的异常将被jvm捕获忽略。
任何对象的finalize最多只会被调用一次,不保证一定会被调用。
Object(你知道Object里面有哪些方法以及它们的作用吗?)object(object类的方法有哪些?)
更多object 类方法(object类型)相关信息请关注本文章,本文仅仅做为展示!