1、異常簡介: (1) Java中的所有不正常類都繼承於Throwable類。Throwable主要包括兩個大類,一個是Error類,另一個是 Exception類; (2)其中Error類中包括虛擬機錯誤和線程死鎖,一旦Error出現了,程式就徹底的掛了,被稱為程式終結者; (3) Excepti ...
1、異常簡介:
(1) Java中的所有不正常類都繼承於Throwable類。Throwable主要包括兩個大類,一個是Error類,另一個是
Exception類;
(2)其中Error類中包括虛擬機錯誤和線程死鎖,一旦Error出現了,程式就徹底的掛了,被稱為程式終結者;
(3) Exception類主要指編碼、環境、用戶操作輸入出現問題,Exception主要包括兩大類,非檢查異常。
(RuntimeException 和檢查異常(其他的一些異常)
(4)RuntimeException異常主要包括以下四種異常:空指針異常、數組下標越界異常、類型轉換異常、算術異常。
2、異常語法
try{
//調用一些會拋出異常的方法
}catch(Exception e){
//處理該異常的代碼塊
}
例子1:
例子2:
3、Java中的異常拋出
throw:將產生的異常拋出
throws:聲明將要拋出何種類型的異常
public void 方法名(參數列表) throws 異常列表{ //調用會拋出異常的方法或者throw new Exception }
調用方法一:
調用方法二:
4、自定義異常
class 自定義異常類 entends 異常類型{ }
5、Java中的字元串
在 Java 中,字元串被作為 String 類型的對象處理。 String 類位於 java.lang 包中。預設情況下,該包被自動導入所有的程式。
創建String對象的方法:
6、Java中字元串的不變性
運行結果:
7、Java中的String類的常用方法
String 類提供了許多用來處理字元串的方法,例如,獲取字元串長度、對字元串進行截取、將字元串轉換為大寫或小寫、字元串分割等。
結合代碼來熟悉一下方法的使用:
運行結果:
註意:
(1) 使用 indexOf 進行字元或字元串查找時,如果匹配返回位置索引;如果沒有匹配結果,返回 -1
(2)使用 substring(beginIndex , endIndex) 進行字元串截取時,包括 beginIndex 位置的字元,不包括 endIndex 位置的
字元。
8、Java中的String類的其他方法
運行結果:
註意:那麼,“==” 和 equals() 有什麼區別呢?
== : 判斷兩個字元串在記憶體中首地址是否相同,即判斷是否是同一個字元串對象
equals() : 比較存儲在兩個字元串對象中的內容是否一致
9、認識Java中的StringBuild類
StringBuildStringBuilder 類提供了很多方法來操作字元串。
例如:在下麵的示例代碼中,創建了 StringBuilder 對象,用來存儲字元串,並對其做了追加和插入操作。這些操作
修改了 str 對象的值,而沒有創建新的對象,這就是 StringBuilder 和 String 最大的區別。
運行結果:
10、Java中的包裝類
基本數據類型都非常熟悉,例如 int、float、double、boolean、char 等。基本數據類型是不具備對象的特性的,比如基本類型不能調用方法、功能簡單。。。,為了讓基本數據類型也具備對象的特性, Java 為每個基本數據類型都提供了一個包裝類,這樣我們就可以像操作對象那樣來操作基本數據類型。
基本類型和包裝類之間的對應關係:
包裝類主要提供了兩大類方法:
(1)將本類型和其他基本類型進行轉換的方法
(2)將字元串和本類型及包裝類互相轉換的方法
public class HelloWorld { public static void main(String[] args) { // 定義int類型變數,值為86 int score1 = 86; // 創建Integer包裝類對象,表示變數score1的值 Integer score2=new Integer(score1); // 將Integer包裝類轉換為double類型 double score3=score2.doubleValue(); // 將Integer包裝類轉換為float類型 float score4=score2.floatValue(); // 將Integer包裝類轉換為int類型 int score5 =score2.intValue(); System.out.println("Integer包裝類:" + score2); System.out.println("double類型:" + score3); System.out.println("float類型:" + score4); System.out.println("int類型:" + score5); } }
11、Java中基本類型和包裝類之間的轉換
基本類型和包裝類之間經常需要互相轉換
裝箱:把基本類型轉換成包裝類,使其具有對象的性質,又可分為手動裝箱和自動裝箱
拆箱:和裝箱相反,把包裝類對象轉換成基本類型的值,又可分為手動拆箱和自動拆箱
public class HelloWorld { public static void main(String[] args) { // 定義double類型變數 double a = 91.5; // 手動裝箱 Double b = new Double(a); // 自動裝箱 Double c = a; System.out.println("裝箱後的結果為:" + b + "和" + c); // 定義一個Double包裝類對象,值為8 Double d = new Double(87.0); // 手動拆箱 double e = d.doubleValue() ; // 自動拆箱 double f = d; System.out.println("拆箱後的結果為:" + e + "和" + f); } }
12、Java 中基本類型和字元串之間的轉換
基本類型轉換為字元串有三種方法:
1. 使用包裝類的 toString() 方法
2. 使用String類的 valueOf() 方法
3. 用一個空字元串加上基本類型,得到的就是基本類型數據對應的字元串
將字元串轉換成基本類型有兩種方法:
1. 調用包裝類的 parseXxx 靜態方法
2. 調用包裝類的 valueOf() 方法轉換為基本類型的包裝類,會自動拆箱
public class HelloWorld { public static void main(String[] args) { double m = 78.5; //將基本類型轉換為字元串 String str1 = String.valueOf(m) ; System.out.println("m 轉換為String型後與整數20的求和結果為: "+( str1 + 20 ) ); String str = "180.20"; // 將字元串轉換為基本類型 Double a = Double.parseDouble(str) ; System.out.println("str 轉換為double型後與整數20的求和結果為: " + ( a + 20 ) ); } }
運行結果:
m 轉換為String型後與整數20的求和結果為: 78.520
str 轉換為double型後與整數20的求和結果為: 200.2
13、使用 Date 和 SimpleDateFormat 類表示時間
使用 java.util 包中的 Date 類。這個類最主要的作用就是獲取當前時間
使用 Date 類的預設無參構造方法創建出的對象就代表當前時間,我們可以直接輸出 Date 對象顯示當前的時間,顯示的結果如下:
從上面的輸出結果中,我們發現,預設的時間格式不是很友好,與我們日常看到的日期格式不太一樣,如果想要按指定的格式進行顯示,如 2014-06-11 09:22:30 ,那該怎麼做呢?
此時就到了 java.text 包中的 SimpleDateFormat 類大顯身手的時候了!!可以使用 SimpleDateFormat 來對日期時間進行格式化,如可以將日期轉換為指定格式的文本,也可將文本轉換為日期。
(1)使用 format() 方法將日期轉換為指定格式的文本
運行結果為:
2014-06-11 09:55:48
(2)使用 parse() 方法將文本轉換為日期
運行結果為:
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class HelloWorld { public static void main(String[] args) throws ParseException { // 使用format()方法將日期轉換為指定格式的文本 SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:mm"); SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 創建Date對象,表示當前時間 Date now =new Date(); // 調用format()方法,將日期轉換為字元串並輸出 System.out.println(sdf1.format(now)); System.out.println(sdf2.format(now)); System.out.println(sdf3.format(now)); // 使用parse()方法將文本轉換為日期 String d = "2014-6-1 21:05:36"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 調用parse()方法,將字元串轉換為日期 Date date = sdf.parse(d); System.out.println(date); } }
運行結果:
2017年11月28日 00時13分08秒 2017/11/28 00:13 2017-11-28 00:13:08 Sun Jun 01 21:05:36 CST 2014
14、Calendar 類的應用
Date 類最主要的作用就是獲得當前時間,同時這個類裡面也具有設置時間以及一些其他的功能,但是由於本身設計的問題,這些方法卻遭到眾多批評,不建議使用,更推薦使用 Calendar 類進行時間和日期的處理。
java.util.Calendar 類是一個抽象類,可以通過調用 getInstance() 靜態方法獲取一個 Calendar 對象,此對象已由當前日期時間初始化,即預設代表當前時間,如 Calendar c = Calendar.getInstance();
其中,調用 Calendar 類的 getInstance() 方法獲取一個實例,然後通過調用 get() 方法獲取日期時間信息,參數為需要獲得的欄位的值, Calendar.Year 等為 Calendar 類中定義的靜態常量。
運行結果為:
Calendar 類提供了 getTime() 方法,用來獲取 Date 對象,完成 Calendar 和 Date 的轉換,還可通過 getTimeInMillis() 方法,獲取此 Calendar 的時間值,以毫秒為單位。如下所示:
運行結果為:
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class HelloWorld { public static void main(String[] args) { // 創建Calendar對象 Calendar c =Calendar.getInstance(); // 將Calendar對象轉換為Date對象 Date date = c.getTime(); // 創建SimpleDateFormat對象,指定目標格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 將日期轉換為指定格式的字元串 String now = sdf.format(date); System.out.println("當前時間:" + now); } }
運行結果:
當前時間:2017-11-28 00:27:38
15、使用 Math 類操作數據
Math 類位於 java.lang 包中,包含用於執行基本數學運算的方法, Math 類的所有方法都是靜態方法,所以使用該類中的方法時,可以直接使用類名.方法名,如: Math.round();
常用的方法:
例子:
運行結果:
public class HelloWorld { public static void main(String[] args) { // 定義一個整型數組,長度為10 int[] nums = new int [10]; //通過迴圈給數組賦值 for (int i = 0; i < nums.length; i++) { // 產生10以內的隨機數 int x = (int)(Math.random()*10); nums[i] = x;// 為元素賦值 } // 使用foreach迴圈輸出數組中的元素 for ( int num : nums ) { System.out.print(num + " "); } } }
運行結果:
9 3 2 2 4 1 1 8 5 9