0%

预防针先打着,这篇文章我准备搬大部分,不要骂我

参考链接:
深入理解Java类加载器(ClassLoader)
Java类加载机制
深入理解Java类加载

Class类

没有条理,只做记录

Java程序运行时,系统一直对所有的对象进行这所谓的运行时类型标识。这项信息记录了每个对象所属的类。虚拟机通常使用该信息去选择正确的对象与方法执行,而用来保存这些类型信息的类就是Class类。Class封装一个对象和接口运行时的状态,当加载一个类的时候,Class类的对象就被创建了,也就是说,一个Class类的对象封装了一个类的类型信息,可以通过该对该对象的操作来实现对类的操作,这就是反射的原理。
既然Class类的对象封装了一个类的信息,这些信息一般包括类名、实现的接口、父类、成员方法、成员变量、注解等信息,也就是说,我们可以操作这些信息。
Class类的每一个实例都代表着一个运行中的类
Class类没有公有的构造方法,这也就意味着其不能通过new的方式来创建一个实例,Class类的对象是由jvm来创建的。
同时需要知道在JVM中,每个类只有唯一的一个Class对象,而标识一个唯一的类是通过他的完全限定名以及加载他的类加载器。在运行程序的时候,JVM首先会在缓存中判断当前类是不是已经被加载了,也就是findLoadedClass方法。如果没有加载,然后会将加载的权限交给当前类加载器的父类加载器加载,父类加载器会继续向上递交加载权限,知道某一级加载器的父类为null之后,该类的加载权限会被交给启动类加载器,启动类加载器如果不能加载该类,则向下一次按相反的顺序移交加载权限,直到某一级成功加载该类,这就是java的双亲委派机制,下面我们会从代码层面观察该机制。类加载器加载类是通过loadClass方法实现的。在loadClass方法中类加载最下层调用了一个称为findClass的方法,该方法实现了将class文件加载到内存,然后再通过defineClass方法将字节码转换为一个java Class对象。
我们可以通过下面演示的集中方式获得一个Class对象

阅读全文 »

@TOC

申明:本文只做学习交流使用,严禁任何组织和个人通过转发、转载等方式进行传播,因此导致的法律后果与本文作者无关。

小菜鸡昨晚正在积极进补雷神大大的课程的时候:
在这里插入图片描述
老板的消息划破了寂静的夜空,也打断了我学习的脚步:
在这里插入图片描述
按照我的尿性,这种时候我肯定偷偷装死没跑了。
不过这个漏洞还是引起了我的兴趣,毕竟热度就那么多,蹭一蹭就没有了,我肯定也要蹭一蹭了。于是在昨晚瞎整了一晚上没结果后,今天上班的时候划水就把这整个利用过程给跑通了…..
果然上班划水才是生产力啊。

阅读全文 »

检查网站是否开启了pjax
查看主题配置文件,搜索关键字pjax
如果pjax的值为true,则证明开启了,此时若要使得内嵌js在每次访问时都能够执行在js标签上添加data-pjax 属性即可

1
2
3
4
<script data-pjax type="text/javascript">
xxxx
</script>