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

网站建设需要学多久任务发布平台

网站建设需要学多久,任务发布平台,网站做熊掌号码,贵阳网站建设公司招聘jvm简介 JVM#xff1a;跨语言的平台 Java是目前应用最为广泛的软件开发平台之一。随着Java以及Java社区的不断壮大Java 也早已不再是简简单单的一门计算机语言了#xff0c;它更是一个平台、一种文化、一个社区。 ● 作为一个平台#xff0c;Java虚拟机扮演着举足轻重的…jvm简介 JVM跨语言的平台 Java是目前应用最为广泛的软件开发平台之一。随着Java以及Java社区的不断壮大Java 也早已不再是简简单单的一门计算机语言了它更是一个平台、一种文化、一个社区。 ● 作为一个平台Java虚拟机扮演着举足轻重的作用 ○ Groovy、Scala、JRuby、Kotlin等都是Java平台的一部分 ● 作为灯种文化Java几乎成为了“开源”的代名词。 ○ 第三方开源软件和框架。如Tomcat、StrutsMyBatisSpring等。 ○ 就连JDK和JVM自身也有不少开源的实现如openJDK、Harmony。 ● 作为一个社区Java拥有全世界最多的技术拥护者和开源社区支持有数不清的论坛和资料。从桌面应用软件、嵌入式开发到企业级应用、后台服务器、中间件都可以看到Java的身影。其应用形式之复杂、参与人数之众多也令人咋舌。 每个语言都需要转换成字节码文件最后转换的字节码文件都能通过Java虚拟机进行运行和处理 ● 随着Java7的正式发布Java虚拟机的设计者们通过JSR-292规范基本实现在Java虚拟机平台上运行非Java语言编写的程序。 ● Java虚拟机根本不关心运行在其内部的程序到底是使用何种编程语言编写的它只关心字节码文件。也就是说Java虚拟机拥有语言无关性并不会单纯地与Java语言“终身绑定”只要其他编程语言的编译结果满足并包含Java虚拟机的内部指令集、符号表以及其他的辅助信息它就是一个有效的字节码文件就能够被虚拟机所识别并装载运行。 字节码 ● 我们平时说的java字节码指的是用java语言编译成的字节码。准确的说任何能在jvm平台上执行的字节码格式都是一样的。所以应该统称为jvm字节码。 ● 不同的编译器可以编译出相同的字节码文件字节码文件也可以在不同的JVM上运行。 ● Java虚拟机与Java语言并没有必然的联系它只与特定的二进制文件格式—Class文件格式所关联Class文件中包含了Java虚拟机指令集或者称为字节码、Bytecodes和符号表还有一些其他辅助信息。 多语言混合编程 ● Java平台上的多语言混合编程正成为主流通过特定领域的语言去解决特定领域的问题是当前软件开发应对日趋复杂的项目需求的一个方向。 ● 试想一下在一个项目之中并行处理用Clojure语言编写展示层使用JRuby/Rails中间层则是Java每个应用层都将使用不同的编程语言来完成而且接口对每一层的开发者都是透明的各种语言之间的交互不存在任何困难就像使用自己语言的原生API一样方便因为它们最终都运行在一个虚拟机之上。 ● 对这些运行于Java虚拟机之上、Java之外的语言来自系统级的、底层的支持正在迅速增强以JSR-292为核心的一系列项目和功能改进如Da Vinci Machine项目、Nashorn引擎、InvokeDynamic指令、java.lang.invoke包等推动Java虚拟机从Java语言的虚拟机向 多语言虚拟机的方向发展。 如何真正搞懂JVM Java虚拟机非常复杂要想真正理解它的工作原理最好的方式就是自己动手编写一个 自己动手写一个Java虚拟机难吗 天下事有难易乎 为之则难者亦易矣不为则易者亦难矣 Java发展的重大事件 ● 1990年在Sun计算机公司中由Patrick Naughton、MikeSheridan及James Gosling领导的小组Green Team开发出的新的程序语言命名为oak后期命名为Java ● 1995年Sun正式发布Java和HotJava产品Java首次公开亮相。 ● 1996年1月23日Sun Microsystems发布了JDK 1.0。 ● 1998年JDK1.2版本发布。同时sun发布了JSP/Servlet、EJB规范以及将Java分成了J2EE、J2SE和J2ME。这表明了Java开始向企业、桌面应用和移动设备应用3大领域挺进。 ● 2000年JDK1.3发布Java HotSpot Virtual Machine正式发布成为Java的默认虚拟机。 ● 2002年JDK1.4发布古老的Classic虚拟机退出历史舞台。 ● 2003年年底Java平台的Scala正式发布同年Groovy也加入了Java阵营。 ● 2004年JDK1.5发布。同时JDK1.5改名为JavaSE5.0。 ● 2006年JDK6发布。同年Java开源并建立了OpenJDK。顺理成章Hotspot虚拟机也成为了openJDK中的默认虚拟机。 ● 2007年Java平台迎来了新伙伴Clojure。 ● 2008年Oracle收购了BEA得到了JRockit虚拟机。 ● 2009年Twitter宣布把后台大部分程序从Ruby迁移到Scala这是Java平台的又一次大规模应用。 ● 2010年Oracle收购了Sun获得Java商标和最真价值的HotSpot虚拟机。此时Oracle拥有市场占用率最高的两款虚拟机HotSpot和JRockit并计划在未来对它们进行整合HotRockit ● 2011年JDK7发布。在JDK1.7u4中正式启用了新的垃圾回收器G1。 ● 2017年JDK9发布。将G1设置为默认Gc替代CMS ● 同年IBM的J9开源形成了现在的Open J9社区 ● 2018年Android的Java侵权案判决Google赔偿Oracle计88亿美元 ● 同年Oracle宣告JavaEE成为历史名词JDBC、JMS、Servlet赠予Eclipse基金会 ● 同年JDK11发布LTS版本的JDK发布革命性的ZGC调整JDK授权许可 ● 2019年JDK12发布加入RedHat领导开发的shenandoah GC 在JDK11之前OracleJDK中还会存在一些OpenJDK中没有的、闭源的功能。但在JDK11中我们可以认为OpenJDK和OracleJDK代码实质上已经完全一致的程度。 不过主流的 JDK 8 在2019年01月之后就被宣布停止更新了。另外 JDK 11 及以后的版本也不再提供免费的长期支持LTS而且 JDK 15 和 JDK 16 也不是一个长期支持的版本最新的 JDK 15 只支持 6 个月时间到 2021 年 3 月所以千万不要把 JDK 15 等非长期支持版本用在生产。 虚拟机与java虚拟机 虚拟机 所谓虚拟机Virtual Machine就是一台虚拟的计算机。它是一款软件用来执行一系列虚拟计算机指令。大体上虚拟机可以分为系统虚拟机和程序虚拟机。 ● 大名鼎鼎的Visual BoxMware就属于系统虚拟机它们完全是对物理计算机的仿真提供了一个可运行完整操作系统的软件平台。 ● 程序虚拟机的典型代表就是Java虚拟机它专门为执行单个计算机程序而设计在Java虚拟机中执行的指令我们称为Java字节码指令。 无论是系统虚拟机还是程序虚拟机在上面运行的软件都被限制于虚拟机提供的资源中。 Java虚拟机 ● Java虚拟机是一台执行Java字节码的虚拟计算机它拥有独立的运行机制其运行的Java字节码也未必由Java语言编译而成。 ● JVM平台的各种语言可以共享Java虚拟机带来的跨平台性、优秀的垃圾回器以及可靠的即时编译器。 ● Java技术的核心就是Java虚拟机JVMJava Virtual Machine因为所有的Java程序都运行在Java虚拟机内部。 作用 ● Java虚拟机就是二进制字节码的运行环境负责装载字节码到其内部解释/编译为对应平台上的机器指令执行。每一条Java指令Java虚拟机规范中都有详细定义如怎么取操作数怎么处理操作数处理结果放在哪里。 特点 ● 一次编译到处运行 ● 自动内存管理 ● 自动垃圾回收功能 JVM的位置 JVM是运行在操作系统之上的它与硬件没有直接的交互 JVM的整体结构 ● HotSpot VM是目前市面上高性能虚拟机的代表作之一。 ● 它采用解释器与即时编译器并存的架构。 ● 在今天Java程序的运行性能早已脱胎换骨已经达到了可以和C/C程序一较高下的地步。 小记 1.以前叫java栈现在叫虚拟机栈 2.多个线程共享堆和方法区 Java代码执行流程 小记 Java编译器编译过程中任何一个节点执行失败就会造成编译失败。 虽然各个平台的Java虚拟机内部实现细节不尽相同但是它们共同执行的字节码内容却是一样的。 JVM的主要任务就是负责将字节码装载到其内部解释/编译为对应平台上的机器指令(即:汇.编语言执行。 Java虚拟机使用类加载器(class Loader装载class 文件。 类加载完成之后会进行字节码校验字节码校验通过之后JVM解释器会把字节码翻译成机器码即:汇编语言交由操作系统执行。 但不是所有代码都是解释执行的JVM对此做了优化。比如以Hotspot虚拟机来说它本身提供了JIT Just In Time) JVM的架构模型、 Java编译器输入的指令流基本上是一种基于栈的指令集架构另外一种指令集架构则是基于寄存器的指令集架构。 具体来说这两种架构之间的区别 基于栈式架构的特点 ● 设计和实现更简单适用于资源受限的系统 ● 避开了寄存器的分配难题使用零地址指令方式分配 ● 指令流中的指令大部分是零地址指令其执行过程依赖于操作栈。指令集更小编译器容易实现 ● 不需要硬件支持可移植性更好更好实现跨平台 基于寄存器架构的特点 ● 典型的应用是x86的二进制指令集比如传统的PC以及Android的Davlik虚拟机 ● 指令集架构则完全依赖硬件可移植性差 ● 性能优秀和执行更高效 ● 花费更少的指令去完成一项操作 ● 在大部分情况下基于寄存器架构的指令集往往都以一地址指令、二地址指令和三地址指令为主而基于栈式架构的指令集却是以零地址指令为主 举例1 同样执行23这种逻辑操作其指令分别如下 基于栈的计算流程以Java虚拟机为例 iconst_2 //常量2入栈 istore_1 iconst_3 // 常量3入栈 istore_2 iload_1 iload_2 iadd //常量2/3出栈执行相加 istore_0 // 结果5入栈而基于寄存器的计算流程 mov eax,2 //将eax寄存器的值设为1 add eax,3 //使eax寄存器的值加3举例2 public int calc(){int a100;int b200;int c300;return (a b) * c; }javap -c Test.class ... public int calc();Code:Stack2,Locals4,Args_size10: bipush 1002: istore_13: sipush 2006: istore_27: sipush 30010: istore_311: iload_112: iload_213: iadd14: iload_315: imul16: ireturn }总结 由于跨平台性的设计Java的指令都是根据栈来设计的。不同平台CPU架构不同所以不能设计为基于寄存器的。优点是跨平台指令集小编译器容易实现缺点是性能下降实现同样的功能需要更多的指令。 时至今日尽管嵌入式平台已经不是Java程序的主流运行平台了准确来说应该是HotSpotVM的宿主环境已经不局限于嵌入式平台了那么为什么不将架构更换为基于寄存器的架构呢 栈: 跨平台性、指令集小、指令多;执行性能比寄存器差 JVM的生命周期 虚拟机的启动 Java虚拟机的启动是通过引导类加载器bootstrap class loader创建一个初始类initial class来完成的这个类是由虚拟机的具体实现指定的。 虚拟机的执行 ● 一个运行中的Java虚拟机有着一个清晰的任务执行Java程序。 ● 程序开始执行时他才运行程序结束时他就停止。 ● 执行一个所谓的Java程序的时候真真正正在执行的是一个叫做Java虚拟机的进程。 虚拟机的退出 有如下的几种情况 ● 程序正常执行结束 ● 程序在执行过程中遇到了异常或错误而异常终止 ● 由于操作系统用现错误而导致Java虚拟机进程终止 ● 某线程调用Runtime类或system类的exit方法或Runtime类的halt方法并且Java安全管理器也允许这次exit或halt操作。 ● 除此之外JNIJava Native Interface规范描述了用JNI Invocation API来加载或卸载 Java虚拟机时Java虚拟机的退出情况。
http://www.hkea.cn/news/14450271/

