String
字符串是常量。字符串的對象創建後內容不可改變。
String s ="abc" ; //在程序中出現 ""引的字符串,都是在字符串常量池中創建對象 ,常量池對象是唯一的。
String s1 = new String(); //創建一個空字符串對象。 但不是null
String s2 = new String(new byte[]{97,98,00}); //使用字節數組構造字符串對象
String s3 = new String(new char[]{'a','b','c'}); //使用字符數組構造字符串對象
String s4 = new String(String s);
- String類的常用方法:
- char charAt(int index):查找指定位置的字符
- int indexOf(String str):判斷字符串出現的位置
- int compareTo(String anotherString):按字典順序比較兩個字符串
- String substring(int beginIndex, int endIndex):截取子字符串
- String[] split(String regex):字符分割
- String replace(CharSequence target, CharSequence replacement):替換字符串
- String trim():去掉字符串前後空白
- StringBuffer:
- 字符串的組成原理就是通過該類實現的。
- StringBuffer可以對字符串內容進行增刪。
- StringBuffer是一個容器。
- 很多方法與String相同。
- StingBuffer是可變長度的。
- StringBuffer特有方法:
- StringBuffer append(int x):將基本數據類型和引用類型數據添加到緩衝區
- 沒有添加short,byte,的方法也就是說如果添加的是byte或short會自動提升爲int
- 這個方法返回的還是原來的緩衝區對象
- StringBuffer delete(int start, int end ):刪除指定角標上的元素,包含頭不包含尾
- StringBuffer insert(int index,String str);在指定角標上插入數據
- StringBuffer reverse():反轉
- 什麼時候用緩衝區呢?
- 當要操作的元素類型不一致,但最終都會轉成字符串的時候。就使用StringBuffer
- String,StringBuffer,StringBuilder:
- 1、String相對於其他兩者效率低,會在內存中產生過多的字符串對象,容易產生垃圾。
- 因爲產生垃圾之後,GC會在一定的條件情況下出來進行垃圾清理,從而拖慢速度。
- 2、StringBuilder中只有一個StringBuilder對象,比String效率高些
- 3、String一旦被初始化不可以被改變
- 4、StringBuilder可以對字符串修改,操作的是一個對象
- 5、StringBuffer 同步(線程安全),多線程使用
- 6、StringBuilder 非同步(線程不安全)jdk1.5的新特性,單線程使用
- 2、掃描器(Scanner):用來從鍵盤輸入讀取數據
- nextLine() 獲取一行字符串
- nextInt() 獲取一個整數
- nextFloat() 獲取一個浮點數
- 3、大數字(BigInteger):如果一個很大的整數無法用long來表達時, 就用BigInteger
- add() 加
- subtract() 減
- multiply() 乘
- divide() 除
- mod() 取餘
- 4、包裝類:JDK提供了對所有數據類型的包裝類
- byte >>> Byte
- short >>> Short
- int >>> Integer
- long >>> Long
- double >>> Double
- float >>> Float
- char >>> Character
- boolean >>> Boolean
- 將基本數據類型封裝成對象的好處在於可以在對象中定義更多的功能方法操作該數據。
- 包裝類的常用方法:
- toString方法:用於基本數據類型與字符串 之間的轉換
- parseInt方法:Integer.parseInt(String s)
- valueOf方法:Double.valueOf(String s)
- 基本數據類型對象包裝類新特性,JDK1.5以後,簡化了定義方式:
- Integer x = new Integer(4);可以直接寫成
- Integer x = 4;//自動裝箱。
- x = x + 5;//自動拆箱。通過intValue方法。x = new Integer(x.intValue()+5);
- 注意:
- 在使用時,Integer x = null;上面的代碼就會出現NullPointerException。
- 5、時間類(Date)
- 使用new Date()創建時間對象代表當前系統時間
- 需要使用DateFormat類來進行格式化,才能顯示想符合習慣的格式
- Calendar:
- 使用該類對時間進行操作比較方便
- 通過常量來表示時間的各種值,如一年中的某一天,一個月的某一天等
- 將對應的常量作爲形參來調用相應的get、add、set方法來操作對象
-
- 6、計時器(Timer):在指定時間或者在指定的延遲之後執行一個任務
- schedule(TimerTask task, Date time)
- schedule(TimerTask task, Date firstTime, long period)
- schedule(TimerTask task, long delay)
- schedule(TimerTask task, long delay, long period)
- 7、系統類(System)
- 靜態屬性in爲標準輸入流,屬於InputStream類型,read方法返回一個字節,默認指向鍵盤輸入
- 靜態屬性out爲標準打印流,屬於PrintStream類型,print方法打印字符,默認打印到屏幕
- 可以用set方法修改屬性in和out
- currentTimeMills():獲取當前時間的毫秒數 1970年開始
- System.exit():退出Java虛擬機
- System.gc():垃圾回收,Java中的對象成爲垃圾之後不會馬上回收掉,如果想立即回收可以調用System.gc()
- System.getProperties():獲得系統屬性
- Runtime:表示系統運行時狀態,設計方法是單例模式完成的
- exec方法執行命令
- 8、算數類(Math):該類提供了一些數學運算的方法
- PI 圓周率
- abs() 絕對值
- ceil() 向上取整
- floor() 向下取整
- round() 得到最接近的整數
- max() 返回較大的數
- min() 返回較小
- pow() 計算一個數的指定次冪
- sqrt() 開平方
- cbrt() 開立方
- random() 隨機數
- 9、隨機數(Random):用來生成隨機數
- nextInt() 隨機整數
- nextFloat() 隨機小數
- nextBoolean() 隨機布爾
- 10、工具類(Arrays):提供了對數組的常用操作
- binarySearch();對數組進行二分查找
- sort(); 對數組進行排序
- fill();
- toString([]);將數組轉爲字符串顯示形式,打印結果帶中括號的
- asList([]):將數組變成集合。可以通過集合的方法操作數組,但不能進行增刪行爲
- 將集合變成數組:通過Collection中的toArray(T[] a)通常在傳遞數組時,長度最好定義爲集合的size();
- Collections:提供了對集合的常用操作
- binarySearch(List,key):如果對List進行二分查找,必須要保證該list有序
- sort(list):對List集合進行排序
- sort(list,Comparator)
- max(list):取出集合中的最大值,最小值
- fill(list,value)
- synchronizedList(list)
- reversOrder();---返回的也是比較器
- 兩個工具類中的方法都是靜態的