Android开发之基类Object官方文档翻译

版权声明:本文为博主原创文章,转载请声明。 https://blog.csdn.net/qq_32175491/article/details/78526142

Android 开发之官方文档翻译及全面解析系列筹备结束,今天开始出,双周更,欢迎大家交流学习点评。

所有Android开发的小伙伴基本都知道,Android底层是由C/C++编写,应用层是由Java语言编写而成的。当然,大多数的开发都停留在应用层,所以今天从最基础的开始翻译开始。所有类的基类——没错 Object。关于Object就不做过多介绍了,接来下就是翻译内容。如有不适,请自备纸巾。


java.lang.Object

extends Object implements Drawable.Callback, KeyEvent.Callback, AccessibilityEventSource

// 简单说一下java.lang,java.lang主要是提供利用Java编程语言进行程序设计的基础类。最重要的类是Object(它是类层次结构的根)和 Class(它的实例表示正在运行的应用程序中的类)。其他就是实现绘制,事件监听的一些回调,不多说。当然,官方文档也说了,你可以参考Class类。


Summary(语法)

Public constructors(构造方法)

Object();
public methods(公共方法)
返回值 方法
boolean equals(Object obg) 用来判读两个Objects是否和另外一个相等。
final Class getClass()返回该对象的运行时类
int hashCode()返回hashCode值,什么是hashCode?自行百度
final void notify() 唤醒在这个对象的监视器上等待的一个线程。用来唤醒线程用的
final void notifyAll()同上,唤醒所有等待线程。
String toString()返回对象的字符串表示。
final void wait(long millis,int nanos)对应上面的notify和notifyAll方法,用来使当前线程暂停,使当前线程处于等待状态。millis是毫秒,最大等待事件,nanos参数纳秒的意思。
final void wait(long millis):同上,只是参数不同
final void wait():wait(0,0)和wait(0)和wait()效果差不多,同上。
Protected methods(受保护的方法)
返回值 方法
Object clone()复制一个对象
void finalize():垃圾回收器准备回收该对象时,会先调用该对象的finalize()方法。finalize()方法主要用来回收特殊渠道申请内存。当然,做Android开发基本不会用到,大家也不用去深入了解。

简单代码说明:

class ObJectDemo extends Object {  
    private int id;  
    public ObJectDemo(int id) {  
        this.id = id;  
        System.out.println("ObJectDemo Object " + id + "is created");  
    }  

    protected void finalize() throws java.lang.Throwable {  
        super.finalize();  
        System.out.println("ObJectDemo Object " + id + "is disposed");  
    }  
}  

当ObJectDemo被垃圾回收站回收的时候,就会先调用finalize()方法。

总结:
Object类的方法很少,但作用却不小,当然,值得稍微注意下的是,equals方法的使用。

这里也做下equals方法的简单说明:

  1. 在默认没有重新equals方法的情况下:Object的equals方法主要用于判断对象的内存地址引用是不是同一个地址(是不是同一个对象)。
  2. 如果重写的equals方法,需要根据具体的代码来确定equals方法的作用。覆盖后一般都是通过对象的内容是否相等来判断对象是否相等。

简单小总结:
1. equals方法用于比较对象的内容是否相等(覆盖以后)
2. hashcode方法只有在集合中用到
3. 当覆盖了equals方法时,比较对象是否相等将通过覆盖后的equals方法进行比较(判断对象的内容是否相等)。
4. 将对象放入到集合中时,首先判断要放入对象的hashcode值与集合中的任意一个元素的hashcode值是否相等,如果不相等直接将该对象放入集合中。如果hashcode值相等,然后再通过equals方法判断要放入对象与集合中的任意一个对象是否相等,如果equals判断不相等,直接将该元素放入到集合中,否则不放入。

猜你喜欢

转载自blog.csdn.net/qq_32175491/article/details/78526142