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

重庆万州网站建设公司电话安徽建设工程信息网官网优秀中项网

重庆万州网站建设公司电话,安徽建设工程信息网官网优秀中项网,随州网站推广,wordpress服务器环境文章目录 版权声明java虚拟机的组成字节码文件打开字节码文件的姿势字节码文件的组成魔数#xff08;基本信息#xff09;主副版本号#xff08;基本信息#xff09;主版本号不兼容的错误解决方法基本信息常量池方法 字节码文件的常用工具javap -v命令jclasslib插件阿里art… 文章目录 版权声明java虚拟机的组成字节码文件打开字节码文件的姿势字节码文件的组成魔数基本信息主副版本号基本信息主版本号不兼容的错误解决方法基本信息常量池方法 字节码文件的常用工具javap -v命令jclasslib插件阿里arthas 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明所有版权属于黑马程序员或相关权利人所有。本博客的目的仅为个人学习和交流之用并非商业用途。我在整理学习笔记的过程中尽力确保准确性但无法保证内容的完整性和时效性。本博客的内容可能会随着时间的推移而过时或需要更新。若您是黑马程序员或相关权利人如有任何侵犯版权的地方请您及时联系我我将立即予以删除或进行必要的修改。对于其他读者请在阅读本博客内容时保持遵守相关法律法规和道德准则谨慎参考并自行承担因此产生的风险和责任。本博客中的部分观点和意见仅代表我个人不代表黑马程序员的立场。 java虚拟机的组成 JVM包含以下组成部分 类加载器Class Loader负责将Java字节码加载到JVM中并将其转换为JVM可以理解的格式。 运行时数据区Runtime Data AreaJVM在运行时会将内存划分为不同的数据区域包括方法区、堆、栈、程序计数器等用于存储程序运行时所需要的数据。 执行引擎Execution Engine负责执行Java字节码将其转换为机器码并执行。 本地方法接口Native Interface提供了与本地代码交互的接口可以使用C、C等语言编写本地代码并通过JNIJava Native Interface与Java程序交互。 Java标准库Java API提供了大量的类和接口包括I/O、网络、集合、线程等常用功能。 #mermaid-svg-U01nNLLA8fJ3o1AU {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-U01nNLLA8fJ3o1AU .error-icon{fill:#552222;}#mermaid-svg-U01nNLLA8fJ3o1AU .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-U01nNLLA8fJ3o1AU .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-U01nNLLA8fJ3o1AU .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-U01nNLLA8fJ3o1AU .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-U01nNLLA8fJ3o1AU .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-U01nNLLA8fJ3o1AU .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-U01nNLLA8fJ3o1AU .marker{fill:#333333;stroke:#333333;}#mermaid-svg-U01nNLLA8fJ3o1AU .marker.cross{stroke:#333333;}#mermaid-svg-U01nNLLA8fJ3o1AU svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-U01nNLLA8fJ3o1AU .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-U01nNLLA8fJ3o1AU .cluster-label text{fill:#333;}#mermaid-svg-U01nNLLA8fJ3o1AU .cluster-label span{color:#333;}#mermaid-svg-U01nNLLA8fJ3o1AU .label text,#mermaid-svg-U01nNLLA8fJ3o1AU span{fill:#333;color:#333;}#mermaid-svg-U01nNLLA8fJ3o1AU .node rect,#mermaid-svg-U01nNLLA8fJ3o1AU .node circle,#mermaid-svg-U01nNLLA8fJ3o1AU .node ellipse,#mermaid-svg-U01nNLLA8fJ3o1AU .node polygon,#mermaid-svg-U01nNLLA8fJ3o1AU .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-U01nNLLA8fJ3o1AU .node .label{text-align:center;}#mermaid-svg-U01nNLLA8fJ3o1AU .node.clickable{cursor:pointer;}#mermaid-svg-U01nNLLA8fJ3o1AU .arrowheadPath{fill:#333333;}#mermaid-svg-U01nNLLA8fJ3o1AU .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-U01nNLLA8fJ3o1AU .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-U01nNLLA8fJ3o1AU .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-U01nNLLA8fJ3o1AU .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-U01nNLLA8fJ3o1AU .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-U01nNLLA8fJ3o1AU .cluster text{fill:#333;}#mermaid-svg-U01nNLLA8fJ3o1AU .cluster span{color:#333;}#mermaid-svg-U01nNLLA8fJ3o1AU div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-U01nNLLA8fJ3o1AU :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Java Virtual Machine Runtime Data Area Loads Loads Used by Used by Used by Controls Calls Interacts with Optional: JIT Compiler Class Loader Execution Engine Native Interface Java Standard Library Method Area Heap Stacks Program Counter Register Native Method Stack 字节码文件 打开字节码文件的姿势 使用Jclasslib工具idea中可以直接安装jclasslib插件 然后打开字节码文件后选择工具栏中的视图-shoe ByteCode with jclasslib即可 如果源码文件修改后字节码文件为未更新选择构建重新编译文件即可 字节码文件的组成 Java字节码文件是一种中间代码它包含了Java程序的编译版本。字节码文件的组成结构主要包括以下几个部分 #mermaid-svg-66VJ3BElwsdEpLXX {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-66VJ3BElwsdEpLXX .error-icon{fill:#552222;}#mermaid-svg-66VJ3BElwsdEpLXX .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-66VJ3BElwsdEpLXX .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-66VJ3BElwsdEpLXX .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-66VJ3BElwsdEpLXX .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-66VJ3BElwsdEpLXX .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-66VJ3BElwsdEpLXX .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-66VJ3BElwsdEpLXX .marker{fill:#333333;stroke:#333333;}#mermaid-svg-66VJ3BElwsdEpLXX .marker.cross{stroke:#333333;}#mermaid-svg-66VJ3BElwsdEpLXX svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-66VJ3BElwsdEpLXX .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-66VJ3BElwsdEpLXX .cluster-label text{fill:#333;}#mermaid-svg-66VJ3BElwsdEpLXX .cluster-label span{color:#333;}#mermaid-svg-66VJ3BElwsdEpLXX .label text,#mermaid-svg-66VJ3BElwsdEpLXX span{fill:#333;color:#333;}#mermaid-svg-66VJ3BElwsdEpLXX .node rect,#mermaid-svg-66VJ3BElwsdEpLXX .node circle,#mermaid-svg-66VJ3BElwsdEpLXX .node ellipse,#mermaid-svg-66VJ3BElwsdEpLXX .node polygon,#mermaid-svg-66VJ3BElwsdEpLXX .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-66VJ3BElwsdEpLXX .node .label{text-align:center;}#mermaid-svg-66VJ3BElwsdEpLXX .node.clickable{cursor:pointer;}#mermaid-svg-66VJ3BElwsdEpLXX .arrowheadPath{fill:#333333;}#mermaid-svg-66VJ3BElwsdEpLXX .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-66VJ3BElwsdEpLXX .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-66VJ3BElwsdEpLXX .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-66VJ3BElwsdEpLXX .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-66VJ3BElwsdEpLXX .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-66VJ3BElwsdEpLXX .cluster text{fill:#333;}#mermaid-svg-66VJ3BElwsdEpLXX .cluster span{color:#333;}#mermaid-svg-66VJ3BElwsdEpLXX div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-66VJ3BElwsdEpLXX :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Magic Number Version Constant Pool Access Flags Class Index Parent Class Index Interface Indexes 类 接口 Field Table Method Table 字段信息 方法信息 Attribute Table 魔数基本信息 魔数Magic NumberJava字节码文件的开头四个字节是一个魔数它是一个特殊的标识用于表明这是一个有效的字节码文件。 文件是无法通过文件扩展名来确定文件类型的文件扩展名可以随意修改不影响文件的内容。软件使用文件的头几个字节文件头去校验文件的类型如果软件不支持该种类型就会出错魔数的数值为0xCAFEBABE。 主副版本号基本信息 版本信息紧随魔数后的两个字节表示Java字节码文件的主版本号和次版本号。 主副版本号指的是编译字节码文件的JDK版本号主版本号用来标识大版本号JDK1.0-1.1使用了45.0-45.3JDK1.2是46之后每升级一个大版本就加1副版本号是当主版本号相同时作为区分不同版本的标识一般只需要关心主版本号。版本号的作用主要是判断当前字节码的版本和运行时的JDK是否兼容 主版本号不兼容的错误解决方法 解决以下由于主版本号不兼容导致的错误 两种方案 升级JDK版本容易引发其他的兼容性问题并且需要大量的测试建议采用将第三方依赖的版本号降低或者更换依赖以满足JDK版本的要求 基本信息 上面的魔数和主副版本号都属于基本信息部分基本信息还包含 访问标志Access Flags这个字段定义了类或接口的访问权限例如public、final、abstract等。类和父类信息字节码文件包括了对当前类的名称和父类的名称的引用。这些引用通常以全限定名的形式出现例如java/lang/Object。接口表Interfaces这个表格包含了类实现的接口的索引用于描述类的继承关系。 常量池 常量池Constant Pool它是一个表格结构用于存储字面值、符号引用、字段和方法的描述等各种常量。 字节码文件中常量池的作用避免相同的内容重复定义节省空间常量池在字节码文件中起到类似符号表的作用它包含了类文件中用到的各种符号和字面值。常量池中的常量索引从1开始0被用于表示不引用任何常量。字节码指令中通过编号引用到常量池的过程称之为符号引用 字段表Fields这个表格包含了类的字段的描述包括字段名、字段类型以及访问标志。属性表Attributes每个类、字段和方法可以包含属性表用于存储额外的信息。属性表通常包括源代码行号、局部变量表信息、异常处理信息等。字节码指令集字节码文件包含了实际的字节码指令这些指令定义方法的具体操作和行为。字节码指令集是由一系列操作码opcode和操作数组成用于执行方法中的逻辑。 方法 字节码中的方法区域是存放字节码指令的核心位置字节码指令的内容存放在方法的Code属性中 操作数栈是临时存放数据的地方局部变量表是存放方法中的局部变量的位置 ii的执行流程 ii的执行流程 int i 0; i i; 最终i的值是多少答案是0通过分析字节码指令发现i先把0取出来放入临时的操作数栈中接下来对i进行加1i变成了1最后再将之前保存的临时值0放入i最后i就变成了0。 字节码文件的常用工具 javap -v命令 javap是JDK自带的反编译工具可以通过控制台查看字节码文件的内容。适合在服务器上查看字节码文件内容。直接输入javap查看所有参数输入javap -v 字节码文件名称 查看具体的字节码信息。如果jar包需要先使用 jar –xvf 命令解压) jclasslib插件 使用Jclasslib工具idea中可以直接安装jclasslib插件 然后打开字节码文件后选择工具栏中的视图-shoe ByteCode with jclasslib即可 如果源码文件修改后字节码文件为未更新选择构建重新编译文件即可 阿里arthas Arthas 是一款线上监控诊断产品通过全局视角实时查看应用 load、内存、gc、线程的状态信息并能在不修改应用代码的情况下对业务问题进行诊断大大提升线上问题排查效率。官网 具体使用可以去B站或官网学习使用
http://www.w-s-a.com/news/8549/

