1.陣列
1.
int arr=new int[5];
system.out.println(arr[5]);
//編譯通過,發生執行時異常(陣列越界異常)
2.二維陣列:要理解二維陣列的記憶體儲存結構,陣列是引用資料型別,因此是堆中開闢空間
int arr=new int[2][3];
//int[2] 這塊空間儲存的是兩個int[3]的記憶體位址
//注意!!兩個int[3] 記憶體的位址是不連續的
注意!!由於記憶體的位址是不連續的,這也就解釋了為什麼
int[ ][ ] arr=new int[2][ ]; //編譯通過
int[ ][ ] arr=new int[ ][3]; //編譯不通過
2.靜態**塊
隨著.class的載入執行,優先main函式的執行,且只執行一次
class testw
} public class test01
public static void main(string args)
}
/*output*/
a 只輸出a
應為在test01的main函式中並沒有載入 testw.class檔案,因此testw的靜態**塊不會執行
3.構造**塊
在建構函式之前執行,每新建乙個物件就會執行構造**塊
class test
public test()
} /*output*/
first construct
second construct
4.物件建立過程
1.首先載入.class檔案建立物件
2.如果有靜態**塊先執行靜態**塊
3.堆中開闢記憶體為成員變數賦預設值
4.堆中開闢記憶體為成員變數賦初始值
5.執行構造**塊
6.執行建構函式
7.物件在堆中的位址傳給棧中的引用
5.super和this的對比
1.this是指向當前的物件的引用,表示當前物件
2.super表示超類意思
3.當成員函式中(非靜態)的區域性變數與成員變數同名時,使用this解決同名問題
eg: public void setname(string name)
4.super是為了解決子類覆蓋父類的成員函式或者成員方法,解決被遮蔽的問題使其可見。
5.在子類建構函式中,首先要呼叫建構函式(super() 呼叫可以省略)但是有一點一定要注意!
當父類的建構函式已經被顯示宣告時候(也就是說預設建構函式已經消失),必須要顯示宣告父類的預設建構函式
否則子類在建構函式時候如果不顯示宣告時,就會報錯。
6.system.out.println(this); //輸出的是當前物件的位址
system.out.println(super); //編譯報錯不通過
Java集合知識點總結
list有序且允許元素重複。map也屬於集合系統,但和collection介面沒關係。map是key對value的對映集合,其中key列就是乙個集合。key不能重複,但是value可以重複。sortedset和sortedmap介面對元素按指定規則排序,sortedmap是對key列進行排序。has...
java多型知識點總結
多型 一種事物有多種表現形式。物件導向的最後乙個特徵,繼承和封裝都是為多型打基礎!生活中的多型 打招呼 中國人 你好 英國人 hello 日本人 拷逆七娃 南韓人 阿娘哈賽you 泰國人 薩瓦迪卡 1 方法的多型性 方法的重寫和過載 2 物件的多型性 物件的轉型上!person p new stud...
JAVA知識點總結(七)多型
多型 可以理解為事物存在的多種體現形態 人 男人,女人 動物 貓,狗 貓 x new 貓 動物 x new 貓 動物貓,狗 1.多型的體現 父類的引用指向了自己子類的物件 父類的引用也可以接收自己子類的物件 2.多型的前提 必須是類與類之間的關係,要麼繼承,要麼實現 3.多型的好處 多型的出現大大的...