程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java equals和=,==的差別具體引見

java equals和=,==的差別具體引見

編輯:關於JAVA

java equals和=,==的差別具體引見。本站提示廣大學習愛好者:(java equals和=,==的差別具體引見)文章只能為提供參考,不一定能成為您想要的結果。以下是java equals和=,==的差別具體引見正文


Java中equals和==的差別

java中的數據類型,可分為兩類:

1.根本數據類型,也稱原始數據類型。byte,short,char,int,long,float,double,boolean 

  他們之間的比擬,運用雙等號(==),比擬的是他們的值。
2.復合數據類型(類) 

  當他們用(==)停止比擬的時刻,比擬的是他們在內存中的寄存地址,所以,除非是統一個new出來的對象,他們的比擬後的成果為true,不然比擬後成果為false。 JAVA傍邊一切的類都是繼續於Object這個基類的,在Object中的基類中界說了一個equals的辦法,這個辦法的初始行動是比擬對象的內存地 址,但在一些類庫傍邊這個辦法被籠罩失落了,如String,Integer,Date在這些類傍邊equals有其本身的完成,而不再是比擬類在堆內存中的寄存地址了。

  關於復合數據類型之間停止equals比擬,在沒有覆寫equals辦法的情形下,他們之間的比擬照樣基於他們在內存中的寄存地位的地址值的,由於Object的equals辦法也是用雙等號(==)停止比擬的,所以比擬後的成果跟雙等號(==)的成果雷同。

java  equals和=,==的差別

一. ==和equals的差別

1. ==是運算符

2. equals是String對象的辦法

普通有兩品種型的比擬

1. 根本數據類型的比擬

2. 援用對象的比擬

1. 根本數據類型的比擬

==和equals都比擬的是值能否相等,相等則為true,不然為false

2. 援用對象的比擬

==和equals都是比擬是棧內存中的地址能否相等,相等則為true,不然為false

留意:

1. String是一個特別的援用數據類型,==比擬的是字符串對象的援用地址能否一樣,equals比擬的是棧中的內容能否分歧。

 String ss = new String("abc");
 String sss = new String("abc");

 if(ss == sss){
  System.out.println("ss == sss is true");  
 }
 if(ss.equals(sss)){
  System.out.println("ss equals sss is true");
 }

掌握台輸入:

ss != sss
ss equals sss

注解:ss和sss在棧中的內存地址分歧,然則在堆中的內容是雷同的。

String ss = new String("abc");

String ssss = ss;

//斷定ss和ssss在棧中的援用地址能否一樣

  if(ss == ssss){
  System.out.println("ss == ssss");
 }else{
  System.out.println("ss != ssss");
 }

//斷定ss和ssss在堆中的內容能否一樣
  if(ss.equals(ssss)){
  System.out.println("ss equals ssss");
 }else{
  System.out.println("ss not equals ssss");
 }

掌握台輸入:

ss == ssss
ss equals ssss

這注解ss和ssss是雷同的對象,而且他們在堆中的內容一樣

2. 援用對象的比擬

  TestBean obj1 = new TestBean();
  TestBean obj2 = new TestBean();
  TestBean obj3 = obj1;
  if(obj1 == obj2){
  System.out.println("obj1 == obj2");
  }else{
  System.out.println("obj1 != obj2");
  }
  
  if(obj1 == obj3){
  System.out.println("obj1 == obj3");
  }else{
  System.out.println("obj1 != obj3");
  }

掌握台輸入:

obj1!= obj2
obj1== obj3

注解obj1和obj2不是統一個對象,在棧中的援用地址分歧

obj1和obj3是雷同的對象,在棧中的援用地址雷同

二. =和equals ==的差別

=表現的是賦值,行將=左邊的值賦給右邊的變量。equals和==是表現操作

 感激浏覽,願望能贊助到年夜家,感謝年夜家對本站的支撐!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved