Java第三季,
1、異常簡介:
(1) Java中的所有不正常類都繼承於Throwable類。Throwable主要包括兩個大類,一個是Error類,另一個是
Exception類;
(2)其中Error類中包括虛擬機器錯誤和線程死結,一旦Error出現了,程式就徹底的掛了,被稱為程式終結者;
(3) Exception類主要指編碼、環境、使用者操作輸入出現問題,Exception主要包括兩大類,非檢查異常。
(RuntimeException 和檢查異常(其他的一些異常)
(4)RuntimeException異常主要包括以下四種異常:null 指標異常、數組下標越界異常、類型轉換異常、算術異常。
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中的封裝類
基礎資料型別 (Elementary Data Type)都非常熟悉,例如 int、float、double、boolean、char 等。基礎資料型別 (Elementary Data Type)是不具備對象的特性的,比如基本類型不能調用方法、功能簡單。。。,為了讓基礎資料型別 (Elementary Data Type)也具備對象的特性, Java 為每個基礎資料型別 (Elementary Data Type)都提供了一個封裝類,這樣我們就可以像操作對象那樣來操作基礎資料型別 (Elementary Data Type)。
基本類型和封裝類之間的對應關係:
封裝類主要提供了兩大類方法:
(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. 用一個Null 字元串加上基本類型,得到的就是基本類型資料對應的字串
將字串轉換成基本類型有兩種方法:
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.520str 轉換為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:132017-11-28 00:13:08Sun 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