Java中反射的概述及瞭解ClassLoader
反射的概述
1.本章的主要內容
①、理解Class類並獲取Class例項
②、建立執行時類的物件
③、呼叫執行時類的指定結構
2.關於反射的理解
框架 = 反射 + 註解 + 設計模式。
3.體會反射機制的“動態性”
是一類在執行時可以改變其結構的語言:例如新的函式、物件、甚至程式碼可以 被引進,已有的函式可以被刪除或是其他結構上的變化。通俗點說就是在執行時程式碼可以根據某些條件改變自身結構。
舉例:
public Object getInstance(String classPath) throws Exception {
Class clazz = Class.forName(classPath);
return clazz.newInstance();
}
public void test2(){
for (int i = 0; i < 50; i++) {
int num = new Random().nextInt(3);//0 1 2
String pathName = "";
switch(num){
case 0:
pathName = "java.util.Date";
break;
case 1:
pathName = "java.lang.Object";
break;
case 2:
pathName = "loey.java.Person";
break;
}
try {
Object obj = getInstance(pathName);
System.out.println(obj);
} catch (Exception e) {
e.printStackTrace();
}
}
}
4.反射機制能提供的功能
- 在執行時判斷任意一個物件所屬的類
- 在執行時構造任意一個類的物件
- 在執行時判斷任意一個類所具有的成員變數和方法
- 在執行時獲取泛型資訊
- 在執行時呼叫任意一個物件的成員變數和方法
- 在執行時處理註解
- 生成動態代理
5.相關API
- java.lang.Class:代表一個類
- java.lang.reflect.Method:代表類的方法
- java.lang.reflect.Field:代表類的成員變數
- java.lang.reflect.Constructor:代表類的構造器
… …
ClassLoader
1.類的載入過程----瞭解
2.類的載入器的作用
3.類的載入器的分類
4.Java類編譯、執行的執行的流程
5.使用Classloader載入src目錄下的配置檔案
Properties pros = new Properties();
//此時的檔案預設在當前的module下。
//讀取配置檔案的方式一:
// FileInputStream fis = new FileInputStream("jdbc.properties");
// FileInputStream fis = new FileInputStream("src\\jdbc1.properties");
// pros.load(fis);
//讀取配置檔案的方式二:使用ClassLoader
//配置檔案預設識別為:當前module的src下
// 關於類載入器的一個主要方法:getResourceAsStream(String str):獲取類路 徑下的指定檔案的輸入流
ClassLoader classLoader = ClassLoaderTest.class.getClassLoader();
InputStream is = classLoader.getResourceAsStream("jdbc.properties");
pros.load(is);
String user = pros.getProperty("user");
String password = pros.getProperty("password");
System.out.println("user = " + user + ",password = " + password);
相關文章
- 瞭解 JAVA classloaderJava
- 瞭解 JAVA classloader (轉)Java
- Java反射—方法的反射、深入瞭解泛型Java反射泛型
- 你瞭解Java反射嗎?Java反射
- 一篇瞭解Java反射Java反射
- Android解析ClassLoader(一)Java中的ClassLoaderAndroidJava
- JAVA中的反射機制詳解Java反射
- 一文帶你瞭解Java反射機制Java反射
- Java——深入瞭解Java中的迭代器Java
- Facebook Componentkit 概況瞭解
- Java 中 this 和 super 的用法概述及異同Java
- Java安全基礎之Java反射機制和ClassLoader類載入機制Java反射
- 一看你就懂,超詳細 java 中的 ClassLoader 詳解Java
- 淺談java中的反射Java反射
- Java 中的 反射機制Java反射
- java反射詳解Java反射
- java反射全解Java反射
- Java 反射詳解Java反射
- Java反射-註解Java反射
- java註解,反射Java反射
- java反射簡解Java反射
- 你必須瞭解的反射——反射來實現實體驗證反射
- Java中的類反射機制Java反射
- Java註解與反射的使用Java反射
- 【JAVA】ClassLoader原理Java
- Java反射與註解Java反射
- Java 註解和反射Java反射
- java反射詳解(轉)Java反射
- java反射案例講解Java反射
- Java註解和反射Java反射
- Android解析ClassLoader(二)Android中的ClassLoaderAndroid
- Java程式設計:一步步教你如何深入瞭解神秘的Java反射機制Java程式設計反射
- Android中的ClassLoaderAndroid
- 關於Java中的反射機制Java反射
- java中的反射機制淺析Java反射
- Java基礎—ClassLoader的理解Java
- 兩分鐘瞭解Java中volatile!Java
- 深入理解Java ClassLoader及在 JavaAgent 中的應用Java