java幾個常用類
引用型別String和StringBuffer
String型別的賦值理解
Int a=3;
a = 5;
這段程式碼的含義是:首先申請記憶體單元,命名為a 同時將3這個值儲存記憶體單元中,然後又將5這隻存入記憶體單元中,這個記憶體單元的之前的只在被賦值後就被修改了。
String str =new String(“abc”)
Str = “123”;
對於引用而言 賦值並不是改變與原來的引用物件的值 而只是調整了引用的關係 所以在使用“==”符號進行比較時 需要特別的注意
publicstatic void main(String[] args) {
String str=newString("abc");
String str1=newString("abc");
System.out.println(str ==str1);//比較地址
System.out.println(str.equals(str1));//比較值
}
}
因為str和str1 引用的事不同的物件,所以str==str1
因為str和str1 引用的字串內容是相同的所以 str.equals(str1)為真。
String類常用的方法:eaquals,length,charAt(取字串裡面的一個字元),format(把字串格式化)substring(切割字串)indexof(找指定字元)lastindexof(返回最後一次出現在指定字元在此字串的索引)replace(新的字元代替老的字元所有)
擷取,trim(去除頭部尾部空白)
StringBuffer:append(在字串後面新增字元),insert(指定字串一個位置,然後插入字串),deleteCharAt(刪除一個字元),delete(從字串裡面刪除一節字串),replace(把字串的其中一節替換為傳入新的字串),setCharAt(找字串裡面的一個下標然後改變這個下標代表的值),reverse(字串反向排列)
1.2陣列物件
Arrays提供了陣列的常見操作,比如查詢,排序等,且他的方法都是靜態的,所以實際上他是一個工具類提供方法,方便程式設計。
Fill(把陣列內所有數改為你想改的數)sort(陣列排序 從小到大)
MATH類
靜態的常量e π
Abs絕對值,sprt平方根,Max最大,pow返回第一個引數的第二個引數次冪的值,min最小,floor向下取整,round(四捨五入,random(隨機生成)
1.3日期類
public static void main(String[]args) {
Calendar calendar =Calendar.getInstance();//獲取當前時間的所有資訊
/* System.out.println(calendar);
System.out.println(calendar.get(Calendar.YEAR));
System.out.println(calendar.get(Calendar.MARCH));
System.out.println(calendar.get(Calendar.DATE));
System.out.println(calendar.get(Calendar.HOUR));
System.out.println(calendar.get(Calendar.MINUTE));
System.out.println(calendar.get(Calendar.SECOND));*/
calendar.setLenient(
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH));
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR));
System.out.println(calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
}
}
日期格式化輸出
public staticvoid main(String[] args) {
SimpleDateFormat simpleDateFormat= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//格式化排列時間Datedate = new Date();
System.out.println(date);
System.out.println(simpleDateFormat.format(date));
}
}
1.4包裝類
為什麼要用包裝類,因為基礎型別和其他型別處理是有不同的
基礎型別的賦值,是直接修改變數裡面的值,準確的說,是修改了記憶體單元裡面的內容。
其他型別的賦值,是改變了引用的指向。
很多地方統一(尤其是範形),系統就提供了我們基本型別所對應的包裝類。
int-Integer
char-Character
其他六個型別首字母大寫就是包裝類
集合框架
2.1vector
Vector(向量):動態陣列
為什麼需要動態陣列很多時候 我們無法事先去確定陣列的元素個數 如果使用了靜態陣列,小了不夠用 大了會造成記憶體空間的浪費 這個時候我們就需要動態的陣列,可以按照一定增量來增加容量。
Vecton 的初始預設容量和增量都是10,可以通過他的構造方法來設定容量和增量,所謂的增量,就是在容量不夠時,增加的量。
Size、capacity、add
Remove<Int index>刪除指定位置的元素
Remove<Int object o>刪除指定元素 (第一個)
Contains 輸入一個數查詢是否有 有了返回true 沒有false
indexOf通過元素找下標
get通過下標找元素
trimToSize將容量調至最小
幾個常用方法
、
2.2棧stack
棧的特點:先進先出,後進後出
Push 增加
Peek 棧頂
Search 查詢
Pop 刪除棧頂
Stack<Integer> stack = new Stack<>();
stack.push(1);//增加stack.push(2);
stack.push(3);
stack.push(4);
stack.push(5);
stack.push(6);
System.out.println(stack.peek());
/*stack.pop();
System.out.println(stack.peek());*/
System.out.println(stack.search(6));
}
2.3List
List : 是一個介面 繼承自collection介面,常用的實現類:ArrayList、LinkList
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);//新增list.add(8);
System.out.println(list.size());//返回列表中的元素數System.out.println(list.contains(5));//如果有輸入的元素則輸出true
System.out.println(list.get(4));//返回列表指定位置的元素System.out.println(list.isEmpty());//如果列表不包含元素則返回false
}
2.4Set
Set也是一個介面,它表示一個無重複元素的集合,無序,唯一(它是通過判斷hashcode來判斷是否重複,如果得不到我們想要的結果,那就重寫equals 方法)
Set 的實現類:hashSet