zzh

zzh

Java相等

我們這裡主要介紹 java8 版本前的 String.equals 函數
源碼如下所示:
image
非常簡單,首先判斷兩個字串物件的地址是否相同,相同就返回 true;其次,由於 java 8 中使用 char [] 陣列存儲串值,因此會依次取出對應的 char 值並判斷是否相同。

注意

在 Java 8 及之前的版本中,字符串內部使用 char 陣列來存儲字符數據,並使用額外的 int 型字段記錄字符串的偏移量和長度。這種表示方式在包含大量 ASCII 字符的字符串中會造成空間浪費,因為每個字符仍然佔用 2 個字節的存儲空間。
Java 9 引入了 Compact Strings 的概念,對於僅包含 Latin-1 字符集(即 Unicode 編碼範圍在 U+0000 至 U+00FF 之間)的字符串,使用字節陣列存儲數據,每個字符只佔用 1 個字節。這樣可以大大減少這類字符串的內存佔用。對於包含非 Latin-1 字符的字符串,仍然使用 char 陣列存儲數據,每個字符佔用 2 個字節。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。