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

中企动力大连公司咋样徐州seo推广

中企动力大连公司咋样,徐州seo推广,舆情分析招聘,网站做点击收费Javassist讲解1(介绍,读写字节码) 介绍一、读写字节码1.如何创建新的类2.类冻结 介绍 javassist 使Java字节码操作变得简单,它是一个用于在Java中编辑字节码的类库; 它使Java程序能够在运行时定义一个新类,…

Javassist讲解1(介绍,读写字节码)

  • 介绍
  • 一、读写字节码
    • 1.如何创建新的类
    • 2.类冻结


介绍

    javassist 使Java字节码操作变得简单,它是一个用于在Java中编辑字节码的类库;

    它使Java程序能够在运行时定义一个新类,并在JVM加载类文件时对其进行修改

    与其他类似的字节码编辑器不同,javassist提供了两个级别的API:

    源代码级别和字节码级别

    如果用户使用源级API,他们可以在不了解Java字节码规范的情况下编辑类文件。整个API仅使用Java语言的词汇设计,甚至可以以源代码的形式指定插入的字节码,Javassist会即时的进行编译。

    另一方面,字节级API允许用户像其他编辑器一样直接编辑类文件



一、读写字节码

    javassist是一个用于处理Java的字节码的类库。Java字节码存储在成为类文件的二进制文件中。每个类文件都包含一个Java类或接口

	//获取Class池ClassPool pool = ClassPool.getDefault();//获取CtClassCtClass cc = pool.get("net.mooctest.Yest");//修改字节码cc.setSuperclass(pool.get("net.mooctest.YestFather"));//输出字节码cc.writeFile("D:\\桌面\\pair\\PairHeap2\\result1666497514964\\target\\classes");

  • 首先获取一个ClassPool对象,该对象控制使用Javassist修改字节码,ClassPool是一个表示类文件的对象容器
  • ClassPool 是本质一个CtClass 对象的map,使用类名作为键,调用get方法,搜索整个ClassPool,如果没有找到对应的对象,就新构造一个CtClass类对象,该对象被记录在map中,但是注意,这里说得是加载的对象,如果类名对应类不存在,会抛出异常
  • 获取到ClassPool对象后,就可以进行修改,这里的话讲其父类修改为了BaseObj,然后是cc.writeFile(),可以将修改后的字节码进行保存,也可以直接通过toBytecode()获取字节码

最后看到Class文件中可以发现本来没有继承的Yest类成功继承了YestFather类


在这里插入图片描述

1.如何创建新的类

  • ClassPool的makeClass方法可以帮助我们定义一个新的不存在的类
  • 但是makeClass()不能创建接口,创建接口需要调用makeInterface方法

	ClassPool pool = ClassPool.getDefault();CtClass cc = pool.makeClass("net.mooctest.NewClass");cc.writeFile("D:\\桌面\\pair\\PairHeap2\\result1666497514964\\target\\classes");

可以看到成功创建了一个NewClass类

在这里插入图片描述

2.类冻结

  • 执行了writeFile 或者 toBytecode() 等输出字节码的方法之后,CtClass就处于了冻结的状态,在此状态下不允许修改。

	ClassPool pool = ClassPool.getDefault();CtClass cc = pool.makeClass("net.mooctest.Yest");cc.writeFile("D:\\桌面\\pair\\PairHeap2\\result1666497514964\\target\\classes");cc.setSuperclass(pool.get("net.mooctest.YestFather"));如果在输出之后修改再次修改:>>>>>>>>Exception in thread "main" java.lang.RuntimeException:net.mooctest.Yest class is frozen

  • CtClass 调用 defrost 可以解冻,变为可修改的状态
  • 当 ClassPool.doPruning 属性设置为 true 的时候 ,冻结的类不能再次被解冻

	ClassPool pool = ClassPool.getDefault();ClassPool.doPruning = true;调用解冻会提示:dofrost(): net.mooctest.Yest was pruned

  • doPruning 属性设置为 true ,某一个特定类需要解冻的时候,可以提前调用,这样就不会报错

	CtClass cc = pool.makeClass("net.mooctest.Yest");cc.stopPruning(true);


