Update! Effective Java 2nd Edition対応版
研修概要
Stringを==演算子で比較していませんか?equals()メソッドは実装したけど、hashCode()メソッドは実装し忘れていませんか?
Javaプログラミングにおいて、「読みやすく」「わかりやすく」「誤りに陥りにくい」コーディングを行う事は品質の高いプロフェッショナルな仕事を行う上で重要です。
このコースは、脱初心者を目指す方のために、カサレアルが数々の開発実績から得たノウハウを伝授し、質の高いJavaプログラムを作成する方法を習得いただけるものとなっております。
またOSSのバグコード検出ツール「FindBugs」も講義の中で使用いたしますので、ソースコードの品質に日々悩んでおられる方にも参考になる講座となっております。
- 前提条件
- 基本的なJavaプログラミングができること(基本文法)
- 基本的なJavaクラスライブラリを利用できること(java.util/java.ioパッケージ、JDBC API)
- 基本的なServlet APIクラスライブラリを利用できること
- Eclipseの基本的な操作ができる方
- 受講者特典
コース受講者は、講習内容に関して、メールでの無料Q&Aサービスを受けることができます。(受講日から3ヶ月間有効)
開催スケジュール
受講料・講義日数・時間
- \102,900 (税込み) : 受講料にはテキスト代も含まれています。
- 講義日数:2日間
- 講義時間:10:00~17:00
実習環境
- Windows XP Professional SP2
- JavaSE JDK 1.6
- Eclipse 3.4
- Eclipse plugin for FindBugs version 1.3.4
- ※ 使用ソフトウェアのバージョンは変更になる可能性があります
受講者に配布する資料
- コーステキスト、及び演習テキスト
- 全演習 サンプル・ソース・コード
- 受講者が作成した演習プログラム
- 市販書籍『Effective Java 第2版』
- 市販書籍『開発のプロが教える標準FindBugs完全解説』
コース内容
- バグコード検出ツール「FindBugs」
- コードインスペクションとは
- CUI/GUIモード版
- Eclipseプラグイン版
- 実習:EclipseでFindBugsを使用
- コーディングスタイル
- コーディング規約とは
- メトリクスに関する規約
- インデント(字下げ)
- クラス名
- インタフェース名
- パッケージ名
- 変数
- メソッド
- 制御構造
- コンストラクタ
- import
- コメント
- 空白文字を入れるポイント
- 陥りがちな落とし穴
- Stringを == で比較してしまう
- switch-case文でbreakを書き忘れる
- インクリメント演算子の前置と後置
- 添え字にまつわる落とし穴
- 比較にまつわる落とし穴
- コンストラクタのつもりでメソッドを作る
- forループ変数を間違えてしまう
- フィールドをハイディングしてしまう
- インタフェースの注意点
- クラスの循環依存関係
- 実習 クラスの循環依存関係
- メモリを意識する
- 無駄なインスタンス生成
JVMのメモリ管理(heap領域)
- 明示的なガベージコレクションの呼び出し
- ガベージコレクションの対象にする
- ファイナライザ
- 上手にコレクションを使い分ける
- ArrayList vs LinkedList
- Stack vs LinkedList
- HashMap vs TreeMap vs LinkedHashMap
- java.util.concurrentパッケージの並行処理対応コレクション
- コレクションから取得した要素は参照渡し
- コレクションの要素となるJavaBeans
- JavaBeansの基本
- コレクションに格納した要素が取得できない
- オブジェクトの「同一」と「等価」の違い
- equalsとhashCodeはセットでオーバーライドする
- 要素をソートするコレクション
- 要素となるJavaBeansにComparableインタフェースを実装
- JavaBeansを比較するComparatorクラスを作成
- 不変オブジェクト
- toStringメソッドのオーバーライド
- 実習 コレクションの要素となるJavaBeans
- 例外処理
- 例外処理の注意点
- リソースリークの回避
- チェック例外/非チェック例外
- 例外の濫用
- 例題:例外の濫用
- 直列化(シリアライゼーション)
- Serializableインタフェースの実装
- Servlet APIでの作法
- Eclipseの機能を使う
- Eclipseを用いてチーム内のコーディングスタイルを統一する方法
- エラー/警告の設定
- enum
- enum導入以前の「int enumパターン」の欠点
- enumクラスのコンストラクタとメソッド
- enumの使い方
- ordinalメソッドは使用しない
- シングルトンクラスをenumで実装する
- 実習 シングルトンクラスをenumで実装する
- Overrideアノテーション
- 常にOverrideアノテーションを使用する
- Java5とJava6の相違点
- 付録:メトリクス
- メトリクスとは
- Code Analysis Plugin(CAP)
- JDependEclipse
- Eclipse Metrics Plugin