摘要:知識(shí)點(diǎn)總結(jié)反射反射機(jī)制性能問(wèn)題知識(shí)點(diǎn)總結(jié)反射性能相關(guān)注意點(diǎn)啟用和禁用訪問(wèn)安全檢查的開(kāi)關(guān)值為則指示反射的對(duì)象在使用時(shí)應(yīng)該取消語(yǔ)言訪問(wèn)檢查。并不是為就能訪問(wèn)為就不能訪問(wèn)。禁止安全檢查,可以提高反射的運(yùn)行速度。
Java知識(shí)點(diǎn)總結(jié)(反射-反射機(jī)制性能問(wèn)題)
@(Java知識(shí)點(diǎn)總結(jié))[Java, 反射]
性能相關(guān)注意點(diǎn):
setAccessible
啟用和禁用訪問(wèn)安全檢查的開(kāi)關(guān),值為 true 則指示反射的對(duì)象在使用時(shí)應(yīng)該取消 Java 語(yǔ)言訪問(wèn)檢查。值為 false 則指示反射的對(duì)象應(yīng)該實(shí)施 Java 語(yǔ)言訪問(wèn)檢查。__并不是為true就能訪問(wèn)為false就不能訪問(wèn)__。
禁止安全檢查,可以提高反射的運(yùn)行速度。
可以考慮使用:cglib/javaassist字節(jié)碼操作
測(cè)試示例:
import java.lang.reflect.Method; /** * 反射性能測(cè)試 * @author Administrator * */ public class Test05 { public static void test1(){ Student student = new Student(); long startTime = System.currentTimeMillis(); for (int i = 0; i < 1000000000; i++) { student.setName("張三"); } long endTime = System.currentTimeMillis (); System.out.printf("調(diào)用普通方法,執(zhí)行1億次,耗時(shí)%dms ",endTime-startTime); } public static void test2(){ try { Student student = new Student(); Method m = student.getClass().getMethod("setName", String.class); long startTime = System.currentTimeMillis(); for (int i = 0; i < 1000000000; i++) { m.invoke(student,"張三"); } long endTime = System.currentTimeMillis(); System.out.printf("調(diào)用反射方法,執(zhí)行1億次,耗時(shí)%dms ",endTime-startTime); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { test1(); //41ms test2(); //1826ms } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/71576.html
摘要:哪吒社區(qū)技能樹(shù)打卡打卡貼函數(shù)式接口簡(jiǎn)介領(lǐng)域優(yōu)質(zhì)創(chuàng)作者哪吒公眾號(hào)作者架構(gòu)師奮斗者掃描主頁(yè)左側(cè)二維碼,加入群聊,一起學(xué)習(xí)一起進(jìn)步歡迎點(diǎn)贊收藏留言前情提要無(wú)意間聽(tīng)到領(lǐng)導(dǎo)們的談話,現(xiàn)在公司的現(xiàn)狀是碼農(nóng)太多,但能獨(dú)立帶隊(duì)的人太少,簡(jiǎn)而言之,不缺干 ? 哪吒社區(qū)Java技能樹(shù)打卡?【打卡貼 day2...
摘要:與都繼承自類,在中也是使用字符數(shù)組保存字符串,,這兩種對(duì)象都是可變的。采用字節(jié)碼的好處語(yǔ)言通過(guò)字節(jié)碼的方式,在一定程度上解決了傳統(tǒng)解釋型語(yǔ)言執(zhí)行效率低的問(wèn)題,同時(shí)又保留了解釋型語(yǔ)言可移植的特點(diǎn)。 String和StringBuffer、StringBuilder的區(qū)別是什么?String為什么是不可變的? String和StringBuffer、StringBuilder的區(qū)別 可變性...
摘要:本文是作者自己對(duì)中線程的狀態(tài)線程間協(xié)作相關(guān)使用的理解與總結(jié),不對(duì)之處,望指出,共勉。當(dāng)中的的數(shù)目而不是已占用的位置數(shù)大于集合番一文通版集合番一文通版垃圾回收機(jī)制講得很透徹,深入淺出。 一小時(shí)搞明白自定義注解 Annotation(注解)就是 Java 提供了一種元程序中的元素關(guān)聯(lián)任何信息和著任何元數(shù)據(jù)(metadata)的途徑和方法。Annotion(注解) 是一個(gè)接口,程序可以通過(guò)...
摘要:通過(guò)反射獲取帶參無(wú)返回值成員方法并使用設(shè)置安全檢查,訪問(wèn)私有構(gòu)造函數(shù)必須創(chuàng)建實(shí)例這種不行,注意和方法需要傳遞參數(shù)測(cè)試復(fù)制這個(gè)功能獲取私有方法,同樣注意和的區(qū)別賦予訪問(wèn)權(quán)限調(diào)用方法。 反射 目錄介紹 1.反射概述 1.1 反射概述 1.2 獲取class文件對(duì)象的三種方式 1.3 反射常用的方法介紹 1.4 反射的定義 1.5 反射的組成 1.6 反射的作用有哪些 2.反射的...
摘要:知識(shí)點(diǎn)總結(jié)反射反射操作泛型知識(shí)點(diǎn)總結(jié)反射采用泛型擦除的機(jī)制來(lái)引入泛型。中的泛型僅僅是給編譯器使用的,確保數(shù)據(jù)的安全性和免去強(qiáng)制類型轉(zhuǎn)換的麻煩。 Java知識(shí)點(diǎn)總結(jié)(反射-反射操作泛型) @(Java知識(shí)點(diǎn)總結(jié))[Java, 反射] Java采用泛型擦除的機(jī)制來(lái)引入泛型。Java中的泛型僅僅是給編譯器javac使用的, 確保數(shù)據(jù)的安全性和免去強(qiáng)制類型轉(zhuǎn)換的麻煩 。但是,__一旦編譯完成,...
閱讀 3346·2023-04-26 01:31
閱讀 1965·2023-04-25 22:08
閱讀 3625·2021-09-01 11:42
閱讀 2891·2019-08-30 12:58
閱讀 2253·2019-08-29 18:31
閱讀 2493·2019-08-29 17:18
閱讀 3121·2019-08-29 13:01
閱讀 2618·2019-08-28 18:22