サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
www.javainthebox.net
Channelインタフェースはファイルやソケットなどのコネクションを表します。しかし、単体では読み書き機能の定義はされていません。読み込みを定義しているのがReadableByteChannelインタフェース、書き込みはWritableByteChannelインタフェースで定義されています。 ByteChannelはこれら2つのインタフェースの派生インタフェースで読み込み・書き込みの両方が行えるチャネルです。 ByteChannelを実装したクラスにはFileChannelクラス、SocketChannelクラスなどがあります。 読み書き両用チャネル ByteChannelインタフェースは読み込みと書き込みのメソッドをまとめています。チャネルが読み書きするのはバイト列で、ByteBufferクラスを使用して表します。 読み込みにはReadableByteChannelインタフェースで定義さ
バッファ バッファはboolean型を除いたプリミティブ型に特化したコンテナクラスです。バッファの主な特徴を次に示します。 容量の拡張が不可 シーケンシャルアクセス Javaのヒープ外のメモリへの直接アクセスをサポート メモリにマップされたファイルをサポート Buffer クラスはabstractクラスなので、使用するのはプリミティブ型に応じた派生クラスです。Bufferクラスは共通機能、派生クラスでは要素にアクセスするためのメソッドなどが定義されています。 New I/Oではヒープ外にバッファを割り付けることができるようになり、大容量でしかも高速にアクセスすることができるようになりました。また、ファイルをメモリにマップすることもできるようになり、これのアクセスにもバッファが使用されます。 チャネル ファイルやソケットへのコネクションを表すのがチャネルです。Channelインタフェースは単
Javainthebox.net Related Searches: Parental Control song lyrics music videos 10 Best Mutual Funds Contact Lens Online classifieds Healthy Weight Loss Best Penny Stocks Designer Apparel Top 10 Luxury Cars Related Searches: fashion trends Dental Plans Accident Lawyers Migraine Pain Relief Enter Search Term Free Credit Report High Speed Internet Credit Card Application Top Smart Phones Health Insuran
Preferences API 入門 知っておくと便利なアプリケーション設定 API はじめに アプリケーションを開発していると、ちょっとしたデータを設定したいことが結構ありませんか。例えば、フレームの位置と大きさとか、ゲームのハイスコアなどです。このようなデータをプリファレンスと呼びます。 普通はプリファレンスを扱うには設定ファイルを使うことが多いと思います。しかし、わざわざ設定ファイルを用意して、それを読み書きするようなコードを書くのも面倒です。また、アプリケーションを jar ファイルだけで配布したいときには、設定ファイルをどこに置くかという問題もあります。 こんなときに役立つのが Java2 Standard Edition, v1.4.0 で導入された Preferences API です。Preferences API はこのようなプリファレンスを管理するための API で、自
バッファはプリミティブ型に特化したコンテナクラスですが、その中でもByteBufferクラスはチャネルと共に使用されるなど最も使用頻度の高いバッファです。 その他のプリミティブ型に対応したバッファも使用法は基本的に同じです。 byte型に特化したコンテナクラス ByteBufferクラスはBufferクラスで定義された基本機能と、自身で定義する要素へのアクセスメソッドなどが定義されています。その中でも主だったものを紹介します。 ByteBufferオブジェクトを生成にはallocateメソッドを使用します。ヒープ外のメモリにバッファを割り付けるにはallocateDirectメソッド、byte配列を使用して生成する場合にはwrapメソッドを使用します。 生成 allocate allocateDirect wrap バッファのpositon, limitプロパティを取得、設定するにはpos
今回は番外編ということで、バーメータをいろいろとアレンジして行きましょう。アレンジする道具は Java 2 です。 みなさんは Netscape 6 のPR 版をダウンロードされたでしょうか。Netscape 6 ははじめから Java 2 に対応しています。今までは Java 2 をアプレットで使用する場合は Java Plug-In を使用しなければなりませんでした。しかし、Java Plug-In は文字通りプラグインなので、ユーザはダウンロードしてインストールする必要があります (Internet Explorer では自動インストールができますが)。これでは、なかなか Java 2 を使用することができませんでした。 しかし、ブラウザーが Java 2 に対応すれば、より機能の豊富な Java 2 をアプレットでも使用することができます。また、Java 2 SDK 1.3 からは
ということでとうとう当日です。 櫻庭はいつものごとく開場をウロウロして写真を撮るのが仕事。一部の人にはカメラマンと思われていたようですが ^ ^;; きしださんプロデュースの BOF の後半だけ写真がないんですけど、それは裏の java-ja の LT のせいです。すいません。 ということで、まずは基調講演。 G-1 基調講演 「Cloud と Android」 丸山 不二夫さん
もちろん、これだけではないのですが、だいたいどういうことなのかは分かっていただけるはずです。 プレゼンテーションではこの抽象から具象のバランスが非常に重要だということです。 特に抽象的な話題は重要です。ここが理解できるかどうかで理解度がずいぶん違うはず。 とはいっても、単に抽象と中間と具象で時間を 3 分割すればいいというわけではありません。ターゲットによって配分を変える必要があります。 たとえば... 技術の導入を決めるだけで、実際にコードを書くわけではない人に対しては、抽象的な話題を多くし、残りは中間的な話題、具象はほとんどいらない。 実際にコードを書く開発者であっても、そのものをほとんど知らない人であれば、中間的な話題を多くし、抽象と具象は少なめ。 だいたいどういうものかは分かっている人であれば、具象をほとんどにする。 ターゲットがマネージャー層なのか、開発者層なのかは、セミナーなり
というわけで、今日から本番。 今年は InterContinental Hotel に Alumni Loung が設営されているので、さっそくいってみました。 ラウンジは 4F なので、エレベータをおりて誘導されるままにすすんだら、外にでてしまいました。 そう、ラウンジは外のテラスにあるんです。 サンフランシスコの朝はむちゃくちゃ寒いので、凍えながら朝ごはん。 Moscone Center からは歩かなくてはいけないし、寒いし、全然いいことがありません。なんでこんなところにしたんでしょうね。 ちなみに、今日だけで 1294 枚もの写真を撮ってしまっいました。こんなに撮るとは思ってもなかったので、メディアが足りない。セッション中に PC にコピーして、やっと間に合わせることができました。 さて、今日櫻庭が聴講したのは General Session Technical General Se
さて、今回から J2SE, v1.4 の目玉の 1 つである New I/O について見ていきましょう。 ところで、なんで New にする必要があるのでしょう? java.io パッケージのクラスだけではだめなのでしょうか? これを答えるには今までの Java の I/O に関する問題を考えることになります。 今まで問題になっていたのは、特にサーバー系のアプリケーションで顕著なのですが次のようなことがあげられます。 スケーラビリティ パフォーマンス、特にファイルアクセスのパフォーマンス 文字コードの扱い また、欠けていた機能として 正規表現 があります。 New I/O ではこれらを満たすことを目的にデザインされています。JavaOne 2001 では New I/O のゴールを次のように示していました。 Scalable network I/O Thousands of open con
New I/O の一番手は Buffer です。 Buffer は boolean を除いたプリミティブに特化したコンテナクラスです。ただし、List や Vector などとは異なり、サイズを変更することはできません。 と、聞くと、「なんだ配列と変わらないじゃないか」と思いませんか。逆に、オブジェクトを扱えない分、配列より劣っているような感じも受けます。 でも、実際にはそんなことはなくて、いろいろと使える場面もあると思います。Buffer の主な特徴は プリミティブに特化したコンテナ 基本的にはシーケンシャルなアクセス アクセスしている地点を変更するためのメソッド群 使用するプリミティブ型ごとに Buffer クラスの派生クラスが用意されている 読み取りは get メソッド、書き込みは put メソッドという統一したアクセス法 Java のヒープ外のメモリへの直接アクセスをサポート メモ
java.nio.charset.Charset java.nio.charset.CharsetEncoder java.nio.charset.CharsetDecoder Charset クラスは文字集合を表すクラスです。文字集合としてIANAで定義されている正準名とエイリアスをサポートします。また、文字集合の追加も可能です。 Charsetクラスとともに用いられるのが、char列から byte列への変換を行うCharsetEncoderクラスと、 byte列からcha列 への変換を行うCharsetDecoderクラスです。この2つのクラスを使用して文字列のエンコード・デコードを行います。 文字集合を表すクラス Charsetクラスは文字集合を表し、byte列とchar列のマッピングを示します。 Charsetオブジェクトの生成はforNameメソッドを使用します。引数は文字集合名
ネイティブアプリにアクセス - Desktop アプリの連携がやりにくくありませんでしたか Java で他のアプリケーションを起動するには、ProcessBuilder クラスを使用しますよね。これはこれでいいのですが、起動するアプリケーションが分からないときがあります。 たとえば、ブラウザ。 たぶん、ブラウザがあることは分かるんだけど IE なのか Firefox なのか Opera なのか、Java のアプリケーションからだとなかなか分からないんですよね。JNI を使えばできるのですが、それはちょっと... また、普通は MIME タイプごとに起動するアプリケーションが決まっていますが、そのアプリケーションが何かを知りたいわけです。 でも、もうそんな悩みも過去のこと。Java SE 6 を使えば、あっという間にできるのです。 ブラウザを起動する それをやるためのクラスが java.aw
正規表現は UNIX を使ったことのある方ならば、何らかの形で使ったことがあると思います。筆者も以前は UNIX をメインに使っていたので、正規表現はよく使っていました。 最近では、Perl で正規表現を使われている方も多いと思います。 正規表現というのは、簡単に言ってしまえば「文字列を表すためのパターン」といえると思います。正規表現を使用するアプリケーションは、そのパターンに適合しているか調べたり、パターンにあっている部分を抜き出すなどに正規表現を使用しているのです。 ここでは、正規表現の説明は特に行いませんが、興味のある方のために参考書をあげておくだけにとどめておきます。 "Mastering Regular Expressions", Jeffrey E. F. Friedl, O'Railly, ISBN 1-56592-257-3 日本語版は 「詳細正規表現」 歌代 和正 監訳,
マウスポインタの位置に関しては苦い思いでがいっぱいあります。 ブロック崩しでもシューティングでもいいのですが、マウスポインタの位置に応じてパッドや自機の位置を変えようとします。通常は MouseMotionEvent クラスを使用して、マウスポインタの移動を検出します。 ところが、ところがです。 マウスのポインタがゲームのフレームの外側に出てしまうと、MouseMotionEvent イベントが発生しなくなってしまうのです。つまり、パッドや自機が全然動かなくなってしまうのです。遊んでいるほうはマウスポインタの位置じゃなくてマウスを右や左に動かすということだけ集中しているので、急にパッドや自機が動かなくなってしまいパニック状態に陥ってしまいます。 フレームの外側に出ても唯一イベントがあがってくるのが、マウスをドラッグしたときです。逆にいえば、これ以外の時は一切イベントが発生しませんでした。
ファイルに対応するチャネルで、読み込み・書き込みの両方を行うことができます。 FileChannelクラスはチャネルの基本的な機能以外に、次のような特徴があります。 メモリにファイルをマップ チャネルの連結 ファイルのロック FileChannelオブジェクトを取得するには、FileInputStream, FileOutputStream, RandomAccessFileクラスのgetChannelメソッドを使用します。 ファイルに対応したチャネル FileChannelクラスの基本機能はByteChannelインタフェースなどで定義されています。ここでは、その他の機能について紹介します。 ファイルをメモリにマップするにはmapメソッドを使用します。 ファイルのメモリへのマップ map FileChannelクラスはチャネルの連結が可能です。transferToメソッドはFileCha
MXBean を作ってしまおう MBean は自作できたのですが... Tiger で導入された MXBean と jconsole は JVM の状態を知るのにとても便利です。 この MXBean は通常の MBean とは少し扱いが異なっています。Tiger のソースを見てみると、なんかとても簡単に作れそうに見えてきます。 Tiger では自作の MXBean はサポートされていなかったのですが、Java SE 6 からは大丈夫です。 何もしなくても jconsole で JVM にアタッチできるようになったのですから、どんどん自作の MXBean を登録してしまいましょう。 さっそく、やってみたいのですが、このドキュメントを書いている 2005 年 11 月には、Java SE 6 でサポートされる JMX 1.3 のスペックが公開されていません。 そのため、ここで書いた方法が正しい
このサンプルは Ping の動作をシミュレートするようなサンプルです。 さて、Reachability をチェックするには InetAddress#isReachable メソッドを使用します。このメソッドは引数によって 2 種類提供されています。一方が簡単なものでタイムアウトの時間だけを指定するもの。もう一方がネットワークインタフェース、TTL そしてタイムアウトを使用するものです。 通常はタイムアウトを指定するものだけで十分だと思います。 Reachability をチェックするには次のようにします。 String addressText = .... InetAddress address = InetAddress.getByName(addressText); // Reachability のチェック ICMP が使用される boolean isReachable = addr
StringBuilder クラスは Tiger で導入されたクラスなのですが、なんと機能は StringBuffer クラスとまったく同じなのです。 それじゃ、なぜ今になって新しいクラスを作ったのでしょうか。 それはスレッドセーフとパフォーマンスに関連します。 StringBuffer クラスのすべてのメソッドは synchronized になっており、同期化されています。このため、複数のスレッドから使用される場合でも、安全に使用することができます。 その一方で同期化にはコストがかかります。簡単にいえばメソッドを synchronized にすると遅くなってしまうのです。 しかし、StringBuffer を使うときに本当にスレッドセーフが必要ですか? 私が書いてきたコードには StringBuffer クラスにスレッドセーフが必要だったケースはほとんどありませんでした。それなのにわざわ
より便利になった JConsole はじめに JConsole は J2SE 5.0 から取り入れられた JMX に対応したソフトウェア管理のためのツールです。特に JSR-174 で策定された JVM の状態を表す MXBean を参照することができるので、とても便利なツールなのです。 しかも、Java SE 6 ではもっと便利になったのです。それをさっそくご紹介しましょう。 On Demand Attach J2SE 5.0 では JConsole で JVM の状態を参照するには、ターゲットとなる java の起動オプションが必要でした。ローカルの場合は次のようにアプリケーションを起動させます。 これはこれでいいのですが、問題はこのオプションをつけないと JConsole で見ても何も情報が得られないということです。 Mustang ではこの点が改良されて、この起動オプションをつけな
注: FullRepaintManager は Java Swing Hacks のサンプルコードを使用させていただきました。 すべてのサンプルは TimingFramework-XXX.jar が必要です (XXX にはバージョンが入ります)。2007.3.14 現在では TimingFramework-0.54.jar が最新版です。 TimingFramework-0.54.jar のダウンロードは java.net の Timing Framework プロジェクトよりお願いします。
Channel インタフェース群をインプリメントしたクラスの 1 つに FileChannel クラスがあります。クラス名に File とつくぐらいですから、ファイルに特化した Channel ということができます。 今回はこの FileChannel に関して取り上げてみましょう。ですが、FileChannel クラスの機能のうち、Channel インタフェース群で定義されているものは Channel 導入編で取り上げましたから、その他の FileChannel クラス特有の機能に関して調べていきましょう。 Buffer クラスには、読み書きを行った位置を示す position というプロパティがありましたが、FileChannel クラスにも同様に position があります。とはいうものの、Buffer クラスの他のプロパティ limit と capacity はありません。 ファ
次のページ
このページを最初にブックマークしてみませんか?
『Java in the Box』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く