1. 程式人生 > >Java學習筆記--常用類及其常用方法介紹

Java學習筆記--常用類及其常用方法介紹

object類

  • 直接輸出一個物件的名稱,其實就是呼叫了該物件的toString()方法。
  • 一般會重寫toString()方法,輸出成員變數的值。
  • 物件名.getClass().getname()會得到類名。
  • equals()方法預設是比較兩個物件的地址是否相等,但一般都會重寫該方法,比較兩個物件的成員變數是否相等。
  • clone()方法重建並返回一個此物件的副本。使用該方法時需要該類重寫該方法,因為有許可權修飾符protected,且需要該類實現Cloneable介面(標記介面,沒有任何方法)。

String類

  • 字串常量存在常量池當中。
  • 不同變數如果字串內容相同,那麼所指字串常量是同一個。
public class StringDemo4 {
	public static void main(String[] args) {
		String s1 = "hello";
		String s2 = "world";
		String s3 = "helloworld";
		System.out.println(s3 == s1 + s2);// false,變數相加會在堆記憶體new一個string物件來儲存放在常量區的字串
		System.out.println(s3.equals((s1 + s2)));// true
		System.out.println(s3 == "hello"
+ "world");// true System.out.println(s3.equals("hello" + "world"));// true } }
  • String類中比較常用的方法:
public static String valueOf(int i)//將整形轉為字串
public char[] toCharArray()//將字串轉為字元陣列
public char charAt(int index)//返回指定位置的字元

其他類常用方法

  • Arrays類中的public static String toString(int[] a)方法將陣列以字串輸出。
  • Integer類中的public static String toString(int i)
    方法將整形轉化為字串。
  • Integer類中的public static int parseInt(String s)方法能將字串轉為整數。

StringBuffer類

  • 相比於String類,StringBuffer類是一個執行緒安全的可變字元序列,字串拼接操作直接在原字串的基礎上進行的,佔用的額外空間更少。
  • StringBuffer物件和String物件之間的相互轉換可以通過建構函式。也可以通過StringBuffer類的toString()方法將StringBuffer物件轉為String物件。

JDK5新特性

  • 自動裝箱:把基本型別轉換為包裝類型別
  • 自動拆箱:把包裝類型別轉換為基本型別
public class IntegerDemo {
	public static void main(String[] args) {
		// 定義了一個int型別的包裝類型別變數
		// Integer i = new Integer(100);//通過建構函式
		Integer ii = 100;
		ii += 200;
		System.out.println("ii:" + ii);

		// 通過反編譯後的程式碼
		// Integer ii = Integer.valueOf(100); //自動裝箱
		// ii = Integer.valueOf(ii.intValue() + 200); //自動拆箱,再自動裝箱
		// System.out.println((new StringBuilder("ii:")).append(ii).toString());
	}
}
  • Integer直接賦值的面試題
public class TestDemo {
    public static void main(String[] args){
        Integer i1 = new Integer(127);
        Integer i2 = new Integer(127);
        System.out.println(i1 == i2);//false

        Integer i3 = new Integer(128);
        Integer i4 = new Integer(128);
        System.out.println(i3 == i4);//false

        Integer i5 = 128;
        Integer i6 = 128;
        System.out.println(i5 == i6);//false

        Integer i7 = 127;
        Integer i8 = 127;
        System.out.println(i7 == i8);//true

        // 針對-128到127之間的資料,做了一個數據緩衝池,如果資料是該範圍內的,每次並不建立新的空間
        // Integer ii = Integer.valueOf(127);
    }
}

正則表示式

  • 正則表示式是指一個用來描述或者匹配一系列符合某個句法規則的字串的單個字串。
  • 正則表示式判斷功能:String類的public boolean matches(String regex)方法
  • 拆分功能:String類public String[] split(String regex)方法根據給定正則表示式的匹配拆分此字串。
  • 替換功能:public String replaceAll(String regex, String replacement)使用給定的 replacement 替換此字串所有匹配給定的正則表示式的子字串。
  • 正則表示式獲取功能:
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class TestDemo {
    public static void main(String[] args){
        String s = "da jia ting wo shuo,jin tian yao xia yu,bu shang wan zi xi,gao xing bu?";
        String regex = "\\b\\w{3}\\b";
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(s);
        while (m.find()) {
            System.out.println(m.group());
        }
    }
}

Random類

  • 構造方法:
public Random()//預設種子,每次產生不同的隨機數
public Random(long seed)//指定種子,每次種子相同,隨機數就相同
  • 成員方法:
public int nextInt()//返回int範圍內的隨機數
public int nextInt(int n)//返回[0,n)之間的隨機數

其他類常用方法

  • 生成start到end之間的隨機數:int number = (int)(Math.random()*(end-start+1))+start;
  • 字串型別轉Data型別用DataFormat類的public Date parse(String source) throws ParseException方法(其實是通過子類SimpleDateFormat的物件呼叫)。
  • Data型別轉為字串型別用DataFormat類的public final String format(Date date)方法(其實是通過子類SimpleDateFormat的物件呼叫)。

Calendar類

  • 常用的幾個方法:
public static Calendar getInstance()//獲取一個Calendar類的物件
public int get(int field)//返回給定日曆欄位的值
public abstract void add(int field, int amount)//根據日曆的規則,為給定的日曆欄位新增或減去指定的時間量
public final void set(int year, int month, int date)//設定日曆欄位 YEAR、MONTH 和 DAY_OF_MONTH 的值