国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java面試題: == 和 equals() 區(qū)別,toString方法

這篇具有很好參考價(jià)值的文章主要介紹了Java面試題: == 和 equals() 區(qū)別,toString方法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、回顧 == 的使用:

== :運(yùn)算符

    1. 可以使用在基本數(shù)據(jù)類型變量和引用數(shù)據(jù)類型變量中
    1. 如果比較的是基本數(shù)據(jù)類型變量:比較兩個(gè)變量保存的數(shù)據(jù)是否相等。(不一定類型要相同)
  • 如果比較的是引用數(shù)據(jù)類型變量:比較兩個(gè)對(duì)象的地址值是否相同.即兩個(gè)引用是否指向同一個(gè)對(duì)象實(shí)體

  • 補(bǔ)充: == 符號(hào)使用時(shí),必須保證符號(hào)左右兩邊的引用數(shù)據(jù)類型變量類型一致。

二、equals()方法的使用:

    1. 是一個(gè)方法,而非運(yùn)算符
    1. 只能適用于引用數(shù)據(jù)類型
    1. Object類中equals()的定義:
  • public boolean equals(Object obj) {
    return (this == obj);
    }

    說(shuō)明:Object類中定義的equals()和==的作用是相同的:比較兩個(gè)對(duì)象的地址值是否相同.即兩個(gè)引用是否指向同一個(gè)對(duì)象實(shí)體

    1. 像String、Date、File、包裝類等都重寫了Object類中的equals()方法。重寫以后,比較的不是兩個(gè)引用的地址是否相同,而是比較兩個(gè)對(duì)象的"實(shí)體內(nèi)容"是否相同。
    1. 通常情況下,我們自定義的類如果使用equals()的話,也通常是比較兩個(gè)對(duì)象的"實(shí)體內(nèi)容"是否相同。那么,我們就需要對(duì)Object類中的equals()進(jìn)行重寫.

    重寫的原則:比較兩個(gè)對(duì)象的實(shí)體內(nèi)容是否相同.文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-475227.html

//基本數(shù)據(jù)類型
		int i = 10;
		int j = 10;
		double d = 10.0;
		System.out.println(i == j);//true  int會(huì)自動(dòng)類型提升double-->10.0
		System.out.println(i == d);//true
		
		boolean b = true;
		System.out.println(i == b); //false
		
		char c = 10;//10的ASCII碼就是10
		System.out.println(i == c);//true
		
		char c1 = 'A';
		char c2 = 65; //A的ASCII碼就是65
		System.out.println(c1 == c2);//true

	//引用類型:
		Customer cust1 = new Customer("Tom",21);
		Customer cust2 = new Customer("Tom",21);
		System.out.println(cust1 == cust2);//false
		System.out.println(cust1.equals(cust2));
//false--->true(Customer類中重寫equals方法后這里輸出true)
		
		String str1 = new String("atguigu");
		String str2 = new String("atguigu");
		System.out.println(str1 == str2);//false 因?yàn)榈刂凡煌?/span>
		System.out.println(str1.equals(str2));//true

如何重寫equals()

手動(dòng)重寫舉例:
class User{
String name;
int age;
	//重寫其equals()方法
	public boolean equals(Object obj){
		if(obj == this){
			return true;
		}
		if(obj instanceof User){
			User u = (User)obj;// 向下轉(zhuǎn)型 不轉(zhuǎn)的話User中的屬性就調(diào)用不了,將 obj 對(duì)象轉(zhuǎn)換為 User 類型的對(duì)象
			return this.age == u.age && this.name.equals(u.name);
			//判斷兩個(gè) User 對(duì)象的 age 屬性是否相等。
		}                          //name是String類型所以要用equals比較
		return false; //如果不是同一類型 直接返回false
	}
}
 ----開(kāi)發(fā)中如何實(shí)現(xiàn):idea可以手動(dòng)ait+ins生成

toString方法

toString()方法
toString()的使用:
   1. 當(dāng)我們輸出一個(gè)對(duì)象的引用時(shí),實(shí)際上就是調(diào)用當(dāng)前對(duì)象的toString()
  s1=“hello”;System.out.println(s1);  
	//相當(dāng)于	   
	System.out.println(s1.toString());

  2. Object類中toString()的定義:
    public String toString() {
  return getClass().getName() + "@" + Integer.toHexString(hashCode());
     }
 其返回值是String類型,返回類名和它的引用地址。
     
  3.String、DateFile、包裝類等都重寫了Object類中的toString()方法。
    使得在調(diào)用對(duì)象的toString()時(shí),返回"實(shí)體內(nèi)容"信息
    
  4. 自定義類也可以重寫toString()方法,當(dāng)調(diào)用此方法時(shí),返回對(duì)象的"實(shí)體內(nèi)容"
 如何重寫toString()
 5. 基本類型數(shù)據(jù)轉(zhuǎn)換為String類型時(shí),調(diào)用了對(duì)應(yīng)包裝類的toString()方法
     int a=10;
	System.out.println(“a=+a);
舉例:
//自動(dòng)實(shí)現(xiàn)
	@Override
	public String toString() {
		return "Customer [name=" + name + ", age=" + age + "]";
	}

