Javaエンジニア養成・基礎コース(048)
コース基本情報 |
---|
コース番号 | JAVA-048 |
訓練期間 | 20日間 |
時間 | 9:00~18:00 |
開催場所 | 茅場町教室 |
対象者 |
---|
Java技術を用いたWebアプリケーション開発をはじめ様々なシステム開発業務に従事しようとする方 |
前提知識 |
---|
以下のすべてを満たしている方 |
コース概要 |
---|
当カリキュラムでは、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ストリームで永続データの実現 |
まとめ:図書管理システムの基本機能を実装することによって実運用を強化する |
---|