java type

注:JDKが1.4.2の話。

■String
□文字列格納フィールド
private char value[];
char型はプリミティブ型で常にUnicode形式。
◎文字コードを意識せんでも良い。
×文字以外の情報は扱えない。
 ∵char型のバイナリ値の格納は不可。
 →Stringのインスタンスもバイナリ値の格納不可。
□equalsメソッド
文字数の多い文字列の比較は高コスト。
∵equalsメソッドはHash系クラス等で頻繁に使われる。
 →マップに使うキー文字列は短くしてが効率UP。

■Date/Calendar
□違い
Dateのフィールドにはlong型が一つ。
○生成が低コスト。
 ※シリアライズしても容量たった4byte。
CalendarはDateの機能を網羅してる。
×Dateより重い。
 ※シリアライズすると消費する容量は1000byte以上。
□Date#getHoursがdeprecatedな訳
∵同期(synchronized)メソッドだから。
 getHours は同期メソッドではないように見えるが、
 内部的にはstaticフィールドで同期。
 →複数のスレッドからこのメソッドを同時に呼び出すと
  ロックが掛かってしまいパフォーマンスが落ちる。
 Webアプリは通常リクエスト毎にスレッドが分かれてるから
 これらのメソッドの使用は控えた方が良い。

■in/out
□出力系
OutputStream(→byte出力)

Writer(→String出力)
派生のクラスが担当。
□入力系
ラッパを忘れずに。
FileReaderはデフォルトbufferされるが、
BufferedReaderでラッパすることで速くなる。


ref:
Program Island Java基本クラス解析
http://www.limy.org/program/java/java_basic1.html
2007-08-17 01:14 : __lang__java : コメント : 0 : トラックバック : 0 :
コメントの投稿
非公開コメント

« next  ホーム  prev »

search

ad



counter


tag cloud

category cloud