public class ArrayList
extends AbstractList
implements List, RandomAccess, Cloneable, java.io.Serializable
1.transient 关键字
在其中有一段
transient Object[] elementData;
那transient是什么意思呢?
首先我们需要注意到,ArrayList这个类实现了Serializable这个接口,意味这个对象可以被序列化。只要一个类实现了Serializable这个接口,那么这个类的所有实例变量和方法都会自动序列化。那么transient这个关键字则是阻止这个变量被序列化。
2.@SuppressWarnings
首先J2SE 提供的最后一个批注是 @SuppressWarnings。该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默。
所以这个关键字其实是表明@SuppressWarnings 批注允许您选择性地取消特定代码段(即,类或方法)中的警告。其中的想法是当您看到警告时,您将调查它,如果您确定它不是问题,您就可以添加一个 @SuppressWarnings 批注,以使您不会再看到警告。虽然它听起来似乎会屏蔽潜在的错误,但实际上它将提高代码安全性,因为它将防止您对警告无动于衷 — 您看到的每一个警告都将值得注意。