1. 程式人生 > >java 中字串比較用=和equals區別

java 中字串比較用=和equals區別

=:是比較兩個字串引用的地址是否相同,即是否指向同一個物件

equals方法:則比較字串的內容是否相同。

例如String a = "abc";

    String b = "abc";

a == b返回true,a.equals(b)同樣返回true,這是為什麼呢?

    原來程式在執行時有一個字串池,建立字串時會先查詢池中是否有相應的字串,如果已經存在的話只需把引用指向它即可,如果沒有則新建一個。

    上例中建立a時,會在字串池中首先建立一個"abc",然後a指向它;建立b時,由於"abc"已經存在,b直接指向它即可。

若改為:String a = "abc";

        String b = new String("abc");

則a == b返回false,a.equals(b)返回true。因為建立b時不管"abc"是否存在都會new一個新的"abc",從而a和b指向的字元創物件是不同的,因此返回false。

相關推薦

java 字串比較=equals區別

=:是比較兩個字串引用的地址是否相同,即是否指向同一個物件 equals方法:則比較字串的內容是否相同。 例如String a = "abc";     String b = "abc"; a == b返回true,a.equals(b)同樣返回true,這是為什

Java字串比較方法equals()equalsIgnoreCase()的區別

1. equals() equals( )是比較兩個字串是否相等,它的一般表示式如下: /** * Compares this string to the specified object. The result is {@code * true} if and o

java基礎Integer值==equals判斷相等問題解析

接下來就自己動手寫測試程式驗證,程式碼如下: 1.public class Test{ 2. public static void main(String[] args) { 3. Integer a = new Integer(200); 4. Integer b = n

淺談java的"=="eqals區別

short copy 覆寫 main 否則 變量 程序 bar gif 在初學Java時,可能會經常碰到下面的代碼: 1 String str1 = new String("hello"); 2 String str2 = new String("hello");

java正確使用hashCodeequals方法

Java 中正確使用 hashCode 和 equals 方法 轉載自:[開源中國社](http://www.oschina.net/question/82993_75533) 在這篇文章中,我將告訴大家我對hashCo

Java整型數值==equals的處理

前言: equals 比較內容, == 比較地址。 PS. equals在Object類中,作用和==完全是一樣的,都是對物件地址的比較,不是比較值。 在String類中,equals被重寫成了字串的具體值的比較,而不再是地址比較。   ==: 1)基本型別之間

Jenkins高階篇之Pipeline實踐篇-2-groovy字串操作split()tokenize()區別

這篇來一個字串切割的練習,很多人知道字串切割是用split()方法,但是很少人知道在groovy中,有一個方法叫tokenize(),這兩個方法其實都可以實現字串切割,但是兩者還是有區別的,本篇就來學習和掌握兩者的共同點和區別。我也是,之前第一選擇就是使用split()函式,直到知道有token

javaBigdecimal比較大小加減乘除

BigDecimal bignum1 = new BigDecimal("10");  BigDecimal bignum2 = new BigDecimal("5");  BigDecimal bignum3 = null;    //加法  bignum3 =  bignum1.add(bignum2);

Java字串比較的一道面試題

題目: public class Test { public static void main(String[] args) { String a = "hello"; String b = "hello";

java字串、陣列集合之間的互相轉換?

import org.apache.tomcat.util.buf.StringUtils; import java.util.ArrayList;import java.util.Arrays;import java.util.Collections; import ja

jsp java字串比較equals,不能==

<%if (local.toString().equals("zh_CN")) { %> <script src="/static/jquery-validation/1.10.0/messages_bs_zh.js" type="text/javas

(轉載)Java字串常量字串變數的區別

https://blog.csdn.net/u010617952/article/details/51781319         ava中字串物件建立有兩種形式,一種為字面量形式,如String str = "droid";,另一種就是使

Java字串常量字串變數的區別

ava中字串物件建立有兩種形式,一種為字面量形式,如String str = "droid";,另一種就是使用new這種標準的構造物件的方法,如String str = new String("droid");,這兩種方式我們在程式碼編寫時都經常使用,尤其是字面量的方式。

JAVA 成員變量實例變量區別

protected ket 成員變量 訪問修飾符 lena idt variable 類型 多少 java語言支持的變量類型 類變量:獨立於方法之外的變量,用 static 修飾。 局部變量:類的方法中的變量。 實例變量(全局變量):獨立於方法之外的變量,不過沒有 sta

隨筆⑦ Java比較 ==,equals以及精度對比較的影響

情況 數值 數據 his static 作用 進行 返回 浮點數 Java中的比較 ==,equals ① 對於==,如果是作用於基本數據類型的變量,則直接比較其存儲的"值"是否相等;如果是作用於引用類型的變量,則比較的是所指向的對象的地址。 ② 對於equals方法,

Java使用new Date()System.currentTimeMillis()獲取當前時間戳的區別(轉)(Java進階-性能提升)

使用 get csdn 比較 his new mem ava 輸出 在開發過程中,通常很多人都習慣使用new Date()來獲取當前時間,使用起來也比較方便,同時還可以獲取與當前時間有關的各方面信息,例如獲取小時,分鐘等等,而且還可以格式化輸出,包含的信息是比較豐富的。但是

JavaList,SetMap詳解及其區別

內部 特殊 set contain 快速查找 簡單 rar dset 維護 Java中的集合包括三大類,它們是Set(集)、List(列表)和Map(映射),它們都處於java.util包中,Set、List和Map都是接口,它們有各自的實現類。Set的實現類主要有Hash

javaString、StringBufferStringBuilder的區別(簡單介紹)

情況 string 建議 code serializa 就是 同步 安全性 之間 簡單介紹 java中用於處理字符串常用的有三個類: 1、java.lang.String 2、java.lang.StringBuffer 3、java.lang.StrungBuilder

java類變量實例變量的實質區別

tar com 對象共享 第一章 let 空間 ref size 對象 類變量和實例變量的區別 相對於static(靜態的)或說類的, 本章開始提到的都是instance(實例的)或說對象的。 每個對象都有自己的一份兒對象域或實例域,相互之間沒關系, 不共享。 我們可以從對

Java字串直接賦值new一個物件,得到的地址值是什麼樣子的

  public class StringDemo2 { public static void main(String[] args) { String s1 = "hello"; String s2 = new String("hello"); String s3 = "hello"