2020-06-22:mark

作者: SmileFH | 来源:发表于2020-07-05 12:05 被阅读0次

    1. int和Integer类型之间的缓存关系

    int的包装类型

    可能稍微了解一些的同学都知道Integer有一个缓存机制,Integer类在加载时会创建一个-128~127的数组,在使用到这之间的数字时会直接从数组里边取,但是这里有一个误区:
    使用Integer a = 1;或Integer a = Integer.valueOf(1); 在值介于-128至127直接时,才作为基本类型。
    使用Integer a = new Integer(1); 时,无论值是多少,都作为对象。

    提问:Integer的valueOf方法有什么作用?是如何实现的?

    2. 数组中的常用方法作用

    List方法
    1. add(parameter)方法:在数组的末尾添加一个元素
    2. add(parameter, parameter)方法:在第一个参数的下标处添加第二个参数的值,之后的依次往后排
    3. remove(parameter)方法:移除参数位置下标的值

    提问:如果让你用代码实现list的add和remove方法,你会吗?

    3. 每个类都能使用的方法(Object方法)

    Object

    Object 类中方法及说明如下:
    registerNatives() //私有方法
    getClass() //返回此 Object 的运行类。
    hashCode() //用于获取对象的哈希值。
    equals(Object obj) //用于确认两个对象是否“相同”。
    clone() //创建并返回此对象的一个副本。
    toString() //返回该对象的字符串表示。
    notify() //唤醒在此对象监视器上等待的单个线程。
    notifyAll() //唤醒在此对象监视器上等待的所有线程。
    wait(long timeout) //在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或 者超过指定的时间量前,导致当前线程等待。
    wait(long timeout, int nanos) //在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。
    wait() //用于让当前线程失去操作权限,当前线程进入等待序列
    finalize() //当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

    4.静态化块

    静态化块

    JAVA的初始化顺序:
    父类的静态成员初始化>父类的静态代码块>子类的静态成员初始化>子类的静态代码块>父类的代码块>父类的构造方法>子类的代码块>子类的构造方法
    注意:
    1.静态成员和静态代码块只有在类加载的时候执行一次,再次创建实例时,不再执行,因为只在方法区存在一份,属于一整个类。
    2.上述的是通用的加载顺序,如果没有则省略。

    相关文章

      网友评论

        本文标题:2020-06-22:mark

        本文链接:https://www.haomeiwen.com/subject/qpiffktx.html