JAVA基礎知識總結2——異常、陣列、字串、包裝類
異常、陣列、字串、包裝類
1.異常:執行期出現的錯誤,觀察錯誤的名字和行號最重要
異常處理:try{可能出現異常的語句}catch(異常型別 物件){異常處理}
先逮小的異常,再逮大的異常
重寫方法需要丟擲與原方法所丟擲異常型別一致或不丟擲異常
finally:異常的統一出口,不管是否出現異常,都執行統一的程式碼
throws:在方法定義上使用,表示此方法中不進行異常的處理,而是交給被呼叫處處理。當呼叫丟擲了異常的方法時,必須寫上異常處理語句。
throw: 指在方法中人為的丟擲一個異常類物件(這個異常類物件可能是自己的例項化或者是丟擲已存在的)
Throwable:異常最大的父類,其分為兩個字類:Exception和Error。
Exception表示程式處理的異常,Error表示JVM錯誤
RuntimeException類: 是Exception類的子類,其定義的異常可以選擇性的進行處理
2.陣列:
java語言中宣告陣列時不能指定其長度
如:int a[5]; 這樣宣告一維陣列是非法的,
int[]s = new int[5] 允許的,建立一個大小為5型別為int的陣列。合法的,這個是先在棧中開一個空間名為a,然後new再在堆中開闢5個空間。
物件陣列的建立:Integer testInteger = new Integer(5);// 允許的,建立一個值為5的Integer物件
陣列的拷貝:public static void arraycopy(Object src, int srcPos,Object dest, int destPos, int length)
用於將陣列第srcPos項元素開始的length個元素拷貝到目標陣列從destPos項開始的length個位置
3.String類:字串常量就是String的匿名物件
String表示不可變的字元序列,字串一旦定義則不可改變
例項化方式:開發中使用直接賦值方式
直接賦值(String str = “字串”;)會開闢一塊堆記憶體空間,並且自動儲存在物件池中以供下次重複使用
構造方法(String str = new String(“字串”);)會開闢兩塊記憶體空間,不會自動入池,其中一塊作為垃圾
字串相等比較:
“==”在String中比較的記憶體地址的數值
String類中重寫了equals方法,同來進行字串內容的比較
String類方法:
charAT(int index):返回字串的第index個字元
length():返回字串的長度
indexOf(String str):返回字串中出現str的第一個位置
indexOf(String str, int fromIndex):返回字串中從fromIndex開始出現str的第一個位置
equalsIgnoreCase(String another):比較字串與another是否一樣(忽略大小寫)
replace(char oldChar,char newChar);在字串中用newChar字元替換oldChar字元
substring(int beginIndex) :返回一個新的字串,它從指定索引處的字元開始,直到此字串末尾。
toCharArray():將字串以字元陣列的形式返回
split(String regex):根據給定的正則表示式的匹配拆分此字串,將字串以字串陣列的形式返回
P520.3 將一個字串拆成字串陣列,再把每個陣列元素轉換成整形變數
String data = scan.next();
String result [] = data.split("");
int temp = Integer.parseInt(result[i]) ;
java.lang.StringBuffer 代表可變的字元序列
方法:刪除,新增
StringBuffer類使用append()方法可以完成字串的連線操作,
而String類使用“+”完成;
4.包裝類:Java語言是一個面向物件的語言,但是Java中的基本資料型別卻是不面向物件的,因此,在設計類時為每個基本資料型別設計了一個對應的類進行代表,這樣八個和基本資料型別對應的類統稱為包裝類。
用途: a、作為和基本資料型別對應的類型別存在,方便涉及到物件的操作。
b、包含每種基本資料型別的相關屬性如最大值、最小值等,以及相關的操作方法
c、將本型別與其他型別進行轉換;
d、將字串與本型別及包裝型別相互轉換。
包裝類的使用:
- 基本資料型別轉換成包裝類(裝箱),包裝類轉換成基本資料型別(裝箱)
Integer i1 = new Integer(100); //方法一
Integer i1 = 100;//方法二
int value = i1;//方法1
int value = i1.intValue();//方法2
- 包裝類轉換成其他基本資料型別
Integer i = new Integer(100);
double d = i.doubleValue();
- 基本資料型別轉換成字串
-
字串轉換成基本資料型別
5.equals()
和==
的區別
- 在Java中,任何型別的資料都可以用 “==”進行比較是不是相等,一般用於基本資料型別的比較,比較器儲存的值是否相等。但是如果用於引用型別的比較,則是比較所指向物件的地址是否相等,在這點上,跟
object
類提供的equals()
方法的作用是一致的。 - 對於
equals()
方法
1) 首先,不能用於基本資料型別的變數之間的比較相等;
2) 如果沒有對equals
方法進行重寫,則比較的是引用型別的變數所指向的物件的地址;
3) 諸如String
、Date
等類都對equals
方法進行了重寫,比較的是所指向的物件的內容。
6.列舉型別:列舉定義出了一個類所能使用的若干幾個例項化物件,列舉可以直接採用“列舉型別.物件”的方式取得類中的例項化物件進行操作
只能取特定值中的一個
enum關鍵字,使用enum定義的列舉型別實際上都表示一個類預設繼承了Enum類
enum Color{
RED,GREEN,BLUE;
}
Color red = Color.RED;
本程式定義了一個Color的類,同時在類中定義了三種顏色的物件,需要時直接呼叫即可
列舉就是一種簡化的多例設計模式
列舉中定義的構造方法不能使用public宣告;列舉物件必須放在首行
列舉中通過values()方法取得沒覺得全部內容
在列舉中可以定義構造方法,則再設定列舉範圍時必須顯式的呼叫構造方法
Alt+/:進行程式碼提示
Ctrl+l:為錯誤的程式碼給出糾正方案
Ctrl+/:使用單行註釋