アノテーション
マルチスレッド
- 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を使用する - 小文字と大文字の変換を行う (
toUpperCase,toLowerCase) - 小文字と大文字の判別を行う (
isLowerCase,isUpperCase) - ある文字が空白文字(スペース)かどうかを判別する
- 全角文字と半角文字を含んだ文字列を正規化して表記ゆれを吸収する (
java.text.Normalizer) - コードポイントに対応するユニコード文字 (
char) を取得する - ある文字のコードポイントに対応するユニコード名を調べる
- 対応している文字セット (
Charset) の一覧を取得する - 文字列が正規表現に完全に一致するか調べる (
String.matches) - 文字列の一部が正規表現に一致するか調べ、一致した部分をグループごとに抜き出す (
Pattern.matcher) - 文字列の正規表現に一致した部分を置き換える (
String.replaceAll) - 複数行のテキストを含んだ
Stringを一行ずつ処理する
組み合わせ
データベース/JDBC
- JDBC ドライバの一覧を取得する
- Java から SQLite を扱えるようにする
- JDBC による DB 操作の流れ
- JDBC でプレースホルダを使用して SQL クエリを作成する
- JDBC で最初のレコードだけを取得する
解析/デバッグ
- コールスタックを表示する (
Throwable#getStackTrace) - Java で Linux の CPU 使用率を調べる
SuppressWarningsアノテーションで Checkstyle の警告を抑制する- Java ビルドツールのまとめ (Ant, Maven, Gradle)
- クラスやメソッドの依存関係を調べる (jdeps, cfa)
- DEBUG フラグでログ出力を ON/OFF するときは、呼び出し側で
if分岐すること
その他
- Javadoc コメントの書き方
- 例外のテストを記述する
- Java 7 の try-with-resources でストリームの
closeを自動的に行う - コレクションクラスのまとめ
staticブロックが実行されるタイミング- シングルトンクラスの Lazy Loading イディオム
- オブジェクトプールを実現するためのクラスを実装する
- JNI (Java Native Interface) の基本
- Java でランダムな UUID を生成する (
java.util.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 -
JTextFieldで Esc キーを押したときにテキストをクリアする - Swing -
JTextFieldのテキストを右寄せで表示する - Swing -
JTextFieldでテキストの先頭/末尾部分を強制的に表示する - Swing -
JTreeでツリービューを作成する - Swing -
JTreeに動的にノードを追加する - Swing -
JTreeで選択されているノードを取得する - Swing -
JTreeでノードを選択したときのイベントをハンドルする - Swing -
JTreeでルートノードを表示する - Swing -
JTreeで一階層目のノード間に水平線を表示する - Swing -
JTreeで同時に 1 つのノードしか選択できないようにする - Swing -
JTreeで指定したノードを選択する
- Swing -
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を使用してテーブルにデータを表示する