static,final。
(1)final:
final:屬於“終態”,意思就是不可以改變。可以修飾非抽象類,非抽象類的方法等。反正就是不能夠再改變賦值了。
注意:1)fina類不能被繼承,所以它沒有子類。
2)final不能用於修飾構造方法。
3)final方法可以繼承,但是不能夠被覆蓋
4)final一旦賦值,便不能更改
5)final容器,比如list,容器不能夠改變,但是容器裡面的內容是可以變化的。
(2)static:
static:表示“靜態”,“全局”,可用來修飾變量,方法還可以用來形成static代碼塊。
被static修飾的的成員或者成員方法是獨立於類的,它不依賴於某個實例,是被所有實例所共享的,也就是說,只要這個類被加載,JVM就能根據方法名去運行內存區去尋找它們。
不需要事先創建實例,
就這樣認為吧,static修飾後的變量,在內存中只有一份拷貝,所有實例都共享這份拷貝,但是如果是實例變量,那麼每次創建一個實例便會多創建一份數據。
static 代碼塊:
static代碼塊也叫靜態代碼塊,是在類中獨立於類成員的static語句塊,可以有多個,位置可以隨便放,它不在任何的方法體內,JVM加載類時會執行這些靜態的代碼塊,如果static代碼塊有多個,JVM將按照它們在類中出現的先後順序依次執行它們,每個代碼塊只會被執行一次
private static final String GOOD = "G"; 表示的是說“G”這個字符串在程序中我們可以使用GOOD替換。
泛型:
泛型是避免重復的裝箱和拆箱 比如集合List<Strunt> studentList=new ArrayList<Student>();
可以直接往集合裡添Student對象
studentList.add(student1);
studentList.add(student2);
...
如果是這樣List studentList=new ArrayList();
studentList.add(student1);
studentList.add(student2);
那麼想要遍歷集合就得
for(Object o:studentList){
Student oo=(Student)o;//這裡需要類型轉換
}
而上面第一個可以直接
for(Student o:StudentList){
o就代表每一個學生的實體了 不需要類型轉換便可得到
作者:博客園 郭佳盛哈哈