当前位置: 首页 > news >正文

怎么做找券网站房产网二手房信息

怎么做找券网站,房产网二手房信息,南宁公司网站设计,网站建设青岛公司类的加载过程 先在方法区找class信息,有的话直接调用,没有的话则使用类加载器加载到方法区(静态成员放在静态区,非静态成功放在非静态区),静态代码块在类加载时自动执行代码,非静态的不执行;先父类后子类,…

类的加载过程

先在方法区找class信息,有的话直接调用,没有的话则使用类加载器加载到方法区(静态成员放在静态区,非静态成功放在非静态区),静态代码块在类加载时自动执行代码,非静态的不执行;先父类后子类,先静态后非静态;静态方法和非静态方法都是被动调用,即不调用就不执行。

在这里插入图片描述

public class LoadClassTest {public static void main(String[] args) {new Person();//静态代码块//构造代码块//无参Personnew Person("a",22);//静态代码块//构造代码块//有参PersonPerson.staticAction();//静态代码块//静态方法Person.id=1;//静态代码块Class c=Person.class;//无结果动态加载Class.forName("Person");//静态代码块ClassLoader cl =ClassLoader.getSystemClassLoader();Class.forName("com.example.fastjson122.demos.web.Person",true,cl);//初始化//静态代码块ClassLoader cl =ClassLoader.getSystemClassLoader();Class.forName("com.example.fastjson122.demos.web.Person",false,cl);//不初始化//无结果c.newInstance();//静态代码块//构造代码块//无参PersonClass<?>c=cl.loadClass("com.example.fastjson122.demos.web.Person");//不初始化的c.newInstance();//静态代码块//构造代码块//无参Person        }
}

类加载机制
1、类加载与反序列化
类加载的时候会执行代码
初始化:加载静态代码块
实例化:加载构造代码块、无参构造函数
2、动态类加载方法
Class.forname
初始化/不初始化
ClassLoader.loadClass不进行初始化
底层的原理,实现加载任意的类
ClassLoader(父类)->SecureClassLoader->URLClassLoader->AppClassLoader(继承关系)
(调用关系)loadClass->findClass(重写的方法)->defineClass(从字节码加载类)

public class LoadClassTest {public LoadClassTest() {}public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, MalformedURLException {ClassLoader cl =ClassLoader.getSystemClassLoader();URLClassLoader urlClassLoader = new URLClassLoader(new URL[]{new URL("file:///C:\\JAVA\\")});URLClassLoader urlClassLoader=new URLClassLoader(new URL[]{new URL("http://localhost:8080/")});URLClassLoader urlClassLoader=new URLClassLoader(new URL[]{new URL("jar:http://localhost:8080/Test2.jar/")});   URLClassLoader urlClassLoader=new URLClassLoader(new URL[]{new URL("jar:file://D:\\tmp\\classes\\Test2.jar/")});Class<?> c = urlClassLoader.loadClass("Test2");c.newInstance();Method defineClassMethod = ClassLoader.class.getDeclaredMethod("defineClass",String.class,byte[].class,int.class,int.class);defineClassMethod.setAccessible(true);byte[] code= Files.readAllBytes(Paths.get("D:\\tmp\\classes\\Test2.class"));Class c=(Class) defineClassMethod.invoke(cl,"Test",code,0,code.length);c.newInstance();}
}

一下两个类是反序列化中常用的两个类都调用了defineClass
在这里插入图片描述
漏洞利用
URLClassLoader 任意类加载:file/http/jar
ClassLoder.defineClass字节码加载任意类 私有(好用,常用)
Unsafe.defineClass 字节码加载 public 类不能直接生成 Spring里可以直接生成

http://www.dtcms.com/a/417263.html

相关文章:

  • 成品网站能用吗wordpress d压缩
  • 推广的网站需要备案吗小型网站建设步骤
  • 广州建站快车vps 安装wordpress
  • 常州钟楼区邹区建设局网站知名做网站公司
  • 网页制作哪家服务好宁波网站关键词优化排名
  • 各地城乡建设网站更新wordpress移动端代码
  • 网站的构建一般要多久政务网站建设经验交流发言
  • 哈尔滨精致网站建设湖南网站建设网
  • 如何上传程序到网站空间长沙建设银行招聘网站
  • .net商城网站模板下载景区网站建设的意义
  • 广州网站设计易企建站网站建设需要摊销几年
  • php学校网站系统成都顶呱呱网站建设
  • 站长之家商城太原建设网站制作
  • 自己的网站怎么开微站是什么东西
  • 网上书城网站建设目的自己服务器做网站如何备案
  • 北京建设教育协会的网站wordpress修改插件路径
  • 网站做后台产品内页设计
  • 广州市建设工程造价站网站小浣熊做单网站
  • 网站建设选择题题库制作一个网站的基本步骤
  • 网站建设最难的部分电影vip网站建设步骤
  • 宁波网络建站海拉尔建网站
  • 复兴网站制作文章页模板wordpress
  • 怎么通过做网站来赚钱设计网站教程
  • 学校网站建设运行简介手机网站源码 html5
  • 南京建行网站专业的网站开发公司电话
  • 杭州设计 公司 网站建设报名系统
  • php网站开发开题报告如果做二手车网站
  • 深圳网站建设的客户在哪里上海网站群建设
  • 广州协会网站建设网页游戏排行榜逃
  • 公共资源交易中心网站建设汇报做网站维护的人叫啥