类的加载是由类加载器完成的,类加载器包括: 根加载器( BootStrap )、扩展加载器( Extension )、系统加载器( System )和用户自定义类加载器( java.lang.ClassLoader 的子类)。 从 Java 2 ( JDK 1.2 )开始,类加载过程采取了父亲委托机 ...
分类:
编程语言 时间:
2016-08-08 19:07:12
阅读次数:
128
在java中的API里,有两种方式来使用classpath读取资源。 1. Class的getResource() 2. ClassLoader的getResource() 但是两者有一定区别,运行以下程序: 得到输出为: 也就是: 1. 如果想获得classpath,使用以下方法: 2. 如果想获 ...
分类:
其他好文 时间:
2016-07-31 00:05:37
阅读次数:
226
正常情况下启动一个Activity,首先需要在AndroidManifest文件中声明,其次需要把该应用安装到手机系统中。
而插件apk是没有正在安装到手机系统中的,也就按照正常的启动流程插件Activity是不能启动的。另外插件apk的类需要加载进来是需要指定ClassLoader。前面的文章也大概讲过,当启动一个插件Activity时,先是用预定义的代理Activity替换目标Activity...
分类:
其他好文 时间:
2016-07-23 07:35:58
阅读次数:
421
大概在2015年10月底,QQ空间发了一篇叫《安卓App热补丁动态修复技术介绍》的文章,文章中提到为了能让Class进行热修复,其中一个条件就是防止类被打上CLASS_ISPREVERIFIED标记,具体的做法便是让一个Dex引用另一个Dex(hack.apk)中的空类(为了让业务无感知,需要在编译时动态注入字节码),并且在应用程序Application类起来的时候要加载这个hack.apk。也就是...
分类:
移动开发 时间:
2016-07-22 19:30:08
阅读次数:
302
一、文章来由来阿里玩Java也有一个多月了,一直对Java虚拟机比较感兴趣,而ClassLoader是整个class载入过程中很重要的组件。而classloader有个双亲委派模型,师兄说这个模型不能破坏,于是打赌一试。相信如果问:为什么要双亲委派,可能有人可以侃侃而谈,但是说到为什么要这么分层,为什么要分三层,如何绕过双亲委派模型。。。这就不是那么容易了,这个时候就需要一些专研了。二、classl...
分类:
其他好文 时间:
2016-07-19 18:59:18
阅读次数:
229
一、类加载器 类加载器(ClassLoader),顾名思义,即加载类的东西。在我们使用一个类之前,JVM需要先将该类的字节码文件(.class文件)从磁盘、网络或其他来源加载到内存中,并对字节码进行解析生成对应的Class对象,这就是类加载器的功能。我们可以利用类加载器,实现类的动态加载。 二、类的 ...
分类:
其他好文 时间:
2016-07-15 13:13:13
阅读次数:
146
选自:
【腾讯bugly干货分享】微信Android热补丁实践演进之路
各大热补丁方案分析和比较 继插件化后,热补丁技术在2015年开始爆发,目前已经是非常热门的Android开发技术。其中比较著名的有淘宝的Dexposed、支付宝的AndFix以及QZone的classloader超级热补丁方案。
为什么需要热补丁
热补丁:让应用能够在无需重新安装的情况实现更新,帮助应用快速建立动态修复能力...
分类:
其他好文 时间:
2016-07-13 17:52:42
阅读次数:
460
ps:热部署和热加载其实是两个类似但不同的概念,之前理解不深,so,这篇文章重构了下。一、热部署与热加载在应用运行的时升级软件,无需重新启动的方式有两种,热部署和热加载。对于Java应用程序来说,热部署就是在服务器运行时重新部署项目,热加载即在在运行时重新加载class,从而升级应用。二、实现原理热... ...
分类:
编程语言 时间:
2016-07-07 19:40:34
阅读次数:
344
本人在研究生阶段做JavaWeb开发时,当把项目发布到Tomcat上运行时,曾遇到过一个神奇的问题,这个问题由“CLassCastException”异常引起,当然这个异常很常见,其实我要说的神奇之处在于------我明明使用的是这个类本身new的对象,然后编译没有问题,但运行时却抛出这个异常。类似... ...
分类:
其他好文 时间:
2016-07-07 11:00:42
阅读次数:
133