一、Object類和常用API
一、Object類等
1.1 Object類
java.lang.Object
Object類是類層次結構的根(最頂層)類。每個類都使用Object作為超(父)類。
toString()方法
重寫前:包名+地址值
重寫後:物件的屬性值
看一個類是否重寫了toString()方法,直接列印這個類對應物件的名字即可
如果沒有重寫toString()方法,預設列印地址值
equels()方法
重寫前:
比較兩個物件的地址值
重寫後:
比較兩個物件中的屬性值
1.2 Objects類
equals()方法
public static boolean equals(Object a, Object b) { return (a == b) || (a != null && a.equals(b)); }
比較兩個物件是否相同,加了一些健壯性判斷(當物件為null時,防止報空指標異常)
二、時間日期類
2.1 Date類
java.util.Date:表示日期和時間的類
類 Date 表示特定的時間,精確到毫秒
構造方法
Date()方法
Date()獲取當前系統的日期和時間
Date(long date)方法
傳遞毫秒值,把毫秒轉換為Date日期
成員方法
getTime()方法
把日期轉換為毫秒值
類似:System.currentTimeMillis()
2.2 DateFormat類&SimpleDateFormat類
日期格式化
java.text.DateFormat
構造方法
SimpleDateFormat(String pattern)
格式化(日期-->文字)、解析(文字-->日期)
成員方法
String format(Date date)
把Date日期格式化為字串
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(new Date()));
Date parse(String source)
把符合模式的字串,解析為Date日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date parse = sdf.parse("2021-08-27 09:01:22"); System.out.println(parse);
2.3 Canlendar日曆類
java.util.Calendar :日曆類
Calendar類是一個抽象類,裡面提供了很多操作日曆欄位的方法
Calendar無法直接建立物件使用,裡面有一個靜態方法,返回Calendar子類
建立物件方式
Calendar instance = Calendar.getInstance();//子類被賦予父類 多型
成員方法
public int get(int field):
返回給定日曆欄位的值
引數:指定的日曆欄位
返回值:日曆欄位代表的值
Calendar instance = Calendar.getInstance();//子類被賦予父類 多型
int year = instance.get(Calendar.YEAR);
System.out.println(year);
public void set(int field,int value)
將指定日曆欄位,設定為指定值
Calendar instance = Calendar.getInstance();//子類被賦予父類 多型
instance.set(Calendar.YEAR,2022);
int yearNow = instance.get(Calendar.YEAR);
System.out.println(yearNow);
public abstart void add(int field ,int amount)
根據日曆的規則,為給定的日曆欄位新增或減去給定的時間量
Calendar instance = Calendar.getInstance();//子類被賦予父類 多型
instance.add(Calendar.YEAR,2);
int yearAdd = instance.get(Calendar.YEAR);
System.out.println(yearAdd);
public Date getTime()
日曆類與Date的互換
Calendar instance = Calendar.getInstance();//子類被賦予父類 多型
Date time = instance.getTime();
System.out.println(time);
三、System類
3.1 System類
java.lang.System
currentTimeMillis() 方法
返回當前時間(以毫秒為單位),通常為了測試程式的效率
long l = System.currentTimeMillis();
for (int i = 0; i < 9999; i++) {
System.out.println(i);
}
long l1 = System.currentTimeMillis();
System.out.println("耗時:"+(l1-l));
arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
將指定源陣列中的陣列從指定位置複製到目標陣列的指定位置。
引數
src - 源陣列。
srcPos - 源陣列中的起始位置。
dest - 目標陣列。
destPos - 目的地資料中的起始位置。
length - 要複製的陣列元素的數量。
int[] src={1,2,3,4,5};
int[] dest={6,7,8,9,10};
System.arraycopy(src,0,dest,0,3);
System.out.println(Arrays.toString(src));
System.out.println(Arrays.toString(dest));
四、String類
java.lang.String
字串是常量,它們的值建立後不能改變
字串底層是被final修飾的陣列,不能改變,是一個常量
字串的相加,記憶體中會有很多字串,佔用空間多,效率低下
String s ="a"+"b"+"c"="abc"; 3個字串
"a"+"b" "ab" 一個字串
"ab"+"c" "abc" 一個字串
五、StringBuilder類
java.lang.StringBuilder
字串緩衝區,可以提高字串操作的效率
底層也是一個數組,但沒有被final修飾,可以改變長度
StringBuilder在記憶體中始終是一個數組
如果超出它的容量,會自動擴容
5.1 StringBuilder類
構造方法
StringBuilder()
構造一個沒有字元的字串構建器,初始容量為16個字元。
StringBuilder(String str)
構造一個初始化為指定字串內容的字串構建器。
成員方法
append()
使用append方法,無需接收引數
返回的就是本身this
StringBuilder sb = new StringBuilder();
sb.append("abcd");
sb.append(1);
System.out.println(sb);
toString()
把StringBuilder變成字串
//string變成stringBuilder
String str="hello";
StringBuilder sb = new StringBuilder(str);
//stringbuilder裡新增
sb.append("world");
//stringbuilder轉換為string
String s = sb.toString();
六、包裝類
java.lang
基本資料型別的資料,使用起來非常方便,但是沒有對應的方法來操作這些資料
所以我們可以使用一個類,把基本型別的資料包裝起來,這個類叫包裝類。
在包裝類中可以定義一些方法,用來操作基本資料型別的資料
6.1 裝箱
把基本型別的資料,包裝到包裝類中。
構造方法
Integer(int value)
Integer(String s)
靜態方法
static Integer valueOf(int i)
返回一個 Integer指定的 int值的 Integer例項。
static Integer valueOf(String s)
返回一個 Integer物件,儲存指定的值為 String 。
6.2 拆箱
在包裝類中取出基本資料型別的資料
成員方法
int intvalue()
//裝箱
Integer integer = new Integer(1);
System.out.println(integer);
Integer integer1 = new Integer("1");
System.out.println(integer1);
Integer integer2 = Integer.valueOf(2);
System.out.println(integer2);
Integer integer3 = Integer.valueOf("2");
System.out.println(integer3);
//拆箱
int i = integer3.intValue();
System.out.println(i);
6.3 自動裝箱與拆箱
基本型別的資料和包裝類之間可以自動的相互轉換
JDK1.5+
/**
* 自動裝箱
* 將int型別整數賦值給包裝類
*/
Integer in =1;
/**
* 自動拆箱
* in是包裝類,可以自動轉換為基本型別的資料,再參與計算
* in+2相當於 in.intValue()+2
* in = in +2 in=new Integer(3)
*/
in = in + 2;
6.4 基本資料型別與字串之間的轉換
基本型別-->字串
- 基本型別+" "
- 包裝類中的靜態方法 static String toString(int i)
- 使用String裡的靜態方法static String valueOf(int i)
字串-->基本型別
- 使用包裝類的靜態方法parseXX("字串") Integer: static int parseInt(String s);
//基本型別-->字串
String s1=100+ "";
String s2=Integer.toString(100);
String s3=String.valueOf(100);
//字串-->基本型別
int i = Integer.parseInt(s1);