《Java架構築基》從Java基礎講起——常見的API方法

1. Object類

1.1 Object有哪些公用方法?

  • a.方法equals測試的是兩個對象是否相等
  • b.方法clone進行對象拷貝【問題:是淺拷貝仍是深拷貝?】
  • c.方法getClass返回和當前對象相關的Class對象
  • d.方法notify,notifyall,wait都是用來對給定對象進行線程同步的

2. String類

2.1 String類的一些特性

  • String 類表明字符串。Java 程序中的全部字符串字面值(如 "abc" )都做爲此類的實例實現。
  • 字符串是常量;它們的值在建立以後不能更改。字符串緩衝區支持可變的字符串。由於 String 對象是不可變的,因此能夠共享。
  • Java 語言提供對字符串串聯符號("+")以及將其餘對象轉換爲字符串的特殊支持。字符串串聯是經過 StringBuilder(或 StringBuffer)類及其 append 方法實現的。

2.2 一旦被建立就不能改變

  • String s = new String(「hello」)和String s = 「hello」;的區別
  • String的特色一旦被建立就不能改變【內容不能變,引用能夠變】

問答題java

A:String的特色:    一旦被建立就不能改變
B:案例演示   
     a:如何理解這句話
     String s = "hello" ;
     s =  "world" + "java"; 問s的結果是多少?

下面這條語句一共建立了多少個對象:String s = 「a」+「b」+」c」; 分別都是什麼?
答案:5個對象
分別是 "a" , "b" , "c" , "ab" , "abc"
由於字符串的特色是一旦被建立就不能被改變,全部在使用常量進行相加的時候,都是在建立新的字符串對象
最後在把字符串"abc"這個常量值賦值給引用變量s

輸出結果: 正則表達式

《Java架構築基》從Java基礎講起——常見的API方法

3. StringBuffer類與StringBuilder類

3.1 StringBuffer類概述

  • 字符串緩衝區,StringBuffer是一個容器
  • 咱們若是對字符串進行拼接操做,每次拼接,都會構建一個新的String對象,既耗時,又浪費空間。 而StringBuffer就能夠解決這個問題
  • 線程安全的可變的字符序列 , 安全對應的效率比較低

3.2 StringBuffer和String的區別

  • String是不可變的字符序列
  • StringBuffer 是能夠的字符序列

3.3 StringBuffer和String的相互轉換

A:String -- StringBuffer數組

  • a:經過構造方法
  • b:經過append()方法

B:StringBuffer -- String安全

  • a: 使用substring方法
  • b:經過構造方法
  • c:經過toString()方法

3.4 StringBuilder類

  • StringBuilder是線程不安全的,其餘跟StringBuffer同樣;StringBuffer和StringBuilder底層是 char[]數組實現的

4. 數組

4.1 數組高級冒泡排序原理圖解

《Java架構築基》從Java基礎講起——常見的API方法

冒泡排序原理架構

  • 相鄰元素兩兩比較,大的日後放,第一次完畢,最大值出如今了最大索引處
  • 冒泡排序代碼
/**
* 冒泡排序
* @param arr
*/
private static void bubbleSort(int[] arr) {
    for(int y = 0 ; y < arr.length - 1; y++) {
        for(int x = 0 ; x < arr.length - 1 - y ; x++ ) {
            if(arr[x] > arr[x+1]) {
                int temp = arr[x] ;
                arr[x] = arr[x+1] ;
                arr[x+1] = temp ;
            }
        }
    }
}

4.2 數組高級選擇排序原理圖解 image

《Java架構築基》從Java基礎講起——常見的API方法

選擇排序原理app

  • 從0索引開始,依次和後面元素比較,小的往前放,第一次完畢,最小值出如今了最小索引處

數組高級選擇排序代碼實現dom

private static void selectSort(int[] arr) {
    for(int index = 0 ; index < arr.length - 1 ; index++) {
        for(int x = index + 1 ; x < arr.length ; x++) {
            if(arr[index] > arr[x]) {
                int temp = arr[index] ;
                arr[index] = arr[x] ;
                arr[x] = temp ;
            }
        }
    }
}

4.3 數組高級二分查找原理圖解 image

數組高級二分查找思想ide

  • 每一次都查中間的那個元素,比較大或者小就能減小一半的元素

數組高級二分查找代碼函數

/**
 * 二分查找
 * @param arr
 * @return
 */
private static int binarySearch2(int[] arr , int value) {
    // 定義三個變量
    int minIndex = 0 ;
    int maxIndex = arr.length - 1 ;
    while(minIndex <= maxIndex) {
        int midIndex = (minIndex + maxIndex) >>> 1 ;
        // 比較
        if(arr[midIndex] == value) {
            return midIndex ;
        }else if(arr[midIndex] > value) {
            maxIndex = midIndex - 1 ;
        }else if(arr[midIndex] < value) {
            minIndex = midIndex + 1 ;
        }
    }
    // 返回
    return -1;
}

5. 基本類型包裝類

5.1 爲何會有基本類型包裝類

爲了對基本數據類型進行更多的操做,更方便的操做,java就針對每一種基本數據類型提供了對應的類類型.測試

經常使用的操做之一:用於基本數據類型與字符串之間的轉換

5.2 基本類型和包裝類的對應

byte           Byte
short          Short
int            Integer
long           Long
float          Float
double         Double
char           Character
boolean        Boolean

6. 正則表達式

正則表達式,不須要記憶,用的時候去查就能夠呢

  • 是指一個用來描述或者匹配一系列符合某個句法規則的字符串的單個字符串。其實就是一種規則。有本身特殊的應用。
  • 具體使用直接上網搜索
    • 例如,匹配手機號,郵箱,身份證號等等

7. Pattern和Matcher類

* 正則的獲取功能須要使用的類

8. Math類

* Math 類包含用於執行基本數學運算的方法,如初等指數、對數、平方根和三角函數。
* 成員變量
public static final double E :         天然底數
public static final double PI:        圓周率
    * 成員方法

public static int abs(int a)               取絕對值
public static double ceil(double a)        向上取整
public static double floor(double a)       向下取整
public static int max(int a,int b)         獲取最大值
public static int min(int a, int b)        獲取最小值
public static double pow(double a,double b)獲取a的b次冪
public static double random()              獲取隨機數  返回帶正號的 double 值,該值大於等於 0.0 且小於 1.0。
public static int round(float a)           四捨五入
public static double sqrt(double a)        獲取正平方根

9. Random類

隨機類

  • 此類用於產生隨機數若是用相同的種子建立兩個 Random 實例,則對每一個實例進行相同的方法調用序列,它們將生成並返回相同的數字序列
  • 構造方法
public Random()             沒有給定種子,使用的是默認的(當前系統的毫秒值)
public Random(long seed) 給定一個long類型的種子,給定之後每一次生成的隨機數是相同的
public int nextInt()
public int nextInt(int n)

10. System類

系統級類

  • System 類包含一些有用的類字段和方法。它不能被實例化。
  • 系統級操做
相關文章
相關標籤/搜索