JavaDevelop modern applications with the open Java ecosystem.The Java programming language is a high-level, object-oriented language. It is rapidly evolving across several fronts to simplify and accelerate development of modern applications.
とある後輩が執拗に検査例外と非検査例外の使い分けについて聞いてくるので、久しぶりに真面目な話を書いてみます。 最初は一般的なJava言語的な解釈。 Effective Java的には次のようなベストプラクティスが書かれています。 40項: 回復可能な条件にはチェック済み例外を、プログラミング・エラーにはランタイム例外を使う。 Effective Java プログラミング言語ガイド 後者の「プログラミング・エラーにはランタイム例外を使う」っていう部分は、NullPointerExceptionとかの実行時例外は呼び出す側の頑張りで回避可能ということで非検査例外で処理するべきだよってことでしょう。 一方前者の「回復可能な条件にはチェック済み例外を」の部分ですが、回復可能な条件であればその通りだと思います。 ちなみにJava SEでは回復不可能でもSQLExceptionやFileNotFoun
Throwable、Exception、RuntimeException(RTE)、Errorあたりを整理しながら、色々考えてみた。私見に基づくので、間違っているかもしれないけれど、自分としては頭が整理できたかな、と感じたので晒してみる。異論があったらコメントください。 まず、一番基礎的なところで、継承関係の整理から。こんなツリーになっています。 Throwable Error Exception RuntimeException そして、本稿での用語の定義。caller=呼出す側のコード callee=呼出される側(throwする側)のコードとします。 Throwable Throwableは「throw文に指定できる何か」という意味ですね。 Instances of two subclasses, Error and Exception, are conventionally used
Rubyをはじめとするスクリプト言語ではなく、なぜJavaを選ぶのか。 そして、XPをはじめとするアジャイル開発ではなく、なぜウォーターフォールを選ぶのか。 そこには、言語の良し悪しや、開発プロセスの考え方などが理由の中心にあるわけではなくて、SIerというビジネスの仕事の仕方(ビジネスモデル)に起因している。 RubyやXPは、考え方や技術としてはとても良くて、生産性もあがるし、何よりもソフトウェアをクリエイティブに作り上げることができ、利用者にとっても使い勝手がよく、スポンサー(経営者)にとっても経営戦略に沿ったものが手に入り、開発者にとっては何よりも仕事に対してやりがいを感じることができる。すばらしい!・・・・が。。。 しかし、だからといって、誰でもRubyやXPを使って開発をするべきか、というとそうではない。もし、本質を理解しない誰かが、「やってみたいのだが・・・」と相談に来たら、
JBoss Tattletaleは依存関係を調べてくれるツールです. ライセンスはLGPLです. Beta1がリリースてたので使ってみました. 事前準備 以下からダウンロードします. http://sourceforge.net/project/showfiles.php?group_id=22866&package_id=311046&release_id=662710 まだサイトは無いみたいですね. 概要 JBoss Tattletaleを使うと、プロジェクト内を静的に解析して、以下のような情報をレポートして出力します. 自分のプロジェクトが依存しているjarファイルとそのバージョン 必要なんだけど、欠けているクラス あるクラスが複数のjarファイルに含まれている場合、そのクラスごとにどこに含まれているか 使ってみた率直な感想.かなり便利. 特に途中からプロジェクトに投入されたりとか、
java-ja 第12回のLTで話そうと思ったのですが、出番がなかったので資料をブログで公開しておきます。 Jungは研究などでグラフ構造が出たときに、理解しやすくするために可視化するのに使っています。他にもいくつかグラフを扱うライブラリは存在していますが、日本語の資料があったのと拡張可能なことが多かったのでJungを結果的に使うようになりました。 以下はそのJungについての簡単な解説です。 Jungとは Jungの正式名称はJava Universal Network/Graph Frameworkで、ネットワーク(グラフ) 構造の分析や視覚化を行うためのJavaのOSSライブラリです。グラフ理論、データマイニング、ソーシャルネットワーク分析のアルゴリズムを数多く実装しています。 安定バージョンは1.7.6で最新は2.0betaで、BSDライセンスで使用できます。 http://jun
Javaのコネクションプーリングがどのような仕組みになっているのか、知らない人は結構多いんじゃないかと思います。 Slim3のコネクションプーリングの実装を見ると、この辺が理解できるようになります。トランザクションとコネクションプーリングがどのように連携しているかを把握することは重要です。 http://svn.slim3.org/browse/trunk/slim3/slim3-datasource/src/main/java/org/slim3/datasource/ 登場人物は、4人しかいないから簡単ですね。 最初に見て欲しいのは、ConnectionWrapper。DataSource.getConnection()したときに戻されるコネクションの実態です。このコネクションを論理的なコネクションと呼ぶようにします。 主な役割は、コネクションがクローズされたときに、コネクションをプー
「Java News.jp(Javaに関する最新ニュース)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします(編集部) 標準JDKに含まれる便利なツール 読者の皆さんは、最近のJDK(Java SE)に、開発やデバッグに便利な新しいツールが含まれていることをご存じでしょうか? 古くからのJava開発者は、古い時代のJDKのツールしか知らず、一方で新しいJava開発者はEclipse/NetBeansなどの統合開発環境に慣れてしまい、細かなコマンドツールを直に使う状況が減ってきているかもしれません。 そこで今回は、最近のJava SE 6含めて比較的新しいと思われるツールを以下の5種類に分けて紹介します。 プロファイリング トラブルシューティング/情報取得 監視 配備/補助 スクリプティング 「こんなツー
もちろん、これだけではないのですが、だいたいどういうことなのかは分かっていただけるはずです。 プレゼンテーションではこの抽象から具象のバランスが非常に重要だということです。 特に抽象的な話題は重要です。ここが理解できるかどうかで理解度がずいぶん違うはず。 とはいっても、単に抽象と中間と具象で時間を 3 分割すればいいというわけではありません。ターゲットによって配分を変える必要があります。 たとえば... 技術の導入を決めるだけで、実際にコードを書くわけではない人に対しては、抽象的な話題を多くし、残りは中間的な話題、具象はほとんどいらない。 実際にコードを書く開発者であっても、そのものをほとんど知らない人であれば、中間的な話題を多くし、抽象と具象は少なめ。 だいたいどういうものかは分かっている人であれば、具象をほとんどにする。 ターゲットがマネージャー層なのか、開発者層なのかは、セミナーなり
1.はじめに プログラミング言語とはシステム化する対象物を抽象化し、コンピュータで処理可能なコードを記述するために用いる人工言語である。プログラミング言語はコンピュータの機械語と一対一の対応をもったアセンブラから始まり、コンパイラを用いて機械語に翻訳することを前提としたコンパイラ言語、インタプリタと呼ばれるプログラムがソースコードを解釈し実行するスクリプト言語と、記述できる抽象度を高める方向へと進化してきた。 プログラミング言語はその存在理由から、より抽象度の高い記述が行えること、すばやい開発を行える事が求められる。抽象度の高い記述とは、プログラムがどういう処理を行うか(HOW)ではなく何の処理を行うか(WHAT)を記述しやすい構文、機能を持っていることを、すばやい開発とは記述性の高さ、コードの密度の高さ、バグの発生しにくい構文、機能を持っていることをさす。 この抽象度の高い記述、すばやい
WicketのデフォルトのURL WicketでPageを作ってもデフォルトの設定だと?wicket:bookmarkablePage=%3Arpage.HomePageとか?wicket:interface=:1:1:::みたいなURLになってしまいます。 このままだと全然カッコよくないので、以前「Wicket1.3でのURLマッピング - public static void main」でURLマッピングの方法を一度取り上げました。 その中では、以下のような感じでWebApplicationでURLのマッピングをしました。 import org.apache.wicket.protocol.http.WebApplication; public class MyApplication extends WebApplication { public MyApplication() { s
問題 OracleのJDBC URLは、jdbc:oracle:driver_type:[username/password]@database_specifierという形式になっています。 なので、Type4ドライバ(Thinドライバ)の場合、以下のような書き方をしていると思います。 jdbc:oracle:thin:@hogehoge この場合のhogehogeが何かと言うと、SIDです。 もしもSERVICE_NAMEしか通知されていない場合、上記と同じ書き方をしてしまうとORA-12505エラーが発生します。 対策 データベース指定子(database_specifier)の内容を踏まえた場合、以下の方法が考えられます。 管理者にSIDを確認する。 データベース指定子に、接続記述子を記述する。 データベース指定子に、Thin形式のサービス名を記述する。 データベース指定子に、TNS
とあるお客様のお仕事でたまたまOracleのRAC構成のサーバへ接続する必要が生じました。 RAC構成のOracleへ接続する場合、JDBC URLはtnsnames.oraに書くのと全く同じように書かないと接続はできません。 つまりこんな感じ。 Class.forName("oracle.jdbc.OracleDriver"); String jdbcUrl = "jdbc:oracle:thin:@(DESCRIPTION = (enable = broken)(load_balance = off)" + "(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.xxx)(PORT = 1521))" + "(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.yyy)(PORT = 1521))" + "(CON
Koichi Kobayashi [E-MAIL ADDRESS DELETED] 2006年 5月 24日 (水) 01:01:11 JST 前の記事 [Seasar-user:3665] Re: コネクションプール 次の記事 [Seasar-user:3664] Re: S2DaoがDB2 UDB for iSeriesをサポートしますか 記事の並び順: [ 日付 ] [ スレッド ] [ 件名 ] [ 著者 ] 小林 (koichik) です. Date: Sat, 20 May 2006 03:00:54 +0900 From: Koichi Kobayashi <[E-MAIL ADDRESS DELETED]> To: [E-MAIL ADDRESS DELETED] Subject: [Seasar-user:3665] Re: コネクションプール > > 複数のコネクション
Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く