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

广东网站建设包括什么网站建设 橙

广东网站建设包括什么,网站建设 橙,软件ui设计怎么做网站,微信优惠券网站怎么做的目录 1.概述 2.字节码文件构成 2.1.魔数 2.2.版本号 2.3.常量池 2.4.访问标志 2.5.索引 2.6.字段表 2.7.方法表 3.字节码指令 3.1.概述 3.2.指令分类 3.2.1.加载存储指令 3.2.2.运算指令 3.2.3.其他指令 3.3.完整指令工作流程 4.字节码保护 1.概述 以往的编程…目录 1.概述 2.字节码文件构成 2.1.魔数 2.2.版本号 2.3.常量池 2.4.访问标志  2.5.索引 2.6.字段表 2.7.方法表 3.字节码指令 3.1.概述 3.2.指令分类 3.2.1.加载存储指令 3.2.2.运算指令 3.2.3.其他指令 3.3.完整指令工作流程 4.字节码保护 1.概述 以往的编程语言是直接编译为计算机可识别并直接执行的机器码但不同平台机器的指令集不同编译出来的机器码不同一个平台编译出来的机器码在另一个平台上可能无法正常运行。JAVA为了实现“write once run anywhere”的效果先将JAVA代码编译为平台无关的.class文件字节码文件不论什么平台编译出来的字节码都是一样的然后用适配不同平台的JVM来加载字节码文件将字节码文件翻译给对应平台来执行。 字节码文件是个二进制文件由JVM定义字节码文件的规范任何满足这种规范的class文件都会被JVM加载运行。字节码规范规定字节码应该具有以下基本结构 2.字节码文件构成 2.1.魔数 字节码的前4个字节是魔数所有字节码文件的魔数是固定的4个byte合起来是cafebabe用来标识该文件是JAVA的class文件。 2.2.版本号 字节码中记录编译使用的JDK版本字节码的第5、6位表示次版本号第7、8位表示主版本号 查表可以得示例中的版本号为JDK12。 2.3.常量池 常量池存放两大类常量 字面量如文本字符串、fnal的常量值等符号引用类和接口的全限定名、字段的名称和描述符、方法的名称和描述符 字节码中存放有常量池使用java -verbose命令可以反编译得到常量池信息。 2.4.访问标志  常量池结束后的两个字节描述了该Class是类还是接口以及是否被public、abstart、final等修饰符修饰。 2.5.索引 字节码文件中的索引分为三类 类索引父类索引接口索引集合 类索引 访问标志后的两个字节描述的是当前类的全限定名这两个字节保存的值为常量池中的索引值根据索引值就能在常量池中找到这个类的全限定名 父类索引 当前类名后的两个字节描述父类的全限定名同上保存的也是常量池中的索引值。 接口索引集合 父类名称后为两字节的接口计数器描述了该类或父类实现的接口数量。紧接着的n个字节是所有接口名称的字符串常量的索引值。 2.6.字段表 用来记录成员变量分为两部分 计数器记录成员变量的个数。数据区记录变量的具体内容。2.7.方法表 记录方法分为两部分 计数器记录方法的个数 数据区记录方法的具体内容属性列表中记录了方法的具体内容 Code源代码对应的]VM指令操作码LineNumberTable行号表将Code区的操作码和源代码中的行号对应3.字节码指令 3.1.概述 字节码指令在栈里面的每个栈帧中操作局部变量表进行对操作数栈的压栈出栈从而完成方法中编写的一系列内容变量表是“菜篮”操作数栈是“砧板”。  3.2.指令分类 3.2.1.加载存储指令 用于变量对于操作数栈的压栈、出栈。 用于将数据在栈帧中的局部变量表和操作数栈之间来回传输将一个局部变量加载到操作栈: iload、lload、fload、dload、aload等将一个数值从操作数栈存储到局部变量表: istore、Istore、fstore、dstore、astore等将一个常量加载到操作数栈: bipush、sipush、ldc、ldc_w、ldc2 w、aconst null、iconst m1等 3.2.2.运算指令 用于进行运算的指令。 iadd、isub、imul、idiv等类型转换指令i2b、i2l、i2s等对象/数组创建与访问指令new、newarray、getfield等操作数栈管理指令pop、dup等 3.2.3.其他指令 lfeq、goto等方法调用和返回指令 invokevirtual、ireturn等异常处理指令athrow同步控制指令 monitorenter、monitorexit 3.3.完整指令工作流程 以下面代码为例展示一个完整的指令工作流程 public class Sum {private int base 10;public long add(int toAdd){this .base toAdd;return this.base;} } 反编译查看源码 整体步骤如下 aload 0 将索引为0的局部变量压栈dup 复制栈顶值并压栈getfeld 取出栈顶对象引用获取其成员变量并压栈iload_1 将索引为1 int型局部变量压栈iacd 取出栈顶两个int型值相加结来压栈puteld 将栈顶两个元素取出 (值和对象引用) 将值赋给该对象宇段i2l 将栈顶int型值取出转为long型压栈lreturn 将栈顶long型元素取出返回 4.字节码保护 防止字节码文件被反编译为.java文件一般有两种手段 字节码保护字节码混淆 字节码保护 对字节码进行加密使其不再遵循JVM的规范JVM加载之前先解密。 字节码混淆 被混淆代码依然遵循JVM制定的规范变量命名和程序流程上进行等效替换使得程序的可读性变差使得代码难以被理解和重用达到保护代码的效果。 常用的字节码混淆器ProGuard 下载地址https://www.guardsquare.com/en/products/proguard
http://www.dnsts.com.cn/news/60269.html

相关文章:

  • 想转行做网站自己公司怎么做网站
  • 网站价钱做二手网站有哪些
  • 网站首页视频背景asp.net网站开发流程及相关工具
  • 营销型网站建设应该考虑哪些因素小型企业门户网站源码
  • 网站集约化建设方案wordpress文章网址采集器
  • 启东做网站静态网站怎么入侵
  • 网上书店网网站建设网页设计与制作黑马程序员
  • 惠州公司做网站做拍卖的网站有哪些
  • 广州建设交易中心网站首页网站开发框架
  • 提供专业网站建设平台番禺建设网站平台
  • 深圳市罗湖区住房和建设局网站普陀建设机械网站
  • 网站推广优化怎样网站制作技术方案
  • 模板网站不利于seo吗哪个淘宝客网站最好
  • 企业制作网站公司银川网站设计建设
  • 二级学院网站建设及利用情况佛山自己网站建设
  • 专业网页制作加盟浙江关键词优化
  • 无锡知名网站制作wordpress 修改模板
  • 网站建设的特征wordpress amp
  • 济南高端网站设计建设想做一个网站怎么做
  • 无锡市建设局网站中国企业信息
  • 重庆工程招标网站有哪些长沙网站推广公司
  • 网站建设注册什么公司好做一手房用什么网站
  • 昆明做网站公司哪家好前端开发需要学什么语言
  • 成都电商平台网站设计电影网站建设 流程
  • 苏州网站建设学费门户网站开发维护合同范本
  • 哪些客户需要做网站微信商户服务商平台
  • wap网站系统成都百度网站优化
  • 网站备案中页面网页设计与制作(第3版)书籍
  • 合肥哪家做网站wordpress文章分类跳转到指定模板
  • 设计网站怎么做品牌手机网站建设