Object類
1.toString方法
在我們直接使用輸出語句輸出對象的時候,其實通過該對象調用了其toString()方法。
2.equals方法
方法摘要:
類默認繼承了Object類,所以可以使用Object類的equals方法
boolean equals(Object obj)指示其他某個對象是否與此對象“相等”。
equalse方法源碼: public boolean equals(Object obj){ return (this == obj); }
參數:
- Object obj:可以傳遞任意的對象
- == 比較運算符,返回的是一個布爾值 true false
- 基本數據類型:比較的是值
- 引用數據類型:計較的是兩個對象的地址值
Data類
JAVA.util.Date:表示日期和時間的類
類Date 表示特定的瞬間,精確到毫秒。
毫秒:千分之一秒 1000毫秒=1秒
把日期轉換成毫秒:
- 當前的日期:2019-07-18
- 時間原點(0毫秒):1970-01-01 00:00:00(英國格林威治)
- 就是計算當前日期到時間原點之間一共經歷了多少毫秒
注意:
中國屬于東八區,會把時間增加8個小時
- 1970-01-01 08:00:00
把毫秒轉換為日期:
- 1天 = 24*60*60 = 86400秒 = 86400*1000=86400000毫秒
使用:
Date類的帶參數構造方法 Date date = new Date(); Date();//獲取當前系統的時間和日期 --------- Date date = new Date(0L); Date(long date);//傳遞毫秒值,把毫秒值轉化成Date日期 ----------- Date date = new Date(); long time = date.getTime(); long getTime() 把日期轉換成毫秒(相當于System.currentTimeMillis()方法) 返回自1970年1月1日 00-00-00GMT 以來此Date 對象表示的毫秒數。
DateFormat類
java.text.DateFormat:是日期/時間格式化子類的抽象類
作用:
- 格式化(也就是日期 -> 文本),解析(文本->日期)
成員方法:
- String format(Date date) 按照指定的模式,把Date日期,格式化為符合模式的字符串
- Date parse(String source) 把符合模式的字符串,解析為Date日期
- DateFormat類是一個抽象類,無法直接創建對象使用,可以使用DateFormat類的子類
java.text.SimpleDateFormat extends DateFormat
使用DateFormat類中的方法format,把日期格式化為文本
使用步驟:
- 創建simpleDateFormat對象,構造方法中傳遞指定的模式
- 調用SimpleDateFormat對象中的方法format,按照構造方法指定的模式,把Date日期格式化為符合模式的字符串(文本)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒"); Date date = new Date(); String d = sdf.format(date);
Calendar類
介紹:
java.util.Calendar類;日歷類
- Calendar類是一個抽象類,里邊提供了很多操作日歷字段的方法(YEAR、MONTH、DAY_OF_MONTH、HOUR)
- Calendar類無法直接創建對象使用,里邊有一個靜態方法叫getInstance(),該方法返回了Calendar類的子類對象
- static Calendar getInstance() 使用默認時區和語言環境獲得一個日歷。
Calendar c = Calendar.getInstance();//多態
Calendar類的常用成員方法:
- public int get(int field);返回給定日歷字段的值。
- public void set(int field,int value);將給定的日歷字段設置為給定值
- public abstract void add(int field, int amount);根據日歷的規則,為給定的日歷字段添加或減去指定的時間量。
- public Data getTime();返回一個表示次Calendar時間值(從歷元到現在的毫秒偏移量)的Date對象。
//public int get(int field);返回給定日歷字段的值。 Calendar c = Calendar.getInstance(); int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MONTH); ///public void set(int field,int value);將給定的日歷字段設置為給定值 //設置年為9999 //設置月為9月 c.set(Calendar.YEAR,9999); c.set(Calendar.MONTH,9); //增加年 c.add(Calendar.YEAR,2); //把日歷對象,轉換為日期對象 Date date=c.getTime();
Syetem類
java.lang.System類中提供了大量的靜態方法,可以獲取與系統相關的信息或系統級操作,在System類的API文檔中,常用的方法有;
- public static long currentTimeMillis();返回以毫秒為單位的當前時間。
- public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int Length);將數組中指定的數據拷貝到另一個數組中。
參數:
- src - 源數據
- srcPos - 源數據中的起始位置(起始索引)。
- dest - 目標數組。
- destPos - 目標數據中的起始位置
- Length - 要復制的數組元素的數量。
StringBuilder類
StringBuilder類
字符串緩沖區,可以提高字符串的操作效率(看成一個長度可以變化的字符串)
底層也是一個數組,但是沒有被final修飾,可以改變長度
byte[] value = new byte[16];
StringBuilder在內存中始終是一個數組,占用空間少,效率高
如果超出了StringBuilder的容量,會自動的擴展。
比較與:String類
字符串是常量;它們的值在創建之后不能更改。
字符串的底層是一個被final修飾的數組,不能改變,是一個常量
private final byte[] value;
進行字符串的相加,內存中就會有多少個字符串,占用空間多 ,效率低下
java.lang.StringBuilder類:字符串緩沖區,可以提高字符串的效率
構造方法:
- StringBuilder()構造一個不帶任何字符的字符串生成器,其初始容量為16個字符。
- StringBuilder(String str) 構造一個字符串生成器,并初始化為指定的字符串內容。
StringBuilder的常用方法:
- public StringBuilder Append(...):添加任意類型數據的字符串形式,并返回當前對象自身。
StringBuilder和String可以相互轉換;
- String -> StringBuilder:可以使用StringBuilder的構造方法
StringBuilder(String str)
- StringBuilder-> String:可以使用StringBuilder中的toString方法
public String toString();
包裝類
包裝類:
基本數據類型,使用起來非常方便,但是沒有對應的方法來操作這些基本類型的數據
可以使用一個類,把基本類型的數據裝起來,在類中定義一些方法,這個類叫做包裝類,
我們可以使用類中的方法來操作這些基本類型的數據。
裝箱:把基本類型的數據,包裝到包裝類中(基本類型的數據->包裝類)
構造方法:
- Integer(int value)構造一個新分配的 Integer對象,它表示指定的 int值。
- Integer(String s)構造一個新分配的 Integer對象, 它表示String參數所指示的 int值。
傳遞的字符串,必須是基本類型的字符串,否則會拋出異常"100"正確 "a"拋異常
靜態方法:
- static Integer valueOf(int i)返回一個表示指定的int值的Integer實例。
- static Integer valueOf(String s)返回保存指定的String的值的Integer對象。
拆箱:在包裝類中取出基本類型的數據(包裝類->基本類型的數據)
成員方法:
- int intValue()以int 類型返回該Integer的值。
自動裝箱和自動拆箱:基本類型的數據和包裝類之間可以自動的相互轉換
JDK1.5 之后出現的新特性
自動裝箱:直接把int類型的整數賦值包裝類
- Integer in = 1; 就相當于 Integer in = new Integer(1);
自動拆箱:in是包裝類,無法直接參與運算,可以自動轉換為基本數據類型,在進行計算
- int + 2;就相當于 in.inVale() + 2=3
in = in.intVale() + 2 = 3 又是一個自動裝箱
注意:
- ArrayList集合無法直接存儲整數,可以存儲Integer包裝類
- list.add(1);-->自動裝箱 list.add(new Integer(1));
- int a = list.get(0);//-->自動拆箱 list.get(0).intValue();
基本類型與字符串類型之間的相互轉換
基本類型->字符串(String)
1.基本類型的值+"" 最簡單的方法(工作中常用)
2.包裝類的靜態方法toString(參數),是Object類的toString()重載
- static String toString(int i) :返回一個表示指定整數的String對象。
3.String類的靜態方法valueOf(參數)
- static String valueOf(int i) :返回int參數的字符串表示形式。
字符串(String)->基本類型
使用包裝類的靜態方法parseXXX("字符串");
- Integer類:static int parseInt(String s)
- Double類:static double parseDouble(String s)