java基礎-常用類

1. String類:不可變的字符序列(如:String str = "atguigu"; str += "javaEE")
1.關注於String常用的方法!
2.String類與基本數據類型、包裝類;與字符數組、字節數組;
* 1.字符串 與基本數據類型、包裝類之間轉換
* ①字符串 --->基本數據類型、包裝類:調用相應的包裝類的parseXxx(String str);
* ①基本數據類型、包裝類--->字符串:調用字符串的重載的valueOf()方法

* 2.字符串與字節數組間的轉換
* ①字符串---->字節數組:調用字符串的getBytes()
* ②字節數組---->字符串:調用字符串的構造器

* 3.字符串與字符數組間的轉換
* ①字符串---->字符數組:調用字符串的toCharArray();
* ②字符數組---->字符串:調用字符串的構造器
   4.String與StringBuffer的轉換
   ①String --->StringBuffer:使用StringBuffer的構造器:new StringBuffer(String str);
   ②StringBuffer----->String:使用StringBuffer的toString()方法

   StringBuffer類:可變的字符序列
   StringBuilder類:可變的字符序列,jdk5.0新加入的,效率更高,線程不安全。
    常用的方法:添加:append(...)  刪除 delete(int startIndex, int endIndex)  修改:setCharAt(int n ,char ch)  查詢:charAt(int index)
插入:insert(int index, String str)  反轉reverse()  長度:length()


注:String類的不可變性:


String類被final修飾,不可繼承
string內部所有成員都設置爲私有變量
不存在value的setter
並將value和offset設置爲final。
當傳入可變數組value[]時,進行copy而不是直接將value[]複製給內部變量.
獲取value時不是直接返回對象引用,而是返回對象的copy.


優點
1.字符串常量池的需要.
字符串常量池可以將一些字符常量放在常量池中重複使用,避免每次都重新創建相同的對象、節省存儲空間。但如果字符串是可變的,此時相同內容的String還指向常量池的同一個內存空間,當某個變量改變了該內存的值時,其他遍歷的值也會發生改變。所以不符合常量池設計的初衷。


2. 線程安全考慮。
同一個字符串實例可以被多個線程共享。這樣便不用因爲線程安全問題而使用同步。字符串自己便是線程安全的。


3. 類加載器要用到字符串,不可變性提供了安全性,以便正確的類被加載。譬如你想加載java.sql.Connection類,而這個值被改成了myhacked.Connection,那麼會對你的數據庫造成不可知的破壞。


4. 支持hash映射和緩存。
因爲字符串是不可變的,所以在它創建的時候hashcode就被緩存了,不需要重新計算。這就使得字符串很適合作爲Map中的鍵,字符串的處理速度要快過其它的鍵對象。這就是HashMap中的鍵往往都使用字符串。


缺點:


如果有對String對象值改變的需求,那麼會創建大量的String對象。




2.時間、日期類:
  2.1System類  currentTimeMillis():返回當前時間的long型值。此long值是從1970年1月1日0點0分00秒開始到當前的毫秒數。
      此方法常用來計算時間差。
   2.2 Date類:java.util.Date
1.  Date  d = new Date();//返回當前時間的Date:Mon May 12 15:17:01 CST 2014
             Date d1 = new Date(15231512541241L);//返回形參處此long型值對應的日期
//getTime():返回當前日期對應的long型值。 toString()
   2.3SimpleDateFormat:java.text.SimpleDateFormat
格式化 :日期--->文本 使用SimpleDateFormat的format()方法    
解析:文本--->日期 使用SimpleDateFormat的parse()方法
//1.格式化1
SimpleDateFormat sdf = new SimpleDateFormat();
String date = sdf.format(new Date());
System.out.println(date);//14-5-12 下午3:24
//2.格式化2
SimpleDateFormat sdf1 = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
date = sdf1.format(new Date());
System.out.println(date);//星期一, 12 五月 2014 15:29:16 +0800

//3.解析:
Date date1 = sdf.parse("14-5-12 下午3:24");
System.out.println(date1);

date1 = sdf1.parse("星期一, 12 五月 2014 15:29:16 +0800");
// date1 = sdf1.parse("14-5-12 下午3:24");
System.out.println(date1);
   2.4 Calendar:日曆類
         2.4.1獲取實例:Calendar c = Calendar.getInstance();
         2.4.2 get()/set()/add()/date getTime()/setTime()


3.Math類


4.BigInteger  BigDecimal類

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章