Software Development

Java Unsigned Type

What is unsigned type unsigned type 是說,假設 int 能夠放 100 ~ -100,給了 int unsigend 就能夠處理 0~ 200 的數值,不需透過更大的資料型別例如 Long 來解決。 像 C 語言是有支援 unsigned type , 沒有 unsigned type 的缺點是必須要花兩倍的 memory 來處理一個相似的問題, 另外一個是可讀性的問題,當看到一個變數是 unsigend,就能清楚的知道,肯定不會有負數出現。 Why Java didn’t support unsigned type 至於為什麼 Java 不支援,可能 有幾個原因: 我認為比較有可能的理由,是單純化這種原始型別,不常用的情境,就不要過度設計了。

String and String Pool

Java 中 String 是常常在操作的類別,字串在記憶體的管理上有一點點的特殊, 當透過 String name = “Balicanta”; 來宣告一個字串的時候,其實會到 String Pool 裡面找是否有一樣的字串,如果有那就不會去建立一個新的字串,而會讓兩個 reference 指到同一個位置,以確保 memory 使用的效率。 String Immutable Java 中的字串一旦宣告,他就不會再被變動了,這樣設計主要有三個理由: System.identityHashCode 作用 這個方法的作用是,找到一個 Object 的 HashCode。意思是說常常會複寫掉 Object 提供的 hashcode,讓我們看不出 Object 的 hashCode 是什麼,identityHashCode 可以直接印出 Object 的 HashCode,所以可以透過 identityHashCode 來驗證是否真的有 String Pool 的概念。 上面的例子說明幾件事: 在過去 JDK 6 String Pool 是會占用 PermGen 的空間,但從 JDK 7 開始把 String Pool …

String and String Pool Read More »

Scroll to Top