Java字符串的概述和Static關鍵字概述

字符串概述和特點

Java.lang.String類代表字符串。

API當中說:
Java程序中的所有字符串字面值(如:“abc”)都作爲此類的實例實現。
其實就是說:程序當中所有雙引號字符串、都是string類的對象。(就算沒有new,也照樣是)

字符串的特點:
1、 字符串的內容永不可變。
2、 正是因爲字符串不可改變,所以字符串是可以共享使用的。
3、 字符串效果上相當於是char[ ]字符數組,但是底層原理是byte[ ]字節數組。

字符串創建的3+1種方式
三種構造方法:

Public String();創建一個空白字符串,不含有任何內容。
Public String(char[ ] array);根據字符數組的內容,來創建對應的字符串。
Public String(byte[ ] array);根據字節數組的內容,來創建對應的字符串。
一種直接創建:
String str = “Hello”;//右邊直接用雙引號。
注意:直接寫上雙引號,就是字符串對象。

字符串的常量池:
程序當中直接寫上的雙引號字符串,就在字符串常量池中。
對於基本類型來說,==是進行數值的比較。
對於引用類型來說,==時進行【地址值】的比較。
在這裏插入圖片描述

字符串比較相關方法:
==是進行對象的地址值比較,如果確實需要字符串內容比較,可以使用兩個方法:
Public Boolean equals(Object obj):參數可以是任何對象,只有參數是一個字符串並且內容相同纔會給true;否則返回false。
注意事項:
1、 任何對象都能用Object進行接收。
2、 Equals方法具有對稱性,也就是a.equals(b)和b.equals(a)效果一樣。
3、 如果比較雙方一個常量一個變量,推薦把常量字符串寫在前面。
推薦:“abc”.equals(str) 不推薦:(str).equals(“abc”)
Public Boolean equalsIgnoreCase(String str);忽略大小寫,進行內容比較。

字符串的獲取相關方法:
Public int length():獲取字符串當中含有的字符個數,拿到字符串長度。
Public String concat(String str):將當前字符串和參數字符串拼接稱爲返回值的新字符串。
Public char charAt(int index):獲取指定索引位置的單個字符。(索引從0開始。)
Public int indexOf(String str):查找參數字符串在本字符串中首次出現的索引位置,如果沒有返回-1值。

字符串的截取方法:
Public String substring(int index):截取從參數位置一直到字符串末尾,返回新字符串。
Public String substring(int begin,int end):截取範圍從begin開始,一直到end結束,中間的字符串。
備註:[begin,end),包含左邊,不包含右邊。

字符串的轉換相關方法:
Public char[ ] toCharArray();將當前字符串拆分成爲字符數組作爲返回值。
Public byte[ ] getBytes():獲得當前字符串底層的字節數組。
Public Stringreplace(CharSequence oldString,CharSequence newString); 將所有出現的老字符串替換成爲新的字符串,返回替換之後的結果新字符串。

字符串的分割方法:
Public String[ ] split(String regex);按照參數的規則,將字符串切分成爲若干部分。
注意事項:
Split方法的參數其實是一個“正則表達式”,今後學習。
如果按照英文句點“.”進行切分,必須寫\\.(兩個反斜槓)

靜態static關鍵字概述:

如果一個成員變量使用了static關鍵字,那麼這個變量不再屬於對象自己,而是屬於所在的類。多個對象共享同一份數據。

Static關鍵字修飾成員方法:
一旦用static修飾成員方法,那麼就成爲了靜態方法。靜態方法不屬於對象,而是屬於類的。
如果沒有static關鍵字,那麼必須首先創建對象,然後通過對象才能使用它。
如果有了static關鍵字,那麼不需要創建對象,直接就能通過類名稱來使用它。
無論是成員變量,還是成員方法。如果有static,都推薦使用類名稱進行調用。
靜態變量:類名稱.靜態變量;
靜態方法:類名稱.靜態方法();

注意事項:
1、 靜態只能直接訪問靜態,不能直接訪問非靜態。
原因:因爲在內存當中是先有的靜態內容,後有的非靜態內容。
2、 靜態方法中不能用this.
原因:this代表當前對象,通過誰調用的方法,誰就是當前對象。

靜態static的內存圖:
在這裏插入圖片描述

靜態代碼塊:
格式:
Public class 類名稱{
Static{
//靜態代碼塊內容
}
}
特點:
當第一次使用到本類時,靜態代碼塊執行唯一的一次。
靜態內容總是優先於非靜態,所以靜態代碼塊比構造方法先執行。
靜態代碼塊典型用途:
用來一次性地對靜態成員變量進行賦值。

數組工具類Arrays:
Arrays是一個與數組相關的工具類,裏面提供了大量地靜態方法,用來實現數組常見的操作。
Public static String tostring(數組);將參數數組變成字符串(按照默認格式:[元素1,元素2,元素3…])
Public static void sort(數組):按照默認升序對數組元素進行排序。
備註:
1、如果是數值,sort默認按照升序從小到大
2、如果是字符串,sort默認按照字母升序
3、如果是自定義的類型,那麼這個自定義的類需要Comparable或者Comparator接口的支持。

數學工具類Math
Math類是數學相關的工具類,裏面提供了大量的靜態方法,完成與數學運算相關的操作。
Public static double abs(double num):獲取絕對值。
Public static double ceil(double num):向上取整。
Public static double floor(double num):向下取整。
Public static long round(double num):四捨五入。
Math.PI代表近似的圓周率常量(double)

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