読書会(More Java Pitfalls)第4回議事録
[ 戻る ]
"More Java Pitfalls"を読む会 第3回議事録
日時:8月23日(土) 10:00〜17:00
場所:目黒区東山住区センター 第3会議室
参加者(敬称略):
高橋(徹) 金井
□□□□□□□□
宮本□ □村上
□ □
□ □村山
□ □
□□□□□□□□
高橋(智) 布留川 中村
自己紹介:簡単な近況報告
書記:宮本
読み手:各自が予習を担当したItemNoの日本語訳orポイントを紹介
=============================================
Item18 Effective String Tokenizing (高橋(智))
=============================================
[要約]
StringTokenizerクラスのコンストラクタに渡すデミリタ(区切り文字)は、「文
字列でなく、文字の集合」である。これが直感的に間違いやすく落とし穴となる。
書籍では、文字列分割のユーティリティが紹介されている。
P140
・「Token」は何と訳そう?
→トークン
P142
・「junior developer」は何と訳すか
→初級ディベロッパー
P144
・pre-Collectionって?
→コレクション以前の
・実装は正規表現でもできます
・JavaCCの話題
=============================================
Item19 JLayered Pane Pitfalls (宮本)
=============================================
[要約]
JLayeredPaneクラスにはデフォルトのLayoutManagerがなく、サイズや位置は指
定する必要がある。このことを知らずに、JFrameやJPaneと同じように使えると
思ってしまうと、落とし穴となる。
P146
・XULって?
→MozilaのXMLでUI定義で使われていたような?
・portedは何と訳す?
→移植
・fixは何と訳す
→修正
=============================================
Item20 When File.renamtTo() Won't (村山)
=============================================
[要約]
java.ioパッケージは、JDK1.0以降、何度かオーバーホールが行われ、クラスの
名前、役割が適切でないものもあり、その利用法が落とし穴となる。ここでは、
java.ioおよびnioパッケージ中のトラブルとなりやすいクラスについて列挙、コ
メントし、またFile.renameTo()の問題について述べている。
P155
・renameTo()呼んだ後、そのままFileを使えません
Fileクラスは、役割的にはFileNameという名前の方が適当
・Solaris上では動かないのバグとは?
→※宿題
=============================================
Item21 Use Iteration over Enumeration (村上)
=============================================
[要約]
IteratorとEnumerationは同じような機能だが、微妙に差異がある。Enumeration
のループ中に元のコレクションから要素を削除すると、要素がずれてしまい、こ
れが落とし穴となる。Iteratorのremove()メソッドを利用しよう。
・remove()って使うの?
→使うことはある
=============================================
Item22 J2ME Performance and Pitfalls (布留川)
=============================================
[要約]
J2MEでは、J2SEにはない考慮事項がある。ここでは、J2SEのAmazon検索アプリ
ケーションをJ2MEに置きかえる例を示し、その中で、パフォーマンスや、メモリ
をどう最適化するかを述べている。
・メモリについては少ないこともあるが、さらに機種によっては、Nativeヒープ
やグラフィックヒープなどのメモリもあり、Javaから制御できないものもある。
・拡張機能APIは機種ごと、バージョンごとに違うのがややこしい
・Amazon検索には、RESTとSOAPのアプローチがあるらしい
・Vectorよりは配列でしょう
・メソッドは減らすでしょう
・String比較をクラスに置き換えているのはintでもいいかも
・OutOfMemoryError
→発生場所によってキャッチできないことが多いかも
・変数やメソッドをfinalにする
→変わるかな?
・ここでの最適化事項で、最近の性能アップで、そこまでしなくてよいものもあ
りそう
0と比較するようにループを変える
2倍はシフト演算
・GC用null代入
→それよりもインスタンス使いまわす設計の方がよいかも
・synchronizationは避ける
→基本的にはスレッドは使わず、なるべく1スレッドですます
・i++ > i=i+1 は本当か?
・J2MEでJavaを使う利点は?
→サンドボックス、セキュリティーが一番の理由
=============================================
Item23 Cache, It's Money (金井 / 中村)
=============================================
[要約]
Webページの動的作成で、キャッシュを行うことは、パフォーマンスの利点があ
る。ここでは、キャッシュタグとJMeterを使ったキャッシュを行う例が示されて
いる。
・題はCashとかけたダジャレですね
P201
・cached in 45 minutes
→いったい何をキャッシュしてるのか?
[ 戻る ]