findClass它們有什么區別?
loadClass();是加載 類名.class 字節碼文件的工具 findClass();是類加載器在JVM內部實現查找指定路徑下的 . class 文件的機制,BootStrap ,ExtClassLoader,AppClassLoader,按照這個順序查找,有就給JVM加載,沒有就往下找, 在基礎加強里,張老師 就是復寫了該方法,將指定目錄下的字節碼文件,通過byteArrayOutputStream 解密后的字節碼文件,給JVM 去加載,實現解密的過程 defineClass();是將你定義的字節碼文件經過字節數組流解密之后,將該字節流數組生成字節碼文件,也就是該類的 文件的類名.class, 注意一點,視頻里用的是過時的方法,defineClass( byte[] b ,0, b.length) ,這樣生成的字節碼就是默認的字節碼文件。 他的替代方法是 defineClass(String name , byte[] b , 0, b.length ),聲明時,name 是指定該類名,這里的類名是指包含它所屬的 包名+類名