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

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

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"));
}
}

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久中文字幕无线观看 | 国产3p绿奴在线视频 | 免费在线观看日本 | 秋霞在线一级 | 国产精品视频一区二区三区 | 免费抽搐一进一出印度 | 国产无限免费观看黄网站 | ady成人映画网站官网 | 三星w699 | 日本一区二区在线不卡 | 欧美在线视频一区二区 | 顶级欧美做受xxx000大乳 | 精品久久成人免费第三区 | 喜爱夜蒲2三级做爰 | 久久精品观看影院2828 | 99在线免费视频 | 国产精品成人网红女主播 | 国产动作大片 | 精品suv一区二区三区 | 国产精品99爱免费视频 | 欧美亚洲另类在线观看 | 青草娱乐极品免费视频 | 亚洲精品www久久久久久久软件 | 无码天堂亚洲国产AV久久 | 亚洲精品一区二区久久久久 | 国产福利不卡一区二区三区 | 99视频一区 | 欧美国产日本高清不卡 | 99精品视频只99有精品 | 特级www| 亚洲国产精品久久精品怡红院 | 成人国产第一区在线观看 | bbc japanese黑人强行 | 亚洲精品久久中文字幕 | 色婷婷综合缴情综六月 | 免费一级欧美片在线观免看 | 国产精品久久现线拍久青草 | 国产绳艺在线播放 | 日本h乱淫动漫在线观看 | 青草久久伊人 | 欧美福利二区 |