摘要:知識點總結反射介紹知識點總結反射反射程序在運行狀態中,可以動態加載一個只有名稱的類動態調用類的所有屬性和方法加載完類之后,在堆內存中,就產生了一個類型的對象一個類只有一個對象。
Java知識點總結(反射-介紹)
@(Java知識點總結)[Java, 反射]
反射程序在 運行狀態中 ,可以動態加載一個只有名稱的類 (動態調用類的所有屬性和方法)
Class c = Class.forName("com..test.User");
加載完類之后,在堆內存中,就產生了一個 Class 類型的對象(一個類只有一個 Class 對象)。
這個對象就包含了完整的類的結構信息,通過這個對象我們可以看到類的結構。這個對象就像一面鏡子,透過這個鏡子看到類 的結構,所以,我們形象的稱之為:反射。
反射的常見作用:
動態加載類、動態獲取類的信息(屬性、方法、構造器)
動態構造對象
動態調用類和對象的任意方法、構造器
動態調用和處理屬性
獲取泛型信息
處理注解
示例:
public class Test01 { // 一個類只對應一個 Class 對象 private static void test1() throws ClassNotFoundException { String path = "com.gs.Student"; Class clazz1 = Class.forName(path); Class clazz2 = Class.forName(path); System.out.println(clazz1.hashCode()); System.out.println(clazz2.hashCode()); /*366712642 366712642*/ } // 數組類類型 private static void test2() { Class intClazz =int.class; int[] arr01 = new int[10]; int[] arr02 = new int[30]; int[][] arr03 = new int[30][3]; double[] arr04 = new double[10]; System.out.println(intClazz.hashCode()); //1829164700 System.out.println(arr01.getClass().hashCode()); //2018699554 System.out.println(arr02.getClass().hashCode()); //2018699554 // arr01 == arr02 都是一維同一類型的對象 System.out.println(arr03.getClass().hashCode()); //1311053135 System.out.println(arr04.getClass().hashCode()); //118352462 } // 獲取類的類型 private static void test3() { String path = "com.gs.Student"; Class strClazz = path.getClass(); //對象獲取類的類型 Class strClazz2 = String.class; //類獲取類的類型 System.out.println(strClazz == strClazz2); //true } public static void main(String[] args) { try { test1(); } catch (ClassNotFoundException e) { e.printStackTrace(); } test2(); test3(); } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/71586.html
摘要:知識點總結動態字節碼操作介紹知識點總結動態字節碼操作運行時操作字節碼可以讓我們實現如下功能動態生成新的類動態改變某個類的結構添加刪除修改新的屬性方法常見的字節碼操作類庫,這是的項目的一部分。 Java知識點總結(動態字節碼操作-Javassist介紹) @(Java知識點總結)[Java, 動態字節碼操作] 運行時操作字節碼可以讓我們實現如下功能: 動態生成新的類 動態改變某個類的結...
摘要:本文是作者自己對中線程的狀態線程間協作相關使用的理解與總結,不對之處,望指出,共勉。當中的的數目而不是已占用的位置數大于集合番一文通版集合番一文通版垃圾回收機制講得很透徹,深入淺出。 一小時搞明白自定義注解 Annotation(注解)就是 Java 提供了一種元程序中的元素關聯任何信息和著任何元數據(metadata)的途徑和方法。Annotion(注解) 是一個接口,程序可以通過...
摘要:哪吒社區技能樹打卡打卡貼函數式接口簡介領域優質創作者哪吒公眾號作者架構師奮斗者掃描主頁左側二維碼,加入群聊,一起學習一起進步歡迎點贊收藏留言前情提要無意間聽到領導們的談話,現在公司的現狀是碼農太多,但能獨立帶隊的人太少,簡而言之,不缺干 ? 哪吒社區Java技能樹打卡?【打卡貼 day2...
摘要:知識點總結反射反射機制性能問題知識點總結反射性能相關注意點啟用和禁用訪問安全檢查的開關值為則指示反射的對象在使用時應該取消語言訪問檢查。并不是為就能訪問為就不能訪問。禁止安全檢查,可以提高反射的運行速度。 Java知識點總結(反射-反射機制性能問題) @(Java知識點總結)[Java, 反射] 性能相關注意點: setAccessible 啟用和禁用訪問安全檢查的開關,值為 tru...
摘要:知識點總結反射通過反射操作類的屬性和方法知識點總結反射使用反射操作類的屬性和方法通過反射調用構造方法,構造對象其實調用無參構造器張三調用有參構造器李四通過反射調用普通方法獲取方法激活方法王武王武通過反射操作屬性是屬性,如果不寫會這個私有屬 Java知識點總結(反射-通過反射操作類的屬性和方法 ) @(Java知識點總結)[Java, 反射] 使用反射操作類的屬性和方法: import ...
閱讀 1113·2021-09-22 15:37
閱讀 1138·2021-09-13 10:27
閱讀 2479·2021-08-25 09:38
閱讀 2453·2019-08-26 11:42
閱讀 1535·2019-08-26 11:39
閱讀 1563·2019-08-26 10:58
閱讀 2326·2019-08-26 10:56
閱讀 2575·2019-08-23 18:08