Java13-day04【Integer、int和String的相转、自动装箱和拆箱、Date、SimpleDateFormat、Calendar、异常、try...catch、throws】
- 視頻+資料(工程源碼、筆記)【鏈接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg? ?提取碼:zjxs】
- Java基礎--學習筆記(零起點打開java世界的大門)--博客匯總表
目? ?錄
01_基本類型包裝類
5.1、基本類型包裝類概述
02_Integer
5.2、Integer類的概述和使用
03_int和String的相互轉換
5.3、int和String的相互轉換
04_字符串中數據排序
案例:字符串中數據排序
05_自動裝箱和拆箱
5.4、自動裝箱和拆箱
06_Date
6.1、Date類概述和構造方法
07_Date常用方法
6.2、Date類的常用方法
08_SimpleDateFormat
6.3、SimpleDateFormat類概述
6.4、SimpleDateFormat構造方法
6.5、SimpleDateFormat格式化和解析日期
09_日期工具類
案例:日期工具類
10_Calendar
6.6、Calendar類概述
11_Calendar常用方法
6.7、Calendar的常用方法
12_二月天
案例:二月天
13_異常
1.1、異常概述
14_JVM的默認處理方案
1.2、JVM的默認處理方案
15_異常處理之try...catch
1.3、異常處理
1.4、異常處理之try...catch...
16_Throwable的成員方法
1.5、Throwable的成員方法
1、getMessage()?返回Throwable的詳細消息字符串
2、toString() 返回此可拋出的簡短描述
3、printStackTrace() 把異常的錯誤信息輸出在控制臺
17_編譯時異常和運行時異常的區別
1.6、編譯時異常和運行時異常的區別
1、運行時異常
2、編譯時異常
18_異常處理之throws
1.7、異常處理之throws
19_自定義異常
1.8、自定義異常
1.9、throws和throw的區別
01_基本類型包裝類
5.1、基本類型包裝類概述
?
02_Integer
5.2、Integer類的概述和使用
打印的是“100",而不是地址信息。說明: lnteger重寫了toString()方法。
不是數字組成的字符串,會出現“NumberFormatException”的問題。
03_int和String的相互轉換
5.3、int和String的相互轉換
int轉換為String
- 方式一:直接在數字后加一個空字符串? ? ?【String s1 = number + "";】
- 方式二:通過String類靜態方法valueOf()? ?【String s2 = String.valueOf(number);】
String轉換為int
- 方式一:先將字符串數字轉成Integer,再調用valueOf()方法【Integer i = Integer.valueOf(s);? ?int x = i.intValue();】
- 方式二:通過Integer靜態方法parseInt()進行轉換? ? ? ? ? ? ? ? ?【int y = Integer.parseInt(s);】
04_字符串中數據排序
案例:字符串中數據排序
package com.itheima_03;import java.util.Arrays;public class IntegerTest {public static void main(String[] args) {//定義一個字符串String s = "91 27 46 38 50";//把字符串中的數字數據存儲到一個int類型的數組中String[] strArray = s.split(" ");for(int i=0; i<strArray.length; i++) {System.out.println(strArray[i]);}//定義一個int數組,把 String[] 數組中的每一個元素存儲到 int 數組中int[] arr = new int[strArray.length];for (int i = 0; i < arr.length; i++) {arr[i] = Integer.parseInt(strArray[i]);}//對 int 數組進行排序Arrays.sort(arr);//把排序后的int數組中的元素進行拼接得到一個字符串,這里拼接采用StringBuilder來實現StringBuilder sb = new StringBuilder();for (int i = 0; i < arr.length; i++) {if (i == arr.length - 1) {sb.append(arr[i]);} else {sb.append(arr[i]).append(" ");}}String result = sb.toString();//輸出結果System.out.println(result);} }05_自動裝箱和拆箱
5.4、自動裝箱和拆箱
package com.itheima_04;/*裝箱:把基本數據類型轉換為對應的包裝類類型拆箱:把包裝類類型轉換為對應的基本數據類型*/ public class IntegerDemo {public static void main(String[] args) {// 裝箱:把基本數據類型轉換為對應的包裝類類型Integer i = Integer.valueOf(100); // 裝箱Integer ii = 100; // 自動裝箱 底層:Integer.valueOf(100);// 拆箱:把包裝類類型轉換為對應的基本數據類型ii += 200; // ii = ii + 200; // ii = ii.intValue() + 200; // 自動裝箱:基本數據類型自動賦值給引用類型Integer // // ii.intValue():拆箱 引用類型變為基本類型 // ii = i + 200; // 內部隱含自動拆箱、自動裝箱操作System.out.println(ii);Integer iii = null; // iii += 100; // iii先調用intValue()方法 NullPointerException// 引用數據類型,在使用之前,最好先做是否為null的判斷if (iii != null) {iii += 100;}} }06_Date
6.1、Date類概述和構造方法
圖示的Date類,在java.sql包下,將學習的Date類在java.util包下。
在搜索框中輸入類名的時候,在一般情況下,只有一個包下有這個類,但是也會存在 有多個包下有這個類。
Date構造方法
07_Date常用方法
6.2、Date類的常用方法
08_SimpleDateFormat
6.3、SimpleDateFormat類概述
6.4、SimpleDateFormat構造方法
?
6.5、SimpleDateFormat格式化和解析日期
?
09_日期工具類
案例:日期工具類
10_Calendar
6.6、Calendar類概述
Calendar 為特定瞬間(某一時刻)與一組日歷字段之間的轉換提供了一些方法,并為操作日歷字段提供了一些方法。
?
Calendar 提供了一個類方法 getInstance 用于獲取這種類型的一般有用的對象,該方法返回一個Calendar 對象。
其日歷字段已使用當前日期和時間初始化:Calendar rightNow = Calendar.getInstance()
使用“static”修飾的日歷字段,可以通過類名直接訪問。
抽象類,不能直接創建對象(實例化)。構造方法,可以用于子類訪問父類數據的初始化。
成員方法,大部分都沒有使用“static”修飾,需要通過對象來使用。
java.util.GregorianCalendar[time=1596087518361,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=29,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2020,MONTH=6,WEEK_OF_YEAR=31,WEEK_OF_MONTH=5,DAY_OF_MONTH=30,DAY_OF_YEAR=212,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=5,AM_PM=1,HOUR=1,HOUR_OF_DAY=13,MINUTE=38,SECOND=38,MILLISECOND=361,ZONE_OFFSET=28800000,DST_OFFSET=0]11_Calendar常用方法
6.7、Calendar的常用方法
12_二月天
案例:二月天
13_異常
1.1、異常概述
?
ERROR:一個Error是的子類Throwable表示嚴重的問題,合理的應用程序不應該試圖捕獲。
程序出現ERROR情況,一般來說Java程序是無能為力的,比如說:硬件層面的問題、內存資源不足。針對ERROE問題,一般不處理。
檢查異常:編譯期間就必須處理的異常,否則程序不能通過編譯。
RuntimeException及其子類是未經檢查的異常 。編譯期間,不需要檢查,出現問題后,需要修改代碼。
?
14_JVM的默認處理方案
1.2、JVM的默認處理方案
如果程序出現了問題,我們沒有做任何處理,最終JVM 會做默認的處理,處理方式有如下兩個步驟:
- 把異常的名稱,錯誤原因及異常出現的位置等信息輸出在了控制臺
- 程序停止執行
15_異常處理之try...catch
1.3、異常處理
為什么要學習自己處理異常?Java虛擬機的默認處理方案,會讓程序在出現問題的地方直接結束。而在程序開發中,程序某一個部分出問題了,不應該影響后續程序的執行,所以要自己處理異常。?
如果程序出現了問題,我們需要自己來處理,有兩種方案:
- try ...?catch ...
- throws
1.4、異常處理之try...catch...
異常類名 要與 異常對象 相匹配,變量名(對象名),接收對象。
- 程序從 try 里面的代碼開始執行
- 出現異常,就會跳轉到對應的 catch 里面去執行
- 執行完畢之后,程序還可以繼續往下執行
Java虛擬機的默認處理方式:
package com.itheima_02;public class ExceptionDemo01 {public static void main(String[] args) {System.out.println("開始");method();System.out.println("結束");}public static void method() {try {int[] arr = {1, 2, 3};System.out.println(arr[3]); // 此處出現問題,會產生異常類對象 相當于 new ArrayIndexOutOfBoundsException();// 把“new ArrayIndexOutOfBoundsException();”交給Java的運行時系統// 運行時系統就到catch中 找匹配的異常對象,找到匹配的異常對象后,執行{}中的內容System.out.println("這里能夠訪問到嗎?不能!");} catch (ArrayIndexOutOfBoundsException e) { // 出現異常后,應該給出一個頁面進行提示System.out.println("你訪問的數組索引不存在,請回去修改為正確的索引");e.printStackTrace(); // e是對象,調用方法System.out.println("---");}} }16_Throwable的成員方法
1.5、Throwable的成員方法
Throwable是所有錯誤和異常的祖宗類,只要屬于這個體系的,都可以使用它的成員方法。
1、getMessage()?返回Throwable的詳細消息字符串
在構造方法中,對detailMessage進行賦值。
2、toString() 返回此可拋出的簡短描述
3、printStackTrace() 把異常的錯誤信息輸出在控制臺
e.printStackTrace()? ?信息最全,用的最多!
17_編譯時異常和運行時異常的區別
1.6、編譯時異常和運行時異常的區別
Java中的異常被分為兩大類:編譯時異常和運行時異常,也被稱為受檢異常和非受檢異常。
所有的RuntimeException類及其子類 被稱為運行時異常,其他的異常都是編譯時異常。
編譯時異常
- 都是Exception類及其子類。
- 必須顯示處理,否則程序就會發生錯誤,無法通過編譯。
運行時異常
- 都是RuntimeException類及其子類。
- 無需顯示處理,也可以和編譯時異常一樣處理。
1、運行時異常
運行時異常(非受檢異常):編譯的時候不報錯;運行報錯 --> 返回修改代碼。
運行時異常(非受檢異常):做不做try{}catch(){}處理都一樣,不需要顯示處理,因為?運行時異常 需要修改代碼。
2、編譯時異常
?未處理異常。可能會出現問題,要捕捉異常。
編譯時異常:有可能會出現異常!!!
18_異常處理之throws
1.7、異常處理之throws
public void 方法() throws 異常類名 { }
throws處理異常,沒有輸出“結束”,并不是真正地處理異常,僅僅是 拋出異常,如果想讓程序往下執行,還是得用try...catch...
編譯時異常:在編譯期間就必須顯示處理,否則程序會報錯。
不管是 編譯時異常,還是 運行時異常,都可以在方法后 通過throws拋出異常,但是這種拋出異常的方式,并沒有做實際處理。
真正的處理還是得通過try...catch...實現。(程序繼續向下執行!)
假如異常處理不了,可以拋出去,讓調用者進行處理。
19_自定義異常
1.8、自定義異常
1.9、throws和throw的區別
總結
以上是生活随笔為你收集整理的Java13-day04【Integer、int和String的相转、自动装箱和拆箱、Date、SimpleDateFormat、Calendar、异常、try...catch、throws】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java12-day03【
- 下一篇: 嵌入式之NB-IoT开发与应用01【移动