相关文章:

  • flash网站设计概述装修论坛
  • 网络 网站建设网站制作代码大全
  • 宣传网站建设的意义标题制作网站
  • 岳阳建设网站制作杭州市网站seo
  • 网站建设管理系统免费网站室内装修设计软件排行榜
  • 网站视频怎么做公共资源交易中心网站建设汇报
  • 南沙哪有做网站的专业网站建设哪家好
  • 购物网站开发 需求分析wordpress文章固定字段
  • 网站免费建站 图标用python做的网站多吗
  • 凡科做的网站提示证书错误展示型网站 带后台
  • wordpress电影网站主题广州优俊网站制作公司
  • 网站模板素材下载网址大全浏览器
  • 合作建站协议wordpress文章排行榜
  • 衡水公司做网站做网站标签栏的图片大小
  • 做整体衣柜宣传海报的网站网站建设九亭
  • 地产网站建设案例呼和浩特城乡建设网站
  • 网站建设设计制作方案与价格ireal 网站建设
  • 大学网站 作风建设专题新站seo快速排名 排名
  • seo与网站建设房山建站公司
  • 网站到期域名怎么解决办法杭州网站建设制作联系电话
  • 做网站空间需要多大建设物流网站
  • 中国建设银行网站个人客户没有货源怎么开网店?
  • 网站建设风险是什么意思网站建设答辩问题
  • 顺德做网站那家好长沙做网站公司有哪些
  • 淘宝的网站建设wordpress the field
  • 手机网站带后台源代码谷歌在线搜索
  • 国内自助建站品牌建设与诚信建设相结合
  • 北京门户网站制作费用企业官方网站系统建设
  • 猎头建设网站电商模板下载的网站
  • 宣传片制作公司查询福州seo推广