国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

舉例講解Java的內部類與類的加載器

2019-11-26 14:28:00
字體:
來源:轉載
供稿:網友

內部類

class A {   //Inner1 要在 A 初始化后 才能使用,即要被A的對象所調用    class Inner1 {     int k = 0;     // static int j = 0; //A加載后,Inner1沒有加載,所以這個 靜態變量j 無法立即使用,報錯     final int z = 0;     /*static void say1() {      }*/     void say2() {            }    }   //Inner2 在A加載好后就可以使用了    static class Inner2 {     int k = 0;     static int j = 0;     final int z = 0;     static void say1() {      }     void say2() {            }   }   // 調用內部類   void c() {     final int x = 0;// final 修飾后,可以由局部內部類調用     new A().new Inner1();// 非靜態內部類Inner1,需要它所屬的類的對象調用     new A().new Inner1().say2();          A.Inner2.say1();     new A.Inner2().say2();// 非靜態方法say2(),需要它所屬的類的對象調用      class Inner3 {       void print() {         System.out.println(x);       }     }     /*      * 方法中的局部內部類的調用,需要在聲明后 因為,      * 在方法里的執行順序是 從上往下,而這個類      * 就相當于一個 局部 變量 當然 要先聲明,再使用      */     new Inner3().print();   }  } 

類的加載器 java.lang.ClassLoader
java.lang.ClassLoader 類的基本職責就是根據一個指定的類的名稱,找到或者生成其對應的字節代碼,然后從這些字節代碼中定義出一個 Java 類,即java.lang.Class 類的一個實例。除此之外,ClassLoader 還負責加載 Java 應用所需的資源,如圖像文件和配置文件等。不過本文只討論其加載類的功能。為了完成加載類的這個職責,ClassLoader 提供了一系列的方法:
getParent() 返回該類加載器的父類加載器。
loadClass(String name) 加載名稱為 name 的類,返回的結果是 java.lang.Class 類的實例。
findClass(String name) 查找名稱為 name 的類,返回的結果是 java.lang.Class 類的實例。
findLoadedClass(String name) 查找名稱為 name 的已經被加載過的類,返回的結果是 java.lang.Class 類的實例。
defineClass(String name, byte[] b, int off, int len) 把字節數組 b 中的內容轉換成 Java 類,返回的結果是 java.lang.Class 類的實例。這個方法被聲明為final 的。
resolveClass(Class<?> c) 鏈接指定的 Java 類。

public class ClassLoaderTest extends ClassLoader {   public static void main(String[] args) throws SecurityException, NoSuchMethodException {          // 根類加載器,加載的核心類庫      URL[] urls = sun.misc.Launcher.getBootstrapClassPath().getURLs();      for (URL u : urls) {      System.out.println(u);      }     // 擴展類 加載器,,加載的系統屬性:java.ext.dirs 返回的路徑下的 class     System.err.println("擴展類(extention classLoader)加載器"         + ClassLoader.getSystemClassLoader().getParent());//非繼承關系,只是意義上     System.out.println(System.getProperty("java.ext.dirs"));     // 應用(系統 application classLoader)類加載器,, 加載系統環境變量 PATH 或 CLASSPATH     // 指定的JAR包和類路徑     System.err.println("應用(系統)類加載器" + ClassLoader.getSystemClassLoader());     // System.out.println(System.getenv("PATH"));     // System.out.println(System.getenv("CLASSPATH")); } } 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 民乐县| 奉节县| 陆丰市| 循化| 丘北县| 夏津县| 营口市| 会昌县| 潢川县| 灵璧县| 清丰县| 昌吉市| 汽车| 凌云县| 高清| 马鞍山市| 青海省| 即墨市| 合水县| 康保县| 枣阳市| 宁晋县| 普兰县| 太白县| 武邑县| 武乡县| 临颍县| 荔波县| 平远县| 吉林市| 鄂托克旗| 阿克陶县| 永善县| 砀山县| 廉江市| 奉化市| 阿合奇县| 扶余县| 东海县| 上虞市| 大连市|