タグ

tomcatとJVMに関するItisangoのブックマーク (3)

  • (補足) クラスローダ

    1. クラスローダ 「クラスローダ」とは、クラスのロードやリソース(ファイル)の検索を担当するオブジェクトで、「java.lang.ClassLoader」を継承したクラスのインスタンスです。全てのクラスはクラスローダによってアプリケーションにロードされる事になっており、各クラスは自身をロードしたクラスローダへの参照を保持しています。そのクラスローダは「java.lang.Class」の「getClassLoader」メソッドで取得することができます。 クラスローダはツリー構造をしており、関連する親クラスローダを1つ所有しています。ツリー構造の大元に位置するクラスローダを「ブートストラップ・クラスローダ」と呼びます。これはJava仮想マシンに組み込まれており、Javaアプリケーションの起動時に、最初に読み込まれるものです。ブートストラップ・クラスローダはJava標準のライブラリや、Java

  • クラスローダについて - かとじゅんの技術日誌

    Javaでは欠かせないクラスをロードするためのクラスローダ。普段意識していないかもしれませんが、しっかりと縁の下で支えているよね。(Java言語仕様を確認しながら書いてないので間違っていたらツッコミよろしくです) クラスローダとは Javaクラスローダー(英: Java Classloader)とは、Java仮想マシンの一部で、JavaクラスをJava仮想マシンに動的にロードする役割を持つ [1]。通常、クラスは必要になったとき初めてロードされる。Javaの実行系は、クラスローダーがあるおかげでファイルやファイルシステムについて知る必要がない。 大きく分けて以下の3つの種類があります。 ブートストラップ クラスローダ エクステンション クラスローダ システム クラスローダ ブートストラップは、Javaのコアライブラリ($JAVA_HOME/lib/rt.jar)のライブラリ、パッケージがj

    クラスローダについて - かとじゅんの技術日誌
  • アプリケーションサーバ/コンテナ活用編・クラスローダの仕組みを知る

    Java仮想マシンの配下では、多くのクラスが複雑に(かつ密接に)絡み合い、Javaアプリケーションの動作を支えています。しかし、複数のアプリケーションを利用しているうちに、相互のアプリケーション間で、同名でバージョンだけが異なるクラス(ライブラリ)が必要になったとしたらどうなるでしょう? しかも、そのクラスライブラリには、バージョン間の上位/下位互換性がないとしたら、どうしたらよいでしょうか。 このように、バージョンアップしなければアプリケーションBが動かない、バージョンアップすればアプリケーションAが正常に動かなくなってしまうというケースは、多くのアプリケーションが並存するサーバ上においては、大いにあり得ることです。 そこで、Tomcatのようなコンテナでは、複数のクラスローダに階層関係を持たせることで、個々のクラス(ライブラリ)の独立性を保証しています。クラスローダとは、その名のとおり

    アプリケーションサーバ/コンテナ活用編・クラスローダの仕組みを知る
  • 1