文系seの備忘録

Excelの改行でひたすらスペースを打っていた機械音痴の文系seが日々の備忘録を綴る。

NIO.2(New I/O 2)

昨日、Java Goldの紫本をアマゾンにて購入(中古で)。
2015年3月現在、Goldのテキストはこれしか出ていないようです。
評価は微妙ですが、書店で立ち読みした感じでは説明がしっかりしていて
そんなに悪い印象は受けませんでした。
おそらく、ゴールドは難易度が高く出題範囲も広いので、紫本だけだとちょっと足りないよ!
ということなのでしょう。
内容量がシルバーに比べ増えているためページ数も多く、値段もアップしています。




・・・IT系のテキストは値段が高いorz
基本的にネットやらブックオフやら古本屋やらで中古しか買いません。
浮いたお金があったら髪切りに行きたいしネイルもしたい。
美味しいごはんも食べたいww



資格試験が苦行になってしまってはだめだと思うんです。
「スラスラとコーディング出来るようになったらカッコイイよなぁ」
「自分の思い通りのアプリを作るんだ!」
きっかけは何であれ目的がないと続きません。。。


ゴールド紫本は本日中には届く予定です。
夏頃には受験できるよう、詰めてやっていきます。
(今後仕事が忙しくなりそうだけど・・・予定は夏ごろで。。)



ゴールドの目次は以下のようになっています。

Javaクラス設計
ポリモフィズム
ネストクラス
オブジェクト指向の設計
Java API
コレクションとジェネリック
例外処理
入出力
NIO.2
JDBC〔ほか〕

・・・ん?NIO.2ってなに???
かっこいい名前だけど聞いたことない!!!


引用
NIO.2 入門: 第 1 回 非同期チャネル API

More New I/O APIs for the Java™ Platform (NIO.2)
Java 7 の新しい主要な機能分野の 1 つとして、非同期チャネル機能
新たなファイルシステム API Java 言語に加えます。
これにより、開発者にはプラットフォームに依存しない
ファイル操作、非同期処理、そしてマルチキャスト・ソケット・チャネルの
サポートがもたらされることになります。

非同期チャネル
接続、読み取り、書き込みなどのノンブロッキング処理(データ送受信の完了を待たず、他の処理を開始する通信方法)
をサポートする接続のこと。


非同期チャネルAPIには、非同期処理をモニターor制御するための2つのメカニズムがある。
その1:java.util.concurrent.Future オブジェクトを返す
     登録されたタスクがどのような状態にあるかなどを調べる。
     実行途中のキャンセル、処理終了のタイミングで起動するコールバック指定ができる。

その2:java.nio.channels.CompletionHandler オブジェクトを渡す
     非同期処理の完了後に実行されるハンドラー・メソッドを定義
     I/O操作が成功した場合はこのインターフェースのcompletedが、
     失敗した場合はfailedが呼び出される。



試しにFilesクラスを使ってファイルコピー処理を実装してみた。


C:\tempにあるaaa.txtをC:\temp\testにコピーする。
f:id:ron623:20150304124847p:plain


C:\temp\test
f:id:ron623:20150304125459p:plain


・・・コピーされた!

へー。

JDK1.6以前ではファイルコピー機能は存在しなかったが、以降では上記の
ようにコピーができる。


詳しくはテキストで勉強しながら追々理解していく。