到了這里,關(guān)于Java面試題: == 和 equals() 區(qū)別,toString方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java中怎么使用equals()方法比較

    ? ? ? ?在 Java 中, equals() 方法用于比較兩個(gè)對(duì)象是否相等。 equals() 方法是 Object 類的方法,可以被所有的類繼承和使用。 要使用 equals() 方法,需要按照以下步驟進(jìn)行操作: 1.確保你要比較的對(duì)象不為 null 。否則,如果你嘗試調(diào)用 equals() 方法,會(huì)觸發(fā)空指針異常。 2.調(diào)用要

    2024年01月19日
    瀏覽(32)
  • “==“和equals方法究竟有什么區(qū)別?

    ==操作符專門用來(lái)比較兩個(gè)變量的值是否相等,也就是用于比較變量所對(duì)應(yīng)的內(nèi)存中所存儲(chǔ)的數(shù)值是否相同,要比較兩個(gè)基本類型的數(shù)據(jù)或兩個(gè)引用變量是否相等,只能用 ==操作符。 如果一個(gè)變量指向的數(shù)據(jù)是對(duì)象類型的,那么,這時(shí)候涉及了兩塊內(nèi)存,對(duì)象本身占用一塊內(nèi)

    2023年04月17日
    瀏覽(75)
  • 【JAVA基礎(chǔ)】== 與 equals區(qū)別

    它的作用是判斷兩個(gè)對(duì)象的地址是不是相等。即,判斷兩個(gè)對(duì)象是不是同一個(gè)對(duì)象(基本數(shù)據(jù)類型 比較的是值,引用數(shù)據(jù)類型 比較的是內(nèi)存地址)。 基本數(shù)據(jù)類型 :byte,short,char,int,long,float,double,boolean。他們之間的比較,應(yīng)用雙等號(hào)(==),比較的是他們的值。 引用數(shù)據(jù)類型 :

    2024年02月11日
    瀏覽(27)
  • BigDecimal的equals方法和compareTo方法的區(qū)別

    BigDecimal的equals方法和compareTo方法的區(qū)別

    面試經(jīng)常會(huì)問(wèn)道為什么不能用BigDecimal的equals方法做等值比較? 其實(shí)BigDecimal的equals方法和compareTo并不一樣,equals方法會(huì)比較兩部分內(nèi)容,分別是值(value)和標(biāo)度(scale),而對(duì)于1.0和1這兩個(gè)數(shù)字,他們的值雖然一樣,但是精度是不一樣的,在使用equals比較的時(shí)候會(huì)返回fals

    2024年02月04日
    瀏覽(25)
  • Java 中 == 與 equals() 的區(qū)別

    2024年02月15日
    瀏覽(23)
  • JAVA中.equals()與 ==的區(qū)別

    JAVA中.equals()與 ==的區(qū)別

    ????????“==”是 運(yùn)算符 ,如果是基本數(shù)據(jù)類型,則比較 存儲(chǔ)的值 ;如果是引用數(shù)據(jù)類型,則比較 所指向?qū)ο蟮牡刂分?。 ????????equals是 Object的方法 ,比較的是 所指向的對(duì)象的地址值 ,一般情況下,重寫之后比較的是 對(duì)象的值 。 八大數(shù)據(jù)類型: 整數(shù) byte、sho

    2024年02月08日
    瀏覽(36)
  • java中的tostring方法

    1.作用:在Java中,toString() 方法是 Object 類中定義的一個(gè)方法。toString() 方法的作用是返回對(duì)象的字符串表示。在沒(méi)有重寫 toString() 方法時(shí),默認(rèn)情況下返回的字符串表示為“類名@哈希碼” (包名+類名@對(duì)象的16進(jìn)制內(nèi)存地址)的形式。 重寫 toString() 方法可以自定義返回的字符串

    2024年02月16日
    瀏覽(24)
  • c# ==操作符和equals方法的區(qū)別

    在C#中,\\\"==\\\"操作符和Equals()方法有著不同的用途和行為。 \\\"==\\\"操作符: \\\" “操作符用于比較兩個(gè)對(duì)象的值是否相等。當(dāng)使用” \\\"操作符比較兩個(gè)引用類型的對(duì)象時(shí),它會(huì)比較它們的引用是否指向相同的內(nèi)存地址。 對(duì)于值類型(如int、double等),\\\"==\\\"操作符比較它們的實(shí)際值。如

    2024年01月23日
    瀏覽(20)
  • 【Java掃盲篇】==和equals的區(qū)別

    【Java掃盲篇】==和equals的區(qū)別

    這是一道面試經(jīng)典題,面試官對(duì)你說(shuō):小伙子,請(qǐng)你說(shuō)說(shuō) == 和 equals 的區(qū)別 對(duì)于==來(lái)說(shuō) 如果比較的是基本數(shù)據(jù)類型,那么==比較的是數(shù)據(jù)的值是否相同。注意: (與數(shù)據(jù)類型無(wú)關(guān)) 如果比較的是引用數(shù)據(jù)類型,那么==比較的是兩個(gè)對(duì)象的地址是否相同,即兩個(gè)引用是否指向同

    2024年03月23日
    瀏覽(22)
  • java中容易被忽視的toString()方法

    java中容易被忽視的toString()方法

    之前一直認(rèn)為toString就是將數(shù)據(jù)轉(zhuǎn)換成字符類型,直到最近寫出了一個(gè)bug才對(duì)toString有了新的認(rèn)識(shí) 不同數(shù)據(jù)類型,toString() 有不同的操作 定義一個(gè)student類,包含姓名 String類型、性別 String類型、年齡 int 類型、分?jǐn)?shù)列表 String類型的list類型 測(cè)試toString方法 運(yùn)行結(jié)果,toString()方

    2024年02月21日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包