class文件查看安卓版 class文件怎么打开乱码

多条告白如次剧本只需引入一次
JVM系列条记目次
假造机的普通观念class文献构造class文献加载进程jvm外存模子JVM常用训令GC与调优
Class文献加载进程
JVM加载Class文献重要分3个进程:Loading 、Linking、Initialzing
1.Loading
Loading的进程即是经过类加载器将.class文献加载到jvm外存中进程 。须要领会双亲萎任体制、类加载器ClassLoader,加载进程如次 。
ClassLoader
【class文件查看安卓版class文件怎么打开乱码】各别的类加载器加载范畴不一律,以Java第88中学的为例 。
BootClassLoader 加载范畴sun.boot.class.pahtExtClassLoader 加载范畴java.ext.dirsAppClassLoader 加载范畴java.class.pathCustomClassLoader 可自设置加载范畴
前三个加载器来自JDK的Launcher类,三个ClassLoader动作Launcher的里面类,感爱好不妨察看下源码 。
?
开拓者也不妨自设置的ClassLoader,自设置记录范畴 。
双亲萎任体制
自底进取查看该类能否仍旧加载,parent目标;自顶向下举行类的本质搜索和加载,child目标 。类的加载按照双亲萎任体制,主假如出于安定的商量 。双亲萎任体制是怎样实行的,底下源码会证明 。
? 提防:双亲萎任中生存所谓的父加载器并不是加载器的加载器,不过翻译的题目,别污染了类的接受观念 。
ClassLoader源码
?
ClassLoader源码中比拟要害的一个因变量是loadClass(),实行进程是:findLoadedClass()->parrent.loadClass()->findClass(),之一步是自底进取查问能否仍旧加载,第二步是自顶向下搜索加载类 。这边就规则或是说实行了双亲萎任体制 。精细见ClassLoader的源码 。
自设置ClassLoader
怎样自设置ClassLoader?不妨接受ClassLoader类,从新本人的findClass(),在内里挪用defineClass()来实行自设置加载一定范畴的类 。
怎样冲破双亲萎任体制,哪种景象下冲破过?
从上头的ClassLoader源码中大约能看出是怎样实行了双亲萎任体制的,从这动手不妨经过2种办法冲破该体制:
super(parent)指定parent会冲破该体制自设置ClassLoader重写loadClass()也不妨冲破
何时冲破过?双亲萎任体制并不是不许冲破,某些特出场景下也会采用冲破该体制 。
JDK 1.2之前,自设置ClassLoader必需重写loadClass(),冲破过 。线程ThreadContextClassLoader不妨实行普通类挪用实行类代码,经过thread.setContextClassLoader指定 。热启用热安置,如tomcat都有本人模块指定的classloader,不妨加载同一类库的各别本子 。
Class实行办法
Class实行办法分为3种:证明实行、编写翻译实行、搀和实行,各有优缺陷,可经过参数指定 。
1.证明实行:运用bytecode intepreter 证明器证明实行,该形式启用很快,实行稍慢,可经过-Xint参数指定该形式 。2.编写翻译实行:运用 Just in time Complier JIT编写翻译器编写翻译实行?

    推荐阅读