java filter函数的用法 object转long问题


java filter函数的用法 object转long问题

文章插图
Object简介Object类是所有类的父类,即每个类都直接或间接继承自该类 。所以一个Object类型的变量可以引用任何对象,不论是类实例还是数组 。
在不明确给出父类的情况下,Java会自动把Object作为要定义类的父类 。
Object类有一个默认构造方法public Object(),在构造子类实例时,都会先调用这个默认构造方法 。
Object类共13个方法
如图可知,Object类有12个成员方法,按照用途可以分为以下几种
构造函数hashCode和equale函数用来判断对象是否相同,
wait(),wait(long),wait(long,int),notify(),notifyAll() 多线程场景使用
toString()和getClass, 打印类信息/获取类信息
clone() 克隆对象
finalize()用于在垃圾回收
常用方法预览
Object()
? 默认构造方法
clone()
protected native Object clone() throws CloneNotSupportedException;创建并返回此对象的一个副本(复制对象),用于实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常 。
主要是JAVA里除了8种基本类型传参数是值传递,其他的类对象传参数都是引用传递,我们有时候不希望在方法里将参数改变,这是就需要在类中重写clone方法
equals(Object obj)
用于比较两个对象是否相等,底层用==实现,比较的还是内存地址,子类想要比较两个对象是否相等需要重写equals()方法
finalize()
? 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法,该方法用于释放资源 。很少使用
Java允许在类中定义一个名为finalize()的方法 。它的工作原理是:一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用其finalize()方法 。并且在下一次垃圾回收动作发生时,才会真正回收对象占用的内存 。
getClass()
? 返回一个对象的运行时类,获得类型的信息 。返回一个Class对象,经常用于java反射机制
hashcode()
? 该方法将对象的内存地址进行哈希运算,返回一个int类型的哈希值(返回该对象的哈希码值) 。
功能:是相等对象拥有相同的哈希码,尽量让不等的对象具有不同的哈希码 。该方法用于哈希查找,可以减少在查找中使用equals的次数,重写了equals方法一般都要重写hashCode方法 。这个方法在一些具有哈希功能的Collection中用到 。
一般必须满足obj1.equals(obj2)==true 。可以推出obj1.hash- Code()==obj2.hashCode(),但是hashCode相等不一定就满足equals 。不过为了提高效率,应该尽量使上面两个条件接近等价 。
如果不重写hashcode(),在HashSet中添加两个equals的对象,会将两个对象都加入进去 。
notify()
该方法唤醒在该对象上等待的某个线程 。
notifyAll()
该方法唤醒在该对象上等待的所有线程 。
toString()
? 返回该对象的字符串表示 。以便用户能够获得一些有关对象状态的基本信息 。简单说就是利用字符串来表示对象 。不重写toString()返回的是对象的类路径 + @ + 内存地址hash后的16进制字符串(如下所示源码)
public String toString() {
return getClass().getName() + “@” + Integer.toHexString(hashCode());
}
wait()
? 导致当前的线程等待,直到其他线程调用此对象的notify()方法或notifyAll()方法 。
wait(long timeout)
wait方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁 。wait()方法一直等待,直到获得锁或者被中断 。wait(long timeout)设定一个超时间隔,如果在规定时间内没有获得锁就返回 。


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: