1. 程式人生 > >java反射系列三之類加載器

java反射系列三之類加載器

int img print png exception src 讀取 ins span

一.概念認知

技術分享圖片

技術分享圖片


二.代碼示例

package reflect;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class ClassLoaders {
    public static void main(String[] args) throws ClassNotFoundException, IOException {
        ClassLoaders c = new ClassLoaders();
        c.test();
    }
    
public void test() throws ClassNotFoundException, IOException{ //getSystemClassLoader()返回用於委派的系統類加載器。 ClassLoader loader1 = ClassLoader.getSystemClassLoader(); System.out.println(loader1); //getParent()返回父類加載器進行委派 ClassLoader loader2 = loader1.getParent(); System.out.println(loader2);
//引導類加載器無法獲得 ClassLoader loader3 = loader2.getParent(); System.out.println(loader3); //getClassLoader()返回類的類加載器。 Class clazz1 = Person.class; ClassLoader loader4 = clazz1.getClassLoader(); System.out.println(loader4); //由於Object和String是核心類,由最頂層的引導類加載器加載,故無法獲得
String className = "java.lang.Object"; Class clazz2 = Class.forName(className); ClassLoader loader5 = clazz2.getClassLoader(); System.out.println(loader5); //掌握 //this代表這個方法,getclass就能得到所屬的類,接著得到加載此類的類加載器 ClassLoader loader = this.getClass().getClassLoader(); //getResourceAsStream(String name)返回用於讀取指定資源的輸入流。 InputStream is = loader.getResourceAsStream("reflect\\可壞.txt"); Properties pros = new Properties(); //load(InputStream inStream)從輸入字節流讀取屬性列表(鍵和元素對)。 pros.load(is); //getProperty(String key)使用此屬性列表中指定的鍵搜索屬性。 String name = pros.getProperty("user"); System.out.println(name); String password = pros.getProperty("password"); System.out.println(password); } }

技術分享圖片

寫給自己看的,方法不懂查api文檔啦

java反射系列三之類加載器