一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - 舉例講解Java的內部類與類的加載器

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

2020-04-14 11:35匆忙擁擠repeat JAVA教程

這篇文章主要介紹了Java的內部類與類的加載器,是Java入門學習中的基礎知識,需要的朋友可以參考下

內部

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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 類。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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"));
}
}

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲视频免费在线观看 | 欧美在线看片a免费观看 | 99久久香蕉国产综合影院 | 2022国产麻豆剧传媒古装 | 免费精品一区二区三区在线观看 | 日本一本二本三区免费 | 天天操网| 精品视频一区在线观看 | 情侣奴伺候女王第2部分小说 | 91制片厂制作传媒网站破解 | 不知火舞被c视频在线播放 不卡一区二区三区卡 | 亚洲欧美一区二区三区在饯 | 99久久精品免费看国产四区 | 狠狠干2016 | 欧美久久久久久 | 久久偷拍免费2017 | 国产亚洲精aa在线观看香蕉 | 四虎 2022 永久网站 | 亚洲精品人成网在线播放影院 | 姐姐不~不可以动漫在线观看 | 欧美视频在线一区 | 男女激情视频1000辣妞范 | 青青草国产一区二区三区 | 日韩一级片在线免费观看 | 免费观看在线aa | 亚洲 欧美 国产 在线 日韩 | 亚洲黄色三级视频 | 好姑娘在线观看完整版免费 | 亚洲精品国产精麻豆久久99 | 好妈妈7在线观看高清 | 亚洲欧美日韩成人一区在线 | 美女和男生搞基 | 无限资源在线观看8 | 亚洲一区二区三区福利在线 | 国产短视频精品一区二区三区 | 国产亚洲精品第一综合另类 | 青草视频免费 | 色噜噜狠狠狠综合曰曰曰88av | 我在厨房摸岳的乳HD在线观看 | 亚洲成人一区在线 | 国产视频在线一区 |