相关文章:

  • 建设银行网站用什么字体网站建站后维护需要做哪些
  • 有哪些做平面设计好素材网站有哪些开网站建设
  • 国际交流网站平台有哪些筑建网
  • 网站程序是如何开发的江门市住房建设管理局网站
  • 网站建设一般需要几个步骤昵图网免费素材
  • 个人网站建设需求说明书微信域名防封在线生成
  • 专业网站建设的公司wordpress后台没有模板
  • 哈尔滨网站运营服务商制作外贸网站公司
  • 个人网站需要备案宁波网站推广工具
  • 苏州建设银行网站首页wordpress修改密码
  • 网站建设员工技能要求网站制作简单协议
  • 没有ipc备案的网站wordpress isux主题
  • 清远做网站电子商务网站建设需要的语言及特点6
  • 万州那家做网站c语言基础知识入门
  • 齐河网站建设公司价格网站建设包括什么
  • 论坛网站开发费用怎么把文件放到网站的根目录
  • 海南省零售户电商网站官渡区住房和城乡建设局网站
  • 怎么找淘宝客网站最新军事战况
  • 缺乏门户网站建设网页设计与制作项目教程第二版
  • 手机网站横竖屏一般做建设的是什么公司
  • 免费网站建设无广告网站开发 华景新城
  • 湖州网站制作报价西安网站开发有哪些公司
  • google 浏览器开源seo软件
  • 网站空间是什么意思自己怎样建设网站
  • 国外家装设计网站如何做软件开发
  • 凡科建站登录官网当当网网站建设策划书
  • 网站百度屏蔽关键词杭州排名优化公司
  • h5响应式网站模板下载wordpress鼠标指针
  • 摄影作品投稿网站目前最好的引流推广方法
  • 资源站源码永久dede网站搬家 空间转移的方法