==和equals方法的區別
面試題:==和equals方法的區別
==既可以比較基本資料型別資料,也可以比較引用型別資料,比較基本資料型別資料比較的是值是否相等,比較引用資料型別資料
比較的是地址值是否相等
equals是一個方法,它只能比較引用型別資料,不能比較基本型別資料,比較引用型別資料有可能比較的是地址值,也有可能比較的是內容
到底比較的是地址值還是內容,就看equals方法是否重寫過,如果沒有重寫則使用的是Object類繼承下來的equals方法,比較的是地址值
Object
是所有類的直接或者間接父類(基類、超類),所有的類都能繼承Object類中的方法。
常用方法
public boolean equals(Object obj):比較兩個物件是否相等
如果使用的是Object類中繼承下來的equals()方法,這時比較的是地址值
原始碼:
public boolean equals(Object obj) {
return (this == obj);
}
但是一般比較地址值沒有必要去使用equals,我可以直接使用==進行比較,所以一般會對equals方法進行重寫,重寫之後的比較
的是物件中的內容(成員變數),JDK提供的類90%以上都重寫過這個方法了,比如:String類等
如何重寫?
快捷鍵生成,alt+insert 選擇hashCode&equals
如果重寫過equals方法則比較的是內容,比如:String類
public String toString():將物件轉為字串返回值
原始碼:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
com.itcast.day03.test.Dog@1f8e15
Object類中的toString方法返回的字串格式,一般意義不大,所以一般也會重寫該方法,JDK提供的類90%以上都重寫過這個方法了。
重寫的原則是:返回值的是物件中的內容。
如何重寫?
快捷鍵生成,alt+insert,選擇toString
日期相關類
Date類將功能一拆為三,一般分保留在Date類中,另外一部分功能放到了SimpleDateFormat類中,還有一部分功能放到了Calendar類中。
Date類中原來其實包含了SimpleDateFormat和Calendar類的功能,這些功能拆分完之後都在Date類中都過時了。
Date
表示任意時間,可以過去,現在和將來,到底是表示哪個時間,就看你傳遞的引數了。
構造方法
Date()
Date(long mills)
成員方法
setTime(long mills)
getTime()
擴充套件
boolean after(Date when)
測試此日期是否在指定日期之後。
boolean before(Date when)
測試此日期是否在指定日期之前。
SimpleDateFormat
日期格式化和解析類
構造方法
SimpleDateFormat(String pattern);
常用方法
格式化:將日期物件轉為指定格式的字串 Date -> String
String format(Date d)
解析:將日期字串轉為日期物件 String -> Date
Date parse(String s)
注意:
傳遞的字串一定要是一個日期字串,比如:"hello"這樣的不行,"2020-10-20"類似這樣的可以
傳遞的日期字串必須符合模式的要求,否則也會報錯
Calendar
日曆類,是一個抽象類
作用是將日期轉為單獨的年、月、日、時、分、秒進行操作
獲取物件
Calendar c = Calendar.getInstance();// 多型,獲取的其實是Calendar的子類物件
操作
獲取
public int get(int field):field就是標記
修改
void set(int field, int value) :一次改一個欄位的值
將給定的日曆欄位設定為給定值。
void set(int year, int month, int date) :一次性改年、月、日
設定日曆欄位 YEAR、MONTH 和 DAY_OF_MONTH 的值。
void set(int year, int month, int date, int hourOfDay, int minute)
設定日曆欄位 YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY 和 MINUTE 的值。
void set(int year, int month, int date, int hourOfDay, int minute, int second)
設定欄位 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。
增減
void add(int field, int amount)
擴充套件
轉換
void setTime(Date date) :將Calendar所表示的時間設定為Date的時間 Date -> Calendar
Date getTime() :將Calendar所表示的時間獲取出來設定到Date中 Calendar -> Date
Math
數學相關的類,該類是工具類,所有的方法通過類名.呼叫。
工具類的特點:
1、構造方法私有化
2、其中的方法都是靜態方法
static double abs(double a):取絕對值
static double ceil(double a):向上取整
static double floor(double a):向下取整
static double max(double a, double b):兩數較大值
static double min(double a, double b):兩數較小值
static double pow(double a, double b):a的b次方
static long round(double a) :四捨五入
System
static void exit(int status):退出JVM,傳遞0代表正常退出,非0異常退出
static long currentTimeMillis():返回當前系統時間毫秒值
static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) :
相關文章
- Java中 equals() 方法和 == 的區別Java
- 【Java】equals 和 == 的區別Java
- java 中equals和==的區別Java
- 【ASP.net】Equals 和 == 的區別ASP.NET
- hashCode()和equals()的區別?(skycto JEEditor)
- 深入理解equals和==的區別
- Java基礎- ==和equals和hashCode的區別Java
- Java基礎-- ==號與equals()方法的區別Java
- 你真的知道 == 和 equals 的區別嗎?
- 你真的懂 == 和 equals 的區別嗎?
- Java技術分享:”==“和 equals 方法究竟有什麼區別?Java
- Java培訓教程:”==“和 equals 方法究竟有什麼區別?Java
- 第四章 ==和equals()的區別
- java基本型別和包裝型別的“==”和equals()方法Java型別
- javaSE中的==和equals的聯絡與區別Java
- JAVA中字串比較equals()和equalsIgnoreCase()的區別Java字串
- Java經典面試題: == 和 equals( )的區別Java面試題
- Java中(==)與equals的區別Java
- equals與==的區別(詳解)
- 深入探究Java中equals()和==的區別是什麼Java
- String的equals和hashCode方法
- ==和equals方法的比較
- Java常見知識點彙總(⑫)——==和equals的區別Java
- Java之String的equals與contentEquals區別Java
- Java面試題 equals()與"=="的區別?Java面試題
- BigDecimal的equals() 和 compareTo() 方法比較Decimal
- 搞懂 Java equals 和 hashCode 方法Java
- sendRedirect()和forward()方法的區別Forward
- ## 運算子和方法的區別
- 自動生成hashcode和equals方法
- Java基礎系列-equals方法和hashCode方法Java
- Equals方法
- laravel中delete()方法和destroy()方法的區別Laraveldelete
- 方法重置和重寫的區別
- 還傻傻分不清楚equals和==的區別嗎?看完就明白了
- StringBuffer類的delete()方法和deleteCharAt()方法的區別delete
- Java中equals與==的本質區別是什麼?Java
- jQuery中css()和attr()方法的區別jQueryCSS