周文佳语强化班三月听我说

2020-06-22:mark

2020-07-05  本文已影响0人  SmileFH

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.上述的是通用的加载顺序,如果没有则省略。

上一篇下一篇

猜你喜欢

热点阅读