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

晋城有做网站的吗婴儿网站模板

晋城有做网站的吗,婴儿网站模板,高端旅游网站建设,自己能做企业网站吗Java全能学习面试指南#xff1a;https://javaxiaobear.cn 1、字节码文件 从下面这个图就可以看出#xff0c;字节码文件是可以跨平台使用的 想要让一个Java程序正确地运行在JVM中#xff0c;Java源码就必须要被编译为符合JVM规范的字节码。 https://docs.oracle.com/java…Java全能学习面试指南https://javaxiaobear.cn 1、字节码文件 从下面这个图就可以看出字节码文件是可以跨平台使用的 想要让一个Java程序正确地运行在JVM中Java源码就必须要被编译为符合JVM规范的字节码。 https://docs.oracle.com/javase/specs/index.html 所有的JVM全部遵守Java虚拟机规范也就是说所有的JVM环境都是一样的这样一来字节码文件可以在各种JVM上运行。 从Java虚拟机的角度看通过Class文件可以让更多的计算机语言支持Java虚拟机平台。因此Class文件结构不仅仅是Java虚拟机的执行入口更是Java生态圈的基础和核心。 1、Class文件 字节码文件里是什么 源代码经过编译器编译之后便会生成一个字节码文件字节码是一种二进制的类文件它的内容是JVM的指令而不像C、C经由编译器直接生成机器码。 随着Java平台的不断发展在将来Class文件的内容也一定会做进一步的扩充但是其基本的格式和结构不会做重大调整。 2、字节码编译器 从位置上理解 前端编译器 vs 后端编译器 前端编译器的种类 Java源代码的编译结果是字节码那么肯定需要有一种编译器能够将Java源码编译为字节码承担这个重要责任的就是配置在path环境变量中的javac编译器。javac是一种能够将Java源码编译为字节码的前端编译器。 HotSpot VM并没有强制要求前端编译器只能使用javac来编译字节码其实只要编译结果符合JVM规范都可以被JVM所识别即可。 在Java的前端编译器领域除了javac之外还有一种被大家经常用到的前端编译器那就是内置在Eclipse中的ECJ (Eclipse Compiler for Java)编译器。和Javac的全量式编译不同ECJ是一种增量式编译器。 在Eclipse中当开发人员编写完代码后使用“CtrlS”快捷键时ECJ编译器所釆取的编译方案是把未编译部分的源码逐行进行编译而非每次都全量编译。因此ECJ的编译效率会比javac更加迅速和高效当然编译质量和javac相比大致还是一样的。ECJ不仅是Eclipse的默认内置前端编译器在Tomcat中同样也是使用ECJ编译器来编译jsp文件。由于ECJ编译器是釆用GPLv2的开源协议进行源代码公开所以大家可以登录eclipse官网下载ECJ编译器的源码进行二次开发。默认情况下IntelliJ IDEA 使用 javac 编译器。(还可以自己设置为AspectJ编译器 ajc) 前端编译器的任务 前端编译器的主要任务就是负责将符合Java语法规范的Java代码转换为符合JVM规范的字节码文件。 3、编译步骤 大部分的程序代码转换成物理机的目标代码或虚拟机能执行的指令集之前都需要经过上图中的各个步骤。 4、前端编译器的局限性 前端编译器并不会直接涉及编译优化等方面的技术而是将这些具体优化细节移交给HotSpot的JIT编译器负责。 jdk9引入了AOT编译器(静态提前编译器Ahead Of Time Compiler) Java 9 引入了实验性 AOT 编译工具jaotc。它借助了 Graal 编译器将所输入的 Java 类文件转换为机器码并存放至生成的动态共享库之中。所谓 AOT 编译是与即时编译相对立的一个概念。我们知道即时编译指的是在程序的运行过程中将字节码转换为可在硬件上直接运行的机器码并部署至托管环境中的过程。而 AOT 编译指的则是在程序运行之前便将字节码转换为机器码的过程。 .java - .class - .so最大好处Java虚拟机加载已经预编译成二进制库可以直接执行。不必等待即时编译器的预热减少Java应用给人带来“第一次运行慢”的不良体验。缺点 破坏了java“一次编译到处运行”必须为每个不同硬件、OS编译对应的发行包。降低了Java链接过程的动态性加载的代码在编译期就必须全部已知。 还需要继续优化中最初只支持Linux x64 java base 2、Class对象 下面这些类型都有对应的class对象 1class外部类成员(成员内部类静态内部类)局部内部类匿名内部类2interface接口3[]数组4enum枚举5annotation注解interface6primitive type基本数据类型7void Test public void test(){Class c1 Object.class;Class c2 Comparable.class;Class c3 String[].class;Class c4 int[][].class;Class c5 ElementType.class;Class c6 Override.class;Class c7 int.class;Class c8 void.class;Class c9 Class.class;int[] a new int[10];int[] b new int[100];Class c10 a.getClass();Class c11 b.getClass();// 只要元素类型与维度一样就是同一个ClassSystem.out.println(c10 c11); }3、字节码指令 1、什么是字节码指令 Java虚拟机的指令由一个字节长度的、代表着某种特定操作含义的操作码opcode以及跟随其后的零至多个代表此操作所需参数的操作数operand所构成。虚拟机中许多指令并不包含操作数只有一个操作码。 例如 2、为什么要学习字节码指令 通俗的说就是通过字节码的学习你可以更好地理解 Java中各种语法和语法糖背后的原理更好地理解多态等语言特性 当然具体其他的举例可以参考这个https://cloud.tencent.com/developer/article/1870151 4、解读Class文件 如何解读供虚拟机解释执行的二进制字节码 方式一一个一个二进制的看。这里用到的是Notepad,需要安装一个HEX-Editor插件或者使用Binary Viewer 方式二使用javap指令jdk自带的反解析工具 方式三使用IDEA插件jclasslib 或jclasslib bytecode viewer客户端工具。可视化更好 或
http://www.w-s-a.com/news/526185/