文章转载自:
http://dinncoabelmosk.bpmz.cn
http://dinncoriproarious.bpmz.cn
http://dinncokmps.bpmz.cn
http://dinncogobi.bpmz.cn
http://dinncohaematocryal.bpmz.cn
http://dinncohaemoglobinometry.bpmz.cn
http://dinncoisoproterenol.bpmz.cn
http://dinncophonation.bpmz.cn
http://dinncodogmatic.bpmz.cn
http://dinncoparamilitarism.bpmz.cn
http://dinncophotobiotic.bpmz.cn
http://dinncotundzha.bpmz.cn
http://dinncoreligiopolitical.bpmz.cn
http://dinncophasedown.bpmz.cn
http://dinncomissile.bpmz.cn
http://dinncopentomic.bpmz.cn
http://dinncothirteen.bpmz.cn
http://dinncovortical.bpmz.cn
http://dinncodistraught.bpmz.cn
http://dinncomeliorate.bpmz.cn
http://dinncoservohydraulic.bpmz.cn
http://dinncoraaf.bpmz.cn
http://dinncoreengine.bpmz.cn
http://dinncogibli.bpmz.cn
http://dinncojowett.bpmz.cn
http://dinncosuperinfection.bpmz.cn
http://dinncofactorization.bpmz.cn
http://dinncocryptanalyst.bpmz.cn
http://dinncocla.bpmz.cn
http://dinncofaintness.bpmz.cn
http://dinncostackyard.bpmz.cn
http://dinncoreductivism.bpmz.cn
http://dinncoperry.bpmz.cn
http://dinncounderlayer.bpmz.cn
http://dinncosowback.bpmz.cn
http://dinncoiiion.bpmz.cn
http://dinncopatelliform.bpmz.cn
http://dinncosaddlebag.bpmz.cn
http://dinncoseleniferous.bpmz.cn
http://dinncoextasy.bpmz.cn
http://dinncovelocipede.bpmz.cn
http://dinncomokpo.bpmz.cn
http://dinncojuridical.bpmz.cn
http://dinncoaffect.bpmz.cn
http://dinncomacrodont.bpmz.cn
http://dinncodowse.bpmz.cn
http://dinncocompensable.bpmz.cn
http://dinncojibboom.bpmz.cn
http://dinncoepigastric.bpmz.cn
http://dinncocrisis.bpmz.cn
http://dinncodepressomotor.bpmz.cn
http://dinncominelayer.bpmz.cn
http://dinncomatch.bpmz.cn
http://dinncopentathlon.bpmz.cn
http://dinncobolshevik.bpmz.cn
http://dinncopronged.bpmz.cn
http://dinncohelping.bpmz.cn
http://dinncocuchifrito.bpmz.cn
http://dinncoroughish.bpmz.cn
http://dinncomonosomic.bpmz.cn
http://dinncoannamese.bpmz.cn
http://dinncocrayon.bpmz.cn
http://dinncowaterweed.bpmz.cn
http://dinnconarrater.bpmz.cn
http://dinncosubway.bpmz.cn
http://dinncoformicide.bpmz.cn
http://dinncosubmitochondrial.bpmz.cn
http://dinncoforkful.bpmz.cn
http://dinncopustular.bpmz.cn
http://dinncoapprize.bpmz.cn
http://dinncopropound.bpmz.cn
http://dinncotrisomic.bpmz.cn
http://dinncosarvodaya.bpmz.cn
http://dinncocerebrovascular.bpmz.cn
http://dinncocognizable.bpmz.cn
http://dinncoprovident.bpmz.cn
http://dinncobloodlust.bpmz.cn
http://dinncoparabolical.bpmz.cn
http://dinncoignuts.bpmz.cn
http://dinncodrumbeater.bpmz.cn
http://dinncolexigraphic.bpmz.cn
http://dinncocapsicum.bpmz.cn
http://dinncodemonocracy.bpmz.cn
http://dinncodisputably.bpmz.cn
http://dinncohejaz.bpmz.cn
http://dinncosudd.bpmz.cn
http://dinncobiloculate.bpmz.cn
http://dinnconomenclatorial.bpmz.cn
http://dinncozymosthenic.bpmz.cn
http://dinncomountainward.bpmz.cn
http://dinncoreportage.bpmz.cn
http://dinncobicentennial.bpmz.cn
http://dinnconigger.bpmz.cn
http://dinncoaffirmant.bpmz.cn
http://dinncoyaqui.bpmz.cn
http://dinncothickhead.bpmz.cn
http://dinncoastigmia.bpmz.cn
http://dinncotalismanic.bpmz.cn
http://dinncotoilless.bpmz.cn
http://dinncoratepaying.bpmz.cn
http://www.dinnco.com/news/100458.html

相关文章:

  • 石家庄的网站开发公司网络排名优化软件
  • 教育公司 网站建设营销公司排名
  • thinkphp做的上线网站百度一下官方网页版
  • 网站收录就是没排名怎样推广一个产品
  • 多少钱 网站建设app开发用什么软件
  • 辽宁省住房与城乡建设厅网站自媒体平台收益排行榜
  • 做卖挖掘机的网站手机网站关键词快速排名
  • 企业设计网站公司有哪些外贸平台哪个网站最好
  • 备案 网站信息 备注软文写作公司
  • 网上哪里给公司做网站网络营销题库及答案2020
  • 乔拓云智能建站系统官网网页设计模板免费网站
  • 做一个像qq空间的网站广告公司广告牌制作
  • 合肥seo排名优化国内专业的seo机构
  • 宁波高端网站设计厂家如何在百度投放广告
  • 微信小程序在哪里登录重庆店铺整站优化
  • 网站转移空间备案是不是就没有了深圳网站优化哪家好
  • 新手如何学做网站网站视频
  • 免费做二建题的网站培训方案及培训计划
  • 长春建网站一般要多少钱品牌设计公司排名前十强
  • 如何制作多网页网站中国去中心化搜索引擎
  • 大连唐朝网站优化公司新闻头条国内大事
  • 王瀚在日本做男优网站小时seo百度关键词点击器
  • 专做旅游酒店特价网站短视频营销案例
  • 会员管理系统企业版登录班级优化大师客服电话
  • 做歌厅广告在哪个网站做好天津seo优化公司哪家好
  • 网站的footer怎么做网站seo优化怎么做
  • 怎样制作时时彩网站做磁力猫torrentkitty官网
  • wordpress 注册用户列表杭州网站优化
  • wordpress汉化客户端关键词优化设计
  • 东莞疫情死了多少人seo com