Javaエンジニア養成・基礎コース(048)

コース基本情報
コース番号 JAVA-048
訓練期間 20日間
時間 9:00~18:00
開催場所 茅場町教室
対象者
Java技術を用いたWebアプリケーション開発をはじめ様々なシステム開発業務に従事しようとする方
前提知識
以下のすべてを満たしている方
  • Windowsの操作が出来る
  • ファイル操作が出来る

コース概要
当カリキュラムでは、Webアプリケーション開発をはじめ、様々なシステム開発業務に従事する可能性のある技術者の方を対象に、システム開発の分野でもっとポピュラーなプログラミング言語であるJAVAの技術習得を目的とするものです。Webアプリケーション、Windowsアプリケーション、バッチプログラム、組み込み系プログラムと様々なシステム形態.及びシステム開発の現場にて多岐に渡り使用されているプログラム言語であるJavaの基礎的な技術要件に焦点を当てた講義を行います。また、実践的な図書管理システムを教材として使用することで、プログラム経験者はもちろんのこと、プログラム未経験者も、システム開発で即戦力となるJava技術者として育成します。
達成目標
プログラム言語であるJAVAの基礎技術要件に焦点を当て、各技術要件を徹底して理解、習得する事でプログラミング技術は勿論、プログラム解析、プログラム改造、などシステム開発者として必要なノウハウの習得を目標とします。
各技術要件(一部)の達成目標は以下の通りです。
・JAVAプログラム言語の種類(Java SE、Java EE)
・JAVA開発環境のインストールおよび設定、JAVAプログラム言語の仕組み
・最新のEclipse(IDE)を使ったJAVA開発環境と開発方法の理解と技術習得
・JAVAプログラミング言語の構文、変数、型と演算子の理解と技術習得
・制御構造(条件分岐処理、繰り返し処理)や配列の理解と技術習得
・オブジェクト指向要素(クラス、カプセル化、ポリモーフィズム、継承など)の理解と技術習得
・JavaAPI、IO処理、パッケージなどの理解と技術習得
・例外処理、スレッドの理解と技術習得
学習内容
1.  JAVAとは
java言語の概観と仕組み
java開発環境の構築
プログラミングを体験するとまとめ
よくある質問と答え
コメント:1行コメント・複数行コメント・JavaDocの使用基準
開発経験の共有
2. データ型のオペレーター
キーワードの定義と概要
識別子の命名基準
データ型:変数/定数の宣言
データ型:種類(基本データ型とリファレンス型)及びデータ構造
十進数/十六進数/八進数/二進数及びお互いの変換
3. プログラムの制御文
制御構造とは
制御構造の種類
シーケンシャル構造の詳細およびフローチャート
判断構造の詳細およびフローチャート
ブランチ構造の詳細およびフローチャート
ループ構造の詳細およびフローチャート
ループ構造の次元
コード効率のテスト
4. 配列
配列の由来
配列とは
配列の宣言/配列の長さ/要素のアクセス/配列の縦断
配列よく使うソート順:バブルソート/選択ソート/挿入ソート/シェルソートなど
配列の要素の探索方法: 線形探索/二分探索
オブジェクト配列
配列のツールArrays
配列のソート/区間ソート/コピー/区間コピー/値埋め/コレクションとの変換/比較(参照配列、基本データ型)/文字列化など
5. javaAPI
Objectの紹介と使い方
java.lang.Objectの関数の紹介/クローン/比較/ハッシュ/文字列化/await/wakeup/equalsとの違い
Scannerクラスの使い方
Scannerクラスの利用基準(宣言/文字列をゲット/整数型/浮動小数点数型など)/Scannerソースの開放
Mathクラスの使い方
Mathクラスのよく使うメソッド : 三角関数/abs/sqrt/cbrt/maxとmin/累乗/四捨五入など
Dateクラスの使い方
Dateクラスの利用基準/現在日時の取得/日時の比較/日時のソートなど
SimpleDateFormatクラスの使い方
時間型を変換/文字列と時間の変換
Calendarクラスの使い方
日付の取得と設定/日付の共通操作と計算
Randomクラス
乱数生成と変換
String/StringBuffer/StringBuilder
クラスの違い(可変と不可変)/メモリマップ/よく使う文字列の判断/文字列のソート/変換/分割/取得/判断/リバース/切り出し/正順逆順探索/比較/キャプション変換/メモリの節約/スレッドセキュリティなど
Systemクラスの使い方
Systemクラスの利用基準/正確な日時を取得/プリントデータのフォーマット/配列の高効率コピー/ガベージコレクション
Runtimeクラスの使い方
Runtimeクラスの利用基準/Runtimeクラスの設計
8つの基本データ型と参照型
基本データ型とStringの変換
基本データ型とオブジェクトの変換
十進数/二進数/八進数/十六進数の変換
進数と文字列の変換
手動ボクシング/手動アンボクシングとオートボクシング/オートアンボクシング
6. クラス、オブジェクト
オブジェクト指向とプロセス指向の関係・オブジェクト指向の特徴
オブジェクトを定義/クラスとオブジェクトの関係
メンバー変数とローカル変数
匿名オブジェクト
privateとカプセル
コンストラクター
thisキーワード
staticキーワードの利用基準及び注意事項・staticコードブロック
クラスのイニシャルとバイト型ファイルのロード
APIドキュメントの作り方
シングルトンパターン及び注意点
7. パッケージとアクセス権限
権限修飾子:private/default/protected/public
package/importキーワード/package 分割/static インポート/可変変数など
8. 継承とポリモーフィズム
継承の概念/特徴/利点/欠点/子クラスへの影響/勉強方法
finalキーワード
ポリモーフィズムの概念および応用
instanceofキーワード
匿名クラスの由来/概念/応用
匿名クラスのアクセス方法
匿名クラスのよく使う種類:メンバー匿名クラス/ローカル匿名クラス
匿名クラスの応用
列挙型の由来及び応用
列挙型の上級応用
列挙型とシングルトン
9. 抽象クラスとインターフェース
abstarctキーワード/抽象クラス/抽象メソッドの特徴/抽象クラスの使い方
インターフェースのよく使うメンバー/インターフェースとクラスの関係/インターフェースと抽象クラスの違い
テンプレート設計モデル:実例と応用
10. データ構造
データの論理構造
データのストレージシステム
サーチとソート
共通データ構造 : 配列構造/連結リスト構造/二分木(赤黒木)/ハッシュ表構造
11. コレクションと総称型
継承の勉強方法
Collectionインターフェースの使用基準
List(ArrayList/Vector/LinkedList)の使用基準及び注意事項
Set(HashSet/LinkedHashSet/TreeSet)の使用基準及び注意事項
Mapインターフェースの使用基準
HashMapの使用基準/LinkedHashMapの使用基準
Hashtableの使用基準/Propertiesの使用基準
TreeMapの使用基準
コレクションの共通トラバース方法(イテレータ)及び各種コレクション特有の方法
拡張for文でコレクションをトラバース
コレクションのソート
コレクションのスレッドセキュリティー
コレクションのツールクラス/配列のツールクラス/二分探索/ソート/填充/切り出し/コピー
スタックとキューの構造
列挙と自然順序付け
コレクション使用の注意事項
総称型の由来/概念と利点
カスタム総称型の使い方
総称型の上級応用
Junitテストユニット
12. 例外処理
java例外のシステム
Throwable/Exception/Errorなど例外の種類
Throwable/Exception/Errorなど例外の種類
例外の基本処理・例外のよく使う処理
JAVAデフォルト例外処理システム・例外チェーン
throwとthrows
独自例外の定義と利用
開発中例外の処理方法と標準
13. IO処理
ストリームの種類:バイトストリーム・文字ストリーム/インプットストリームとアウトプットストリーム
バイトストリームベースクラス :InputStreamとOutputStream
ファイルバイトストリーム : FileOutputStreamとFileInputStream
バッファーバイトストリーム : BufferedOutputStreamとBufferedInputStream
プリントストリーム : PrintStreamとPrintWriter
ファイルストリーム : FileReaderとFileWriter
バッファーストリーム : BufferedReaderとBufferedWriter
IOストリーム : OutputStreamWriterとInputStreamReader
データストリーム : DataInputStreamとDataOutputStream
オブジェクトストリーム : ObjectInputStreamとObjectOutputStream
パイプストリーム : PipedInputStreamとPipedOutputStream
ランダムアクセス : RandomAccess
IOストリームとエンコーディング
よく使うエンコードの紹介
エンコードの変換
文字化けの解決策
よく使うストリームの操作方法
ストリームのよく使う操作:ファイルのコピー・アップロードダウンロードなど
ストリームの使用基準
Fileクラスの常用方法
Fileクラスのよく使う操作 : 作成・判断・取得・削除・すべてのカタログを取得
Fileクラスと再帰 :ディレクトリ木をトラバース
プロパティクラスの使い方とプロパティファイルの読み書き
14. リフレクションシステム
リフレクションシステムとは
クラスタイプの取得方法
リフレクションクラスの属性・関数・コンストラクタ
動的ロードと静的ロード
開発中のリフレクション使用例
ファクトリーパターン
プロクシパターン
15. マルチスレッド
プログラム・プロセス・スレッドの概念と違い
マルチスレッドの概念・利点と欠点
スレッドの実現方法:継承と実現・両者の違い
スレッドのrunとstartの違い
スレッドのステータス:作成・実行前・実行中・一時停止・終了
sleepとwait
スレッドのセキュリティ問題及び解決法
同期と排他ロック/同期の前提/同期の利点の欠点
同期の形:同期コードブロック/同期関数
マルチスレッドのシングルトンパターン
デッドロック
wait/sleep/notify/notifAll
マルチスレッドの通信
スレッドの停止
LockとCondition
デーモンスレッド
スレッドの常用メソッド:join/sleep/yield/スレッドのプライオリティ
スレッドの中断
16. ネットワークプログラミング
ネットワークモデル:OSIとTCP
ネットワーク通信の要素/前提
ネットワークとIPアドレス
ネットワークの種類
バーチャルネットワークVPN
TCP転送モデル詳解
TCP転送実例
TCPでクライアントとサーバーのログイン通信をシミュレートする
TCPでQQチャットをシミュレートする
TCPでファイルのコピー機能をシミュレートする
UDPネットワークモデルのサンプル
UDPデータ転送のシミュレーション
17. JAVASEプロジェクト《図書管理システム》
1. ログイン機能(アカウント情報認証/認証回数制限)
2. 登録(アカウント名・パスワードの制約検証)
3. ログアウト
4. ログイン成功画面 : 実現機能: a.図書検索 b. 図書詳細情報の閲覧 c. 借入 d.返却
5. 管理者ログイン成功画面 : a.図書追加b.図書削除c.図書情報更新d.借入e.返却f.ランキング
6. ログイン履歴・デバイス・操作履歴などの情報の保存
7. IOストリームで永続データの実現
まとめ:図書管理システムの基本機能を実装することによって実運用を強化する