public class ArrayList?
? extends AbstractList?
? implements List, RandomAccess, Cloneable, java.io.Serializable
1.transient 關(guān)鍵字
? 在其中有一段
transient Object[] elementData;
? 那transient是什么意思呢哆键?
? 首先我們需要注意到,ArrayList這個(gè)類實(shí)現(xiàn)了Serializable這個(gè)接口供鸠,意味這個(gè)對(duì)象可以被序列化。只要一個(gè)類實(shí)現(xiàn)了Serializable這個(gè)接口,那么這個(gè)類的所有實(shí)例變量和方法都會(huì)自動(dòng)序列化。那么transient這個(gè)關(guān)鍵字則是阻止這個(gè)變量被序列化。
2.@SuppressWarnings
? 首先J2SE 提供的最后一個(gè)批注是 @SuppressWarnings稚机。該批注的作用是給編譯器一條指令,告訴它對(duì)被批注的代碼元素內(nèi)部的某些警告保持靜默获搏。
? 所以這個(gè)關(guān)鍵字其實(shí)是表明@SuppressWarnings 批注允許您選擇性地取消特定代碼段(即,類或方法)中的警告失乾。其中的想法是當(dāng)您看到警告時(shí)常熙,您將調(diào)查它,如果您確定它不是問題碱茁,您就可以添加一個(gè) @SuppressWarnings 批注裸卫,以使您不會(huì)再看到警告。雖然它聽起來似乎會(huì)屏蔽潛在的錯(cuò)誤纽竣,但實(shí)際上它將提高代碼安全性墓贿,因?yàn)樗鼘⒎乐鼓鷮?duì)警告無動(dòng)于衷 — 您看到的每一個(gè)警告都將值得注意。