アノテーション
マルチスレッド
- Executor によるタスク処理 (1) Executor インタフェースを使用する
- Executor によるタスク処理 (2) ExecutorService インタフェースで Executor を停止する
- Executor によるタスク処理 (3) Future オブジェクトによりタスクの実行結果を取得する
- Executor によるタスク処理 (4) 既存の Thread から Future オブジェクトを取得する
- Executor によるタスク処理 (5) ScheduledExecutorService によるタスクのスケジュール
- BlockingQueue を使ってスレッド間の通信を行う
- Lock と Condition による条件ごとのスレッド待機
- TimeUnit によって単位時間を明確にする
- スレッドで発生した Uncaught Exception(未捕捉例外)をハンドルする
- Java のオブジェクトロックは再入可能であることを理解する
- Boolean 型で synchronized するのは NG
ファイル
JAR/ZIP
XML
ファイル一般
数値/文字列/ユニコード
- 数値と文字列の変換方法いろいろ
- バイト配列から 16 進数文字列を作成する
- 文字列をデリミタで分割する (String.split)
- CSV 形式の文字列を配列に分割する (String.split, Pattern.split)
- 文字列を単語単位で分割する (BreakIterator)
- 文字列の結合には StringBuffer ではなく StringBuilder を使用する
- 小文字と大文字の変換を行う
- 小文字と大文字の判別を行う
- ある文字が空白文字(スペース)かどうかを判別する
- 全角文字と半角文字を含んだ文字列を正規化して表記ゆれを吸収する
- コードポイントに対応するユニコード文字 (char) を取得する
- ある文字のコードポイントに対応するユニコード名を調べる
- 対応している文字セット (Charset) の一覧を取得する
- 文字列が正規表現に完全に一致するか調べる (String.matches)
- 文字列の一部が正規表現に一致するか調べ、一致した部分をグループごとに抜き出す (Pattern.matcher)
- 文字列の正規表現に一致した部分を置き換える (String.replaceAll)
- 複数行のテキストを含んだ String を一行ずつ処理する
組み合わせ
データベース/JDBC
- JDBC ドライバの一覧を取得する
- Java から SQLite を扱えるようにする
- JDBC による DB 操作の流れ
- JDBC でプレースホルダを使用して SQL クエリを作成する
- JDBC で最初のレコードだけを取得する
解析/デバッグ
- コールスタックを表示する
- Java で Linux の CPU 使用率を調べる
- SuprressWarnings アノテーションで Checkstyle の警告を抑制する
- Java ビルドツールのまとめ (Ant, Maven, Gradle)
- クラスやメソッドの依存関係を調べる (jdeps, cfa)
- DEBUG フラグでログ出力を ON/OFF するときは、呼び出し側で if 分岐すること
その他
- Javadoc コメントの書き方
- 例外のテストを記述する
- Java7 の try with resources でストリームの close を自動的に行う
- コレクションクラスのまとめ
- static ブロックが実行されるタイミング
- シングルトンクラスの Lazy Loading イディオム
- オブジェクトプールを実現するためのクラスを実装する
- JNI (Java Native Interface) の基本
- Java でランダムな UUID を生成する
- enum の各項目に任意のデータを関連付ける
- 既定の Web ブラウザで URL を開く
コラム
Effective Java や Java の鉄則など
- コンストラクタの代わりに static ファクトリメソッドを検討する
- 数多くのコンストラクタパラメータに直面したときにはビルダーを検討する
- private のコンストラクタか enum 型でシングルトン特性を強制する
- private のコンストラクタでインスタンス化不可能を強制する
- 不必要なオブジェクトの生成を避ける
- 廃れたオブジェクト参照を取り除く
- ファイナライザを避ける
- equals をオーバライドする時は一般契約に従う
- equals をオーバライドする時は常に hashCode をオーバライドする
- toString を常にオーバライドする
- clone を注意してオーバライドする
- Comparable の実装を検討する
国際化
Swing
基本
- Swing で Hello World
- Swing - Container と JComponent と JFrame の関係
- Swing - JPanel に GUI コンポーネントを配置する
- Swing - 標準的なダイアログいろいろ
- Swing - OK ボタンと Cancel ボタンのあるダイアログを作る
- Swing - JDialog のウィンドウサイズを変更できるようにする
- Swing - スプリッターを配置してウィンドウを分割する
- Swing - スプリッターを折り畳み可能にする
- Swing - スプリッターの分割方向を動的に変更する
- Swing - コンポーネントにツールティップを表示する
- Swing - ショートカットキーでフォーカスを移動する
- Swing - 右クリックでポップアップメニューを表示する
- Swing - ルック&フィールを切り替える
レイアウト
- Swing - レイアウトマネージャの種類
- Swing - デフォルトのレイアウトマネージャについて
- Swing - BorderLayout でコンポーネントを上下左右中央に並べる
- Swing - BorderLayout で中央に配置するコンポーネントのデフォルトサイズを設定する
- Swing - BorderLayout でコンポーネント間のスペースを設定する
- Swing - BoxLayout でコンポーネントを縦方向、横方向に並べる
- Swing - BoxLayout で左寄せ/中央寄せ/右寄せ表示する
- Swing - FlowLayout でコンポーネントを左上から並べる
- Swing - FlowLayout でコンポーネントが複数行表示されるときに左寄せ/右寄せする
コンポーネント(ウィジェット)
- Swing - JButton(ボタン)にショートカットキーを割り当てる
- Swing - JComboBox でルック&フィールの選択肢を表示する
- Swing - JEditorPane で HTML コンテンツを表示する
- Swing - JEditorPane で画像ファイルを表示する
- Swing - JEditorPane にスタイルシート (CSS) を設定する
- Swing - JEditorPane でハイパーリンク関連のイベントをハンドルする
- Swing - JEditorPane で先頭部分を表示する
- Swing - JList で項目のリストを表示する
- Swing - JList で扱えるモデルクラスを作成する
- Swing - JList に動的に要素を追加/削除する
- Swing - JList で項目を選択したときのイベントをハンドルする
- Swing - JList で最初に表示される行数を指定する
- Swing - JList で選択されている項目を取得する
- Swing - JList で単一の項目のみ選択できるようにする
- Swing - JList で最後の項目を選択する
- Swing - JList でリスト項目としてチェックボックスを表示する
- Swing - JSpinner を使って上下矢印で値を入力できるようにする
- Swing - JTextArea で複数行のテキストを表示する
- Swing - JTextArea のテキストを画面端で折り返す
- Swing - JTextArea のテキストを編集不可にする
- Swing - JTextArea に表示するフォントを設定する
- Swing - JTextArea でテキストの先頭部分を表示する
- Swing - JTextField で Enter キーを押したときにテキストを取得する
- Swing - JTextFiled で Esc キーを押したときにテキストをクリアする
- Swing - JTextField のテキストを右寄せで表示する
- Swing - JTextField でテキストの先頭/末尾部分を強制的に表示する
- Swing - JTree でツリービューを作成する
- Swing - JTree に動的にノードを追加する
- Swing - JTree で選択されているノードを取得する
- Swing - JTree でノードを選択したときのイベントをハンドルする
- Swing - JTree でルートノードを表示する
- Swing - JTree で一階層目のノード間に水平線を表示する
- Swing - JTree で同時に1つのノードしか選択できないようにする
- Swing - JTree で指定したノードを選択する
SWT (Standard Widget Toolkit)
- SWT - AWT と Swing と SWT と JFace の違い
- SWT - SWT を使用するための設定
- SWT - Mac で SWT を使用する
- SWT - SWT アプリケーションの雛形コード
- SWT - SWT の Layout は Composite の入れ子で構成する
- SWT - RowLayout でウィジェットを縦/横方向に並べる
- SWT - FillLayout でウィジェットを縦/横に等間隔に並べる
- SWT - SashForm でウィンドウを分割して配置する
- SWT - リストボックス (List) を表示する
- SWT - ツリービュー (Tree) を表示する
- SWT - いろいろなダイアログ (MessageBox) を表示する
- SWT - ブラウザウィジェット (Browser) で HTML を表示する
- SWT - SWT/JFace における色 (Color) 情報の扱い方
- SWT - 矢印ボタンを作る
- SWT - Canvas を使って自由に描画する
- SWT - Cannot load 32-bit SWT libraries エラーが発生する場合
- JFace を使用するための設定
- JFace アプリケーションの雛形コード
- JFace のウィンドウにウィジェットを配置する
- JFace のウィンドウのタイトルを設定する
- JFace の ListViewer を使用する
- JFace の TreeViewer を使用する
- JFace の TreeViewer を使ってディレクトリツリーを表示する
- 階層構想を表現した RDB のデータを JFace の TreeViewer でツリー表示する
- JFace の CheckboxTreeViewer を使用する
- JFace の TableViewer を使用してテーブルにデータを表示する