Algorithm:
Review:
文章讲的是java内存模型及同步机制,阐述了指令的原子性、可见性、指令重排序、以及Volatile关键字作用
Tip:Arrays.asList注意事项
先看一下Arrays.asList方法的源代码
根据源代码可知,asList方法传入的是泛型类型的可变参数,因此对于没有对应泛型的8种基本数据类型使用该方法时就会出现JVM将基本类型的数组整体(而不是数组中的每个元素)作为一个对象传入方法,如:
其输出结果为:
而且,对应asList方法返回的List也需要特别注意,因为由源代码可知该方法返回的是Arrays类中定义的静态内部类实例,而非我们常用的java.util.ArrayList类,有兴趣的可以看一下源代码,需要注意的是,这个内部类仅实现了get()/set()、size()、indexOf()、toArray()等方法,并没有实现add()、remove()等集合操作方法,因此在对asList返回的List进行集合操作时,会报UnsupportedOperationException异常。
Share:
极客时间中,郑雨迪大佬对于Java的异常处理机制有非常好的阐述,非常建议读一读,传送门:JVM是如何处理异常的