日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java 判断精度_随笔⑦ Java中的比较 ==,equals以及精度对比较的影响

發(fā)布時(shí)間:2024/9/3 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 判断精度_随笔⑦ Java中的比较 ==,equals以及精度对比较的影响 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Java中的比較 ==,equals

① 對于==,如果是作用于基本數(shù)據(jù)類型的變量,則直接比較其存儲(chǔ)的"值"是否相等;如果是作用于引用類型的變量,則比較的是所指向的對象的地址。

② 對于equals方法,注意:equals方法不能作用于基本數(shù)據(jù)類型的變量;

如果沒有對equals方法進(jìn)行重寫,則比較的是引用類型變量所指向的對象的地址;諸如String,Date等類對equals方法進(jìn)行了重寫的話,比較的是所指向的對象的內(nèi)容。

③ Float類型值的比較:

一般情況下,浮點(diǎn)數(shù)是不直接進(jìn)行判等比較的,因?yàn)楦↑c(diǎn)數(shù)存在精度問題。要比較兩個(gè)浮點(diǎn)數(shù),一般的比較方法是設(shè)定一個(gè)精度,當(dāng)二者的差小于某個(gè)精度時(shí),認(rèn)為二者相等。例如:s,t為float類型。

1 if (Math.abs(s - t) < 0.001) {2 System.out.println("equal");3 }else{4 System.out.println("not equal");5 }

④ Float類和Double類都重寫了對應(yīng)的equals方法,在比較之前都會(huì)判斷是否同屬于Float對象或Double對象,如果不是直接返回false,如果是再繼續(xù)比較對應(yīng)的數(shù)值大小。

JDK1.8的源碼如下:

1.Float類重寫了equals方法:

1 public booleanequals(Object obj) {2 return (obj instanceof Float)&& (floatToIntBits(((Float)obj).value) ==floatToIntBits(value));3 }

2.Double類重寫了equals方法:

1 public booleanequals(Object obj) {2 return (obj instanceof Double)&& (doubleToLongBits(((Double)obj).value) ==doubleToLongBits(value));3 }

--------------------------------------------------------------------------------------------------------使用實(shí)例------------------------------------------------------------------------------------------------------------------------

1 public classTest{2 public String name="abc";3 public static voidmain(String[] args){4 Test test=newTest();5 Test testB=newTest();6 System.out.println(test.equals(testB)+","+test.name.equals(testB.name)); //注意test.equals(testB)是兩個(gè)對象之間的比較;test.name.equals(testB.name)是String類型的比較

7 }8 }

【解析】對于對象的比較,使用Object類的比較器如下所示:

1 public booleanequals(Object obj) {2 return (this ==obj);3 }

沒有重寫equals時(shí),是直接用==判斷的。而String中重寫了equals方法。

總結(jié)

以上是生活随笔為你收集整理的java 判断精度_随笔⑦ Java中的比较 ==,equals以及精度对比较的影响的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。