相关文章:

  • 网站开发用的电脑深圳专业网站建设服务
  • 内容营销价值wordpress博客优化插件
  • 最优惠的郑州网站建设淘宝网商城
  • 做封面网站企业网站优化服务商
  • 电子商务网站设计是什么蚌埠铁路建设监理公司网站
  • .name后缀的网站做房产网站多少钱
  • 手机上传网站源码网站app封装怎么做
  • 做的网站放在阿里云网站建设投标书范本
  • 做文化传播公司网站wordpress仿简书
  • 什么网站有题目做西宁网站制作哪里好
  • 网站上添加图片的原则优易主机 wordpress
  • 用php做的网站源代码那里有做像美团的网站的
  • 网站建设百科有什么做兼职的网站
  • 创造网站电商网站建设方案道客巴巴
  • 南通设计网站建设wordpress时光轴
  • 郑州做网站企起网站建设 风险
  • 北京市保障性住房建设投资中心网站6大连广告设计与制作公司
  • 建站之星网站模板国内f型网页布局的网站
  • 怎么做网站关键词优化外贸网站 开源
  • 广东公司响应式网站建设设计seo系统是什么
  • 清丰网站建设费用网站建设的前途
  • 网站上那些兼职网页怎么做的北京网页
  • 桂林建站平台哪家好品牌设计公司宣传文案
  • 平面设计和建设网站的区别公司官网静态
  • h5网站建设+案例住房住房和城乡建设部网站
  • 建设股公司网站东莞建设网网上平台
  • 湖州吴兴建设局网站加强网站建设的
  • 茌平做网站公司专业商城网站建设报价
  • 网站结构图怎么画wordpress注册不发送件
  • 个人备案网站可以做论坛吗电商推广方式有哪些