個人博客網:https://wushaopei.github.io/ (你想要這裏多有)
1、包裝類
1 .1 八個包裝類
1. 2 基本數據類型,包裝類,String者之間的轉換
2、String 類
2.1 說明
- 被final修飾該類不能被繼承
- 實現了java.io.Serializable : 可以進行序列化。可以將內存中的數據寫入磁盤。前端和後臺數據的傳輸也需要進行序列化。不同進程間數據的傳輸也需要序列化。
- 實現了Comparable接口 : 可以比較內容。
- 實現了CharSequence接口 : 可以獲取內容的長度,還可以截取子串
- String底層是一個char[],且該數組被final修飾
- String是一個不可變的字符序列
2.2 內存分析
3、StringBuffer 和 StringBuilder
3.1 String,StringBuffer,StringBuilder者之間的區別?
String : 是一個不可變的字符序列,底層是一個char[]被final所修飾
StringBuffer:是一個可變的字符序列,底層是一個char[],線程安全的,效率低
StringBuilder:是一個可變的字符序列,底層是一個char[],線程不安全的,效率高
3.2 StringBuffer構造器說明
new StringBuffer(); //創建一個長度爲16的數組
new StringBuffer(1000); //創建一個長度爲1000的數組
new StringBuffer("abcdefg"); //創建一個長度爲 :字符串長度 + 16
說明:
當我們創建一個空參的StringBuffer的對象時,底層默認創建一個長度爲16的數組。當我們添加第17個元素時,底層會進行擴容,擴容爲原來的2倍+2.
3.3常用方法
增 ,刪 ,改,查 ,插,長度
4、時間日期API
4.1 Date
java.util.Date
new Date(): 獲取當前的時間
new Date(long time):毫秒數對應的那個時間
toString() :輸出對應的時間
getTime() :獲取時間對應的毫秒數
java.sql.Date
new Date(long time) :獲取毫秒數對應的日期
toString() : 輸出毫秒數對應的日期
getTime() : 獲取日期對應的毫秒數
4.2 java.text.SimpleDateFormat:格式化時間
兩個方法:
1.將時間轉成字符串 format(Date date)
2.將字符串轉成時間 parse("18-8-14 下午3:47")
代碼:
@Test
public void test2() throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-'W'ww-u");
String time = sdf.format(new Date());
//2018-W33-2
System.out.println(time);
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
String time2 = sdf2.format(new Date());
//2018-08-14T15:54:26.831+0800
System.out.println(time2);
SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time3 = sdf3.format(new Date());
//2018-08-14 15:56:12
System.out.println(time3);
//注意:不能將其它格式的時間字符串進行轉換
Date parse = sdf3.parse("2018-08-14 15:56:12");
}
4.3日曆類(瞭解)
Calendar instance = Calendar.getInstance();
// System.out.println(instance.getClass().getName());
//當天是當年的第幾天
int day = instance.get(Calendar.DAY_OF_YEAR);
//當天是當週的第幾天
day = instance.get(Calendar.DAY_OF_WEEK);
//當天是當月的第幾天
day = instance.get(Calendar.DAY_OF_MONTH);
//將當天設置成當月的第1天
instance.set(Calendar.DAY_OF_MONTH, 1);
day = instance.get(Calendar.DAY_OF_MONTH);
//在當天是當月的第幾天的基礎上 加 3 ,可以寫負數
instance.add(Calendar.DAY_OF_MONTH, 3);
day = instance.get(Calendar.DAY_OF_MONTH);
//獲取日曆對應的時間
Date time = instance.getTime();
System.out.println(time.toString());
5、其他類
5.1 Math:用於數學計算
5.2 BigInteger
說明 :Integer類作爲int的包裝類,能存儲的最大整型值爲,BigInteger類的數值範圍較Integer類、Double類的數值範圍要大得多,可以支持任意精度的整數。
BigInteger a = new BigInteger(String.valueOf(Integer.MAX_VALUE));
BigInteger b = new BigInteger(String.valueOf(1));
BigInteger add = a.add(b);
System.out.println(add);
5.3 BigDecimal
說明:一般的Float類和Double類可以用來做科學計算或工程計算,但在商業計算中,要求數字精度比較高,故用到java.math.BigDecimal類。BigDecimal類支持任何精度的定點數
BigDecimal a = new BigDecimal(String.valueOf(1.0));
BigDecimal b = new BigDecimal(String.valueOf(0.41));
BigDecimal subtract = a.subtract(b);
System.out.println(subtract);