1. 程式人生 > 其它 >一、Object類和常用API

一、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 基本資料型別與字串之間的轉換

基本型別-->字串

  1. 基本型別+" "
  2. 包裝類中的靜態方法 static String toString(int i)
  3. 使用String裡的靜態方法static String valueOf(int i)

字串-->基本型別

  1. 使用包裝類的靜態方法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);