異常:程式在運作時産生的錯誤。
Java異常分為三種:
(1)Error:系統錯誤,不可控制的異常
(2)Exception:運作時異常
(3)自定義異常
常見Error類:
1.Error
2.AbstractMethodError
3.ClassFormatError
4.IllegalAccessError
5.InternalError
6.NosuchMethodError
7.OutOfMemoryError
8.StackOverflowError
9.ThreadDeath
10.UnknownError
常見Exception類:
1.ArithmeticException
2.ArrayIndexOutofBoundsException
3.ClassCastException
4.NullPointerException
5.StringIndexOutofBoundsException
6.NoSuchFieldException
7.ClassNotFoundException
8.EOFException
9.FileNotFoundException
10.IOException
異常處理:
1.Throws在方法聲明中抛出
2.try...catch...finally
3.throw建立異常對象
注意:若不知道抛出的是哪種異常, 可指定他們的父類Throwable或者Exception。
使用注意:
1.try、catch、finally關鍵字不能單獨使用
2.try可以和catch連用,也可以和finally連用
3.使用throw語句抛出一個異常對象時,該語句下面的代碼将不會被執行.
自定義異常步驟:
1. 建立自定義異常類
2. 在構造方法中通過super(error),error是調用該異常類時傳入的錯誤資訊
3. 在方法中用Throw聲明自定義異常對象并抛出
異常的使用規則:
1. 不要在循環中使用try...catch捕獲異常
2. 方法被覆寫時,覆寫的方法必須抛出的相同的異常或異常的子類
3. 盡量避免catch都是父類Exception,應該對應具體的子類,使得程式的可讀性高.
String類:
建立: String aStr = null; //初始化為空,指向位址為空
String bStr = “”; //空串
String cStr = “RT”; //初始化為”RT”
String dStr = new String(“theString”);
注意:String dStr = new String(“theString”) 在這一句中,有兩個對象
空串:
String aStr = “”;
String bStr = new String();
String cStr = new String(“”);
一個空字元串并不等于null,空串是由””組成,引号裡面不包含任何字元串.
字元串連接配接:連接配接字元串可通過”+”實作, 字元串可以和任意類型字元串連接配接,如果字元串和引用類型連接配接,則預設調用toString()方法.
System.out.println(7 + 8 + “a”); //15a
System.out.println(“a” + 7 + 8); //a78
注意:對個”+”運算符,按照”+”運算符從左到右進行運算.
String類常用方法:
charAt(int index) 傳回指定索引處字元
equals(Object anObject)
endsWith(String suffix) 判斷是否以參數字元串結尾
statsWith(String prefix) 判斷是否以參數字元串開頭
length() 傳回字元串的長度
replace(char oldChar, char newChar) 替換所有字元
split(String regex) 根據regex字元分割, 傳回String數組
subString(int beginIndex, int endIndex) 如果省略第而個參數, 則預設截取到字元末尾
toString() 傳回字元串
trim() 去掉首位空格
equals 和 == 的差別: == 比較的是基本資料類型,用與引用類型的比較時,它僅僅比較的是位址, 字元串比較用equals,如果要比較兩個引用類型的實際内容是否相等, 應該重新equals方法.
String a = “abcabc”;
String b = “abc”
b += “abc”;
System.out.println(a == b); //false
System.out.println(a.equals(b)); //true
String 類型的字元串在進行 += 操作時,實際上是新開辟一個空間,把原來的字元串拷貝在追加上新的字元串.是以一般情況下不建議使用String 進行字元串的拼接,使用StringBuffer進行字元串拼接
格式化字元串:
s% 字元串類型
%c 字元類型
%b 布爾類型
%e 指數類型
%n 換行
%h 散列碼
%d 十進制整數
如:String code = String.format(“%h”, ‘A’); //41
String d = String.format(“%d”, 20); //20
Java中時間的表示: Date/Calendaar/long
三者間的轉換:
//long -> Date
long time = System.currentTimeMillis();
Date date = new Date(time);
// Date -> Calendar
Calendar c = Calendar.getInstance();
c.setTime(date);
// Calendar -> Date
Date d = c.getTime();
// Date -> long
Date d2 = new Date();
long currentTimeMillis = d2.getTime();
// Calendar -> long
Calendar c2 = Calendar.getInstance();
long currentTimeMillis2 = c2.getTimeInMillis();
注意:Calendar中月份表示為0~11, 周日是1, 周一是2,周二是3....Calendar類提供了許多靜态常量來表示時間,如月表示為Calendar.MONTH
SimpleDateFormat:允許格式化(date -> text),(text - > date)
如: SimpleDateFormat sf
= new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss);
String str = sf.format(new Date);
這樣就将日期轉換為了字元串
Scanner:Scanner是java.utile包中的類,實作使用者的控制台輸入,文法如下:
Scanner sc = new Scanner(System.in); //控制台輸入
sc.next; //讀取控制台輸入的字元串
sc.nextInt; //讀取控制台輸入的int型資料
sc.netLine; //讀取行
Math:位于java.lang包下,包含許多用來進行科學計算的方法,通過類名調用這些方法,Math類中存在兩個靜态常量,E和PI,
E = 2.7182882... PI = 3.14159265...
如: abs(double a) //求絕對值
floor(double a) //傳回最大的(最接近正無窮大)double值小魚或等于參數,相當于一個整數
sqrt(double e) //開平方操作
pow(double a, double b) //相當于a的b次方
Random:實作僞随機數,在給定參數區間内随機生成數字,且随機數是均勻分布的,也就是說參數限定範圍的數字生存幾率均等.
Random rand = new Random(System.currentTimeMillis());
一般都以系統目前的時間毫秒數作為種子,如果種子相同,那麼生成的随機數也相同.
rand.nextInt(30); //傳回0~29範圍内的随機int型資料
rand.nextBytes(byte[] bytes) //生成随機位元組并将其置于bytes數組中
rand.setSeed(long seed) //使用long型的參數作為種子值
StringBuffer:位于java.lang包下,是線程安全的,字元可變序列的String,有記憶體緩沖區,并且可以修改.不能直接建立,需要通過對象建立.
如: StringBuffer sb = new StringBuffer(“”);
注意:String和StringBuffer不屬于同一類型,不能進行強制轉換
1.可以通過通過toString()方法将該StringBuffer對象轉換成字元串String類型
2.通過append(String s)方法追加字元串
3.insert(int index, String s) 插入字元串到index位置
4.reverse()實作字元串的翻轉
5.delete(int startIndex, int endIndex) 删除字元串
包裝類:8種基本資料類型都有其對應的包裝類
byte -> Byte
short -> short
int -> Integer
long -> Long
float -> Float
double -> Double
char -> Charater
boolean -> Boolean
Integer:構造函數
Integer(int number) ;
Integer(String s);
注意: String類型要用數字型的字元串作為參數,如“1231”
方法 int parseInt(String s) 可以将數字字元串解析成int
Byte:
構造函數 Byte(byte value) ; Byte(String s)
byte的範圍是 -128~127 是以在向Byte指派時,要保證在範圍内.
抽象類Number是BigDecimal/BigInteger/Byte/Double/Float/
Integer/Long/Short類的父類,子類必須提供表示的數值轉換為基本類型的方法。如doubleValue()方法傳回雙精度值。