異常、數組、字符串、包裝類
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+/:使用單行註釋