在java 中,声明一个数组时,不能直接限定数组长度,只有在创建实例化对象时,才能对给定数组长度.。
用new创建的对象在堆区
函数中的临时变量在栈去
java中的字符串在字符串常量区
栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中
静态域:存放在对象中用static定义的静态成员
常量池:存放常量
接口里的方法只能用 public 和 abstract 修饰,如果你不写也没关系,默认的也是 public abstract 修饰.
- 静态初始化块 > 初始化块 > 构造器
- 父类 > 子类
综合下来顺序就是:
- 父类静态初始化块
- 子类静态初始化块
- 父类初始化块
- 父类构造器
- 子类初始化块
- 子类构造器
需要注意静态初始化块是在类第一次加载的时候就会进行初始化。
1.CopyOnWirteArrayList 适用于写少读多的并发场景
2.ReadWriteLock 即为读写锁,要求写与写之间互斥,读与写之间互斥,读与读之间可以并发执行,在读多写少的情况下可以提高效率。
3.ConcurrentHashMap是同步的HashMap,读写都加锁
4.volatile只保证多线程操作的可见性,不保证原子性