内部クラス
クラスA {// inner1は、Aが初期化された後にのみ使用できます。つまり、オブジェクトA. class inner1 {int k = 0; // static int j = 0; // Aがロードされた後、Inner1はロードされないため、この静的変数jはすぐに使用できず、エラーは最終的なint z = 0を報告します。 /*static void say1(){}*/void say2(){}} // inner2はstatic class inner2 {int k = 0;を使用できます。静的int j = 0;最終int z = 0; static void say1(){} void say2(){}} //内側クラスのvoid c(){final int x = 0; // final in nowasificiationの後、new inner1(); new inner1(); // new intancy inner1は、new an()。 a.inner2.say1(); new a.inner2()。say2(); //非静的な方法は、クラスのオブジェクトをclass inner3 {void print(){system.out.println(x); }} / * *メソッドのローカル内部クラスの呼び出しは、宣言後に宣言する必要があります。 *メソッドの実行順序は上から下にあり、このクラスはもちろんローカル変数に相当します。 }}クラスローダーjava.lang.classloader
java.lang.classloaderクラスの基本的な責任は、指定されたクラスの名前に基づいて対応するバイトコードを見つけたり生成したり、これらのバイトコード、つまりjava.lang.classクラスのインスタンスからJavaクラスを定義することです。さらに、ClassLoaderは、画像ファイルや構成ファイルなど、Javaアプリケーションに必要なリソースをロードすることも責任を負います。ただし、この記事では、ロードクラスの機能についてのみ説明します。クラスをロードするこの責任を完了するために、クラスローダーは一連の方法を提供します。
getParent()クラスローダーの親クラスローダーを返します。
loadclass(string name)class name nameをロードすると、返された結果はjava.lang.classクラスのインスタンスです。
FindClass(String name)という名前の名前が付けられたクラスを探し、返された結果はjava.lang.classクラスのインスタンスです。
findLoadedClass(String name)名前という名前のロードクラスを探し、返された結果はjava.lang.classクラスのインスタンスです。
defineclass(String name、byte [] b、int off、int len)は、バイト配列Bの内容をJavaクラスに変換し、返された結果はjava.lang.classクラスのインスタンスです。この方法は最終と宣言されています。
Resolveclass(class <?> c)は、指定されたJavaクラスをリンクします。
Public class classloadertest extends classloader {public static void main(string [] args)throws seculityexception、nosuchmethodexception {// root classローダー、ロードされたコアクラスライブラリurl [] urls = sun.launcher.getboottrapclasspath()。 for(url u:urls){system.out.println(u); } //拡張クラスローダー、ロードされたシステムプロパティ:java.ext.dirs system.err.println( "extension classloader)Loader" + classsystemclassloader()。getParent()。 // Application(System Application ClassLoader)クラスローダー、ロードシステム環境変数パスまたはクラスパス//指定されたJARパッケージとClassPath System.Err.Println( "Application(System)class Loader" + classloader.getSystemClassLoader()); // system.out.println(system.getenv( "path")); // system.out.println(system.getenv( "classpath")); }}