Coins Java - Utf8Const

[Coins Java - データ構造]

UTF-8定数

構造

以下のような構造を持つ

内容を簡単に紹介する

メンバ名 型/サイズ 備考
hash 16bit この文字列のハッシュ値
length 16bit この文字列のバイト数
data 8bit * (length + 1) 終端にNULLを持つUTF-8形式の文字列

ハッシュ値の計算

UTF-8形式のをUnicode形式にデコードしたデータの列を chars で表し、chars の長さを clength とすると、この文字列のハッシュ値は

Sum(chars[i] * 31**(clength - i - 1))

となる。

コンスタントプール

この構造を持つデータをコンスタントプールに登録すると、初期化の際にクラスローダがintern済みのjava.lang.Stringインスタンスに変換してくれる。コンスタントプールはGCの対象にもなるので、無駄なメモリを消費することも、生成のコストを毎回払う必要もなくなる。

Copyright (C) 2002-2006 s.arakawa