Tab navigation
- Java technology - selected tab,
- Linux
- Multicore acceleration
- Open source
- SOA and web services
- Web development
- XML
Javaプログラミングのダイナミックス 第2回: リフレクション入門 (2003年6月3日)
リフレクションを利用すれば、JVMにロードされたクラスの内部情報をコードからアクセスしたり、ソース・コードで選択したクラスではなく実行時に選択するクラスを扱うようにコードを記述できるようになります。そういう理由で、リフレクションは柔軟性の高いアプリケーションを構築するのに非常に有効なツールとなっています。しかし注意も必要です。使い方を誤るとコストも高くつきます。Javaプラットフォームの内部についてのこのシリーズの第2回目でソフトウェア・コンサルタントDennis Sosnoski氏が紹介してくれるのは、リフレクションの使い方およびそのときのコストについてです。また実行時にJavaのリフレクションAPIを利用してオブジェクトにフックする方法も示されます。
訛りのない Java 言語を話す (2010年1月12日)
この記事では Elliotte Rusty Harold が Java 言語とそのコミュニティーでの固有の慣用表現、方言、訛りについて詳しく説明します。この記事のガイダンスに従えば、C/C++ やその他の言語から Java に転向したプログラマーでも、Java 言語のネイティブ・スピーカーの仲間に加われます。
Javaの理論と実践: volatile を扱う (2007年6月19日)
Java 言語に元々含まれている同期機構として、synchronized ブロック (およびメソッド) と volatile 変数の 2 つがあります。どちらも、スレッド・セーフにコードを描画するために提供されています。2 つのうち、volatile 変数の方が同期の仕組みとしては強力でない (しかし場合によると、より単純、あるいはコストが安い) のですが、誤った使い方をしやすいものでもあります。今回の Java の理論と実践では、Brian Goetz が volatile 変数を正しく使うためのパターンをいくつか調べ、volatile 変数を適用できる限界について注意を促します。
DAOを繰り返すな! (2006年5月12日)
JavaTM 5ジェネリックの採用により、汎用の(ジェネリックな)型安全なDAO(Data Access Object:データ・アクセス・オブジェクト)実装というアイデアが現実のものになりました。この記事では、システム・アーキテクトであるPer Mellqvistが、Hibernateに基づくジェネリックDAO実装クラスについて解説します。また、Spring AOPイントロダクションを使用して、このクラスに、クエリー実行のための型安全なインターフェースを追加する方法も示します。
Javaプログラムでのメモリー・リークの処理 (2001年2月1日)
Javaプログラムでメモリー・リークが発生するのでしょうか? その通りです。一般に信じられていることとは異なり、Javaプログラミングでもメモリーの管理を考慮する必要があります。この記事では、メモリー・リークの原因は何か、そしてそれが問題になるのはどんな場合かを説明します。また、プロジェクトでメモリー・リークの問題に取り組む上での実際的な例も含まれています。
多忙な Java 開発者のための Scala ガイド: オブジェクト指向のための関数型プログラミング (2008年1月22日)
Java プラットフォームは、その登場以来ずっとオブジェクト指向プログラミングの領域のものでしたが、熱烈な Java 言語支持者でさえ、アプリケーション開発における『古いものは新しい』という最近の傾向である、関数型プログラミングに注目し始めています。この新しいシリーズでは、Ted Neward が Scala を紹介します。Scala は JVM に対して関数型の手法とオブジェクト指向型の手法を組み合わせたプログラミング言語です。Scala を紹介する中で、なぜ Scala を学ぶために時間を費やす必要があるのか、その理由 (1 つは並行性です) を説明し、また学んだことをすぐに生かせることを示します。
Javaの理論と実践: Generics のワイルドカードを使いこなす、第 1 回 (2008年5月6日)
Java 言語における Generics で最も複雑な部分の 1 つはワイルドカードであり、なかでもワイルドカードのキャプチャーの扱い、そしてワイルドカードのキャプチャーに関するわかりにくいエラー・メッセージは特に厄介です。「Java の理論と実践」シリーズの今回は、ベテランの Java 開発者である Brian Goetz が、javac から出力される奇妙なエラー・メッセージのいくつかを解読し、さらに Generics の使い方を単純化するための手法と回避策をいくつか提供します。
Javaの理論と実践: 弱参照でメモリー・リークを塞ぐ (2005年11月22日)
Java 言語でのプログラムは、理論的に「メモリー・リーク」とは無縁なはずです。ところが、オブジェクトが既にプログラムの論理状態の一部でなくなっているにも関わらず、ガーベジ・コレクションで処理されない場合があります。今回は、清掃技術者であるBrian Goetzが、意図せずにオブジェクトが残ってしまう場合についての一般的な原因を究明し、弱参照(weak reference)によって漏れ(leak)を防ぐ方法を解説します。
Apache Solr でもっと賢く検索する: 第 1 回 基本機能と Solr スキーマ (2007年5月29日)
Solr は Lucene をベースにしたエンタープライズ対応の検索サーバーで、ファセット検索、検索結果の強調表示、そして複数の出力形式をサポートします。Solr を紹介するこの 2 回の連載記事では、Lucene Java コミッターの Grant Ingersoll が Solr ならではの優れた全文検索機能を簡単に Web アプリケーションに取り込む方法を伝授します。
Javaの理論と実践: Generics、了解! (2005年1月25日)
JDK 5.0で追加されたgenericタイプは、Java言語でのタイプ・セーフにとって大きな改善です。ところがgenericは、初めて使う人にとっては間違えやすく、極端に言えば奇妙に見えるかも知れません。今回のJavaの理論と実践では、Brian Goetzがgenericを初めて使う人が陥りがちな落とし穴について解説します。