String的那點小事兒

2021-07-29 09:13:05 字數 845 閱讀 2717

1、== 比較的是什麼?

1 package

xupengwei.string;

2 /**

3 * @describe:

4 *

@author

chenmo-xpw

5 *

@version

2023年5月22日 下午1:00:42

6 */ 7 public

class

stringdemo

19 }

結果

true

false

2、其實,這些不難,只是細節問題。

對於(字串) s1、 s2,當且僅當, s1  和 s2 的內容相同,且 s1 和 s2 的位址相同時, s1 == s2。

可能,你有些疑問了,為什麼在下面的**,s1 和 s2 是同乙個物件

string s1 = "hello chenmo";

string s2 = "hello chenmo";

這涉及到 jvm 對字串的處理方式了,對於字元直接量(如上的「hello chenmo」),jvm 會使用乙個字串池來快取它們,當第一次使用該字元直接量時,

jvm會將它放入字串池。當我們再次使用該字串時,無須重新建立乙個新的字串,而是直接讓引用指向字串池中已有的字串。所以,上面的s1 、 s2

都是指向同乙個物件,既然是同乙個物件,位址就相同了。所以s1 == s2 。那 s3 != s4,這又是為什麼麼?很簡單,s3、s4 都是 通過new來建立新物件,

很自然,s3、 s4指向的物件是不同的!

HTML頭的那點小事

doctype文件型別 一句話說明,標準通用標記語言解析器 sgml 根據文件定義型別 dtd 來解析文件型別 doctype 文件型別分為一下幾種 模式介紹 標準模式 html與css定義渲染,即我們常見的 怪異模式 quicks mode 嘗試模擬更久的瀏覽器行為 部分標準模式 almost m...

C 的那點事兒

一 預處理 定義 在編譯之前所做的處理,主要包括 標頭檔案 預處理會展開 巨集定義 預處理會替換掉 條件編譯 二 標頭檔案 作用 將一些公用 如函式原型宣告,型別宣告,全域性變數宣告,巨集定義等,放到乙個檔案中,以提供跨工程 復用,減少 重複書寫。處理方式 內容展開 若標頭檔案中有遞迴包含逐級展開 ...

游標那點事兒

兩種迴圈跳出方法 1 稍顯複雜點 create procedure dbo.usp cralltables client id varchar 256 asdeclare table name varchar 50 set nocount on declare t name cur cursor l...