-
?java.util 包中的 Date 類最主要的作用就是獲取當前時間,我們來看下 Date 類的使用:
使用 Date 類的默認無參構造方法創建出的對象就代表當前時間,我們可以直接輸出 Date 對象顯示當前的時間,顯示的結果如下:
想要按指定的格式進行顯示,如 2014-06-11 09:22:30 需要用到 java.text 包中的 SimpleDateFormat 類,可以使用 SimpleDateFormat 來對日期時間進行格式化,如可以將日期轉換為指定格式的文本,也可將文本轉換為日期。
使用 format() 方法將日期轉換為指定格式的文本
2. 使用 parse() 方法將文本轉換為日期
代碼中的 “yyyy年MM月dd日 HH:mm:ss” 指定了字符串的日期格式,調用?parse()?方法將文本轉換為日期。
注意:
1、 調用 SimpleDateFormat 對象的 parse() 方法時可能會出現轉換異常,即 ParseException ,因此需要進行異常處理
2、 使用 Date 類時需要導入 java.util 包,使用 SimpleDateFormat 時需要導入 java.text 包
查看全部 -
基本類型轉換為字符串有三種方法:
1. 使用包裝類的 toString() 方法
2. 使用String類的 valueOf() 方法
3. 用一個空字符串加上基本類型,得到的就是基本類型數據對應的字符串
將字符串轉換成基本類型有兩種方法:
1. 調用包裝類的 parseXxx 靜態方法
2. 調用包裝類的 valueOf() 方法轉換為基本類型的包裝類,會自動拆箱
PS:其他基本類型與字符串的相互轉化這里不再一一列出,方法都類似
查看全部 -
基本類型和包裝類之間經常需要互相轉換,以 Integer 為例(其他幾個包裝類的操作雷同):
在 JDK1.5 引入自動裝箱和拆箱的機制后,包裝類和基本類型之間的轉換就更加輕松便利了。
那什么是裝箱和拆箱呢? 如下:
裝箱:把基本類型轉換成包裝類,使其具有對象的性質,又可分為手動裝箱和自動裝箱
拆箱:和裝箱相反,把包裝類對象轉換成基本類型的值,又可分為手動拆箱和自動拆箱
查看全部 -
基本數據類型是不具備對象的特性的,比如基本類型不能調用方法、功能簡單。為了讓基本數據類型也具備對象的特性, Java 為每個基本數據類型都提供了一個包裝類,這樣我們就可以像操作對象那樣來操作基本數據類型。
包裝類主要提供了兩大類方法:
1. 將本類型和其他基本類型進行轉換的方法
2. 將字符串和本類型及包裝類互相轉換的方法
Integer 包裝類的構造方法:
如下代碼所示:
Integer包裝類的常用方法:
查看全部 -
調用SimpleDateFormat類的parse方法,將日期字符串轉換為Date類的對象,代碼如下所示:
Date?date=sdf.parse(str);
查看全部 -
運行結果:
從運行結果中我們可以看到,程序運行時會額外創建一個對象,保存 "helloworld"。當頻繁操作字符串時,就會額外產生很多臨時變量。使用 StringBuilder 或 StringBuffer 就可以避免這個問題。至于 StringBuilder 和StringBuffer ,它們基本相似,不同之處,StringBuffer 是線程安全的,而 StringBuilder 則沒有實現線程安全功能,所以性能略高。因此一般情況下,如果需要創建一個內容可變的字符串對象,應優先考慮使用 StringBuilder 類。
查看全部 -
樣例:
查看全部 -
“==” 和 equals() 有什么區別呢?
==: 判斷兩個字符串在內存中首地址是否相同,即判斷是否是同一個字符串對象
equals(): 比較存儲在兩個字符串對象中的內容是否一致
PS:字節是計算機存儲信息的基本單位,1 個字節等于 8 位,?gbk?編碼中 1 個漢字字符存儲需要 2 個字節,1 個英文字符存儲需要 1 個字節。所以我們看到上面的程序運行結果中,每個漢字對應兩個字節值,如“學”對應 “-47 -89” ,而英文字母 “J” 對應 “74” 。同時,我們還發現漢字對應的字節值為負數,原因在于每個字節是 8 位,最大值不能超過 127,而漢字轉換為字節后超過 127,如果超過就會溢出,以負數的形式顯示。
查看全部 -
String 類提供了許多用來處理字符串的方法
1. 字符串 str 中字符的索引從0開始,范圍為 0 到 str.length()-1
2. 使用 indexOf 進行字符或字符串查找時,如果匹配返回位置索引;如果沒有匹配結果,返回 -1
3. 使用 substring(beginIndex , endIndex) 進行字符串截取時,包括 beginIndex 位置的字符,不包括 endIndex 位置的字符
查看全部 -
1、 通過 String s1="愛慕課"; 聲明了一個字符串對象, s1 存放了到字符串對象的引用,在內存中的存放引用關系如下圖所示:
然后通過 s1="歡迎來到:"+s1; 改變了字符串 s1 ,其實質是創建了新的字符串對象,變量 s1 指向了新創建的字符串對象,如下圖所示:
2、 一旦一個字符串在內存中創建,則這個字符串將不可改變。如果需要一個可以改變的字符串,我們可以使用StringBuffer或者StringBuilder(后面章節中會講到)。
3、 每次 new 一個字符串就是產生一個新的對象,即便兩個字符串的內容相同,使用 ”==” 比較時也為 ”false” ,如果只需比較內容是否相同,應使用 ”equals()” 方法(前面條件運算符章節講過哦~~)
查看全部 -
創建 String 對象的方法:
查看全部 -
java中的異常拋出
查看全部 -
e.printStackTrace()可以打印異常信息
當try語句中出現異常是時,會執行catch中的語句,java運行時系統會自動將catch括號中的Exception e 初始化,也就是實例化Exception類型的對象。e是此對象異常名稱。然后e(引用)會自動調用Exception類中指定的方法,也就出現了e.printStackTrace();。printStackTrace()方法的意思是:在命令行打印異常信息在程序中出錯的位置及原因
即使catch塊沒有捕獲到異常,finall塊也會被執行
finally語句塊是在try-catch塊中的return后,返回調用者之前執行
try? catch? finally 語句塊兒之內沒有任何return語句,會調用語句塊之外的return語句
try catch finally語句塊
????1.用于捕捉異常。
????2.當try中有錯誤出現時,會被catch捕捉,并且做出相應的反應。
????3.當有final時,該語句塊中的程序會在catch后執行【即使catch有return】,返回函數前執行。
????4.當try catch final語句塊中都沒有return時,程序會從語句塊外部讀取;否則會按照final-->catch-->try中是否有return返回。
1)有錯誤情況下
如果finally塊中有return語句,try語句 -> catch -> finally -> finally.return
如果finally塊中沒有return語句,try語句 -> catch -> finally -> catch.return
2)無錯誤情況下
如果finally{}塊中有return語句,try語句 -> finally -> finally.return
如果finally{}塊中沒有return語句,try語句 -> finally -> try.returnreturn在try-catch-finally中:
1、不管有沒有出現異常,finally塊中代碼都會執行;
2、當try和catch中有return時,finally仍然會執行;
3、finally是在return后面的表達式運算后執行的(此時并沒有返回運算后的值,而是先把要返回的值保存起來,管finally中的代碼怎么樣,返回的值都不會改變,仍然是之前保存的值),所以函數返回值是在finally執行前確定的;
4、finally中最好不要包含return,否則程序會提前退出,返回值不是try或catch中保存的返回值。
1.e.printStackTrace()可以輸出異常信息
2.-1為拋出異常的習慣寫法
3.如果方法中try,catch,finally中沒有返回語句,則會調用這三個語句塊之外的return結果
4.finally塊無論如何,不管前面是正常還是異常,都要執行。
5.finally 在try中的return之后 在返回主調函數之前執行。查看全部 -
總結:
查看全部 -
左下角表示可以處理的異常(通過try-catch處理),右下角表示不能處理的異常,將拋出給上一級
查看全部
舉報