摘要:字节码翻译机器码运行按照二八定律,的代码用了的运算时间,所以这的代码可不可以用更快的方式来运行,所以即时编译器运势而生。
前期了解知识 程序语言是什么?
程序语言就是向人和计算机描述计算的记号。
有哪些程序语言?程序语言分类(按照级别分类)
按照级别分类
1.低级语言
2.高级语言
(1)面向过程语言
(2)面向对象语言
规律:越高级程序语言越靠近人的理解方式,但是这样在计算机运行却不行,所以需要将程序语言翻译成计算机所能够识别的语言。翻译的方式有哪些?
1.编译
2.解释
两种方式的区别和优缺点
1.编译会生成中间文件,解释不需要生成中间文件,边解释边运行
2.编译比解释更快
3.解释检查代码是否有错误更仔细比编译,因为解释是一句一句的解释。
衍生正文
程序语言的分类
1.编译型(C,C++等)
2.解释型(JS等)
3.半编译半解释(JAVA等)
Java运行的流程.class文件翻译成机器码运行代码
前期知识点
JVM内存分配
方法区:类加载到方法区
pc寄存器:存放各个线程执行的位置
Java方法栈:调用方法的时候会生成栈帧,用来存储局部变量(广义的,包括this指针和传递的方法参数)和操作数。
.class字节码翻译机器码运行
按照二八定律,20%的代码用了80%的运算时间,所以这20%的代码可不可以用更快的方式来运行,所以即时编译器运势而生。
分类:
1.解释器解释
2.即时编译器编译
1.c1编译器:client编译器,对启动性能要求高的,优化简单,编译简单 2.c2编译器:server编译器,对峰值性要求高的,优化复杂,编译时间长 3.Graal编译器
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/73426.html
摘要:一切都是对象之前自己学习就是以系统的角度去学习,就是我们把这些知识点罗列出来,然后做一个全面的学习。按照面向对象的思想,一切都是对象,不管什么数据都应该是对象,但是对于一些基础的数据类型为了运行效率和内存的优化,将个基本类型进行了特殊处理。 一切都是对象 之前自己学习Java就是以系统的角度去学习,就是我们把这些知识点罗列出来,然后做一个全面的学习。这样的的确确可以将知识点都学习全面,...
摘要:占市场份额,剩下是其他的开发工具。总之集成开发工具就是为了提高开发速度。编写第一个程序在上点击右键填写上类名在下面有一个选中创建方法。 使用集成开发工具eclipse 1、java的集成开发工具很多,包括:eclipse、Intellij IDEA、netbeans..... eclips...
摘要:三对象的内存布局对象在堆中的布局分为三个区域对象头,实例数据,对齐填充。总结了解内存区域是对的深入学习,以前只知道有堆和栈的区分,现在我们了解到了具体的堆栈的作用。 引言 学习Java也有一段时间了,总感觉有些东西学的不是很精通。例如Java内存区域到底是怎么样的?程序是怎么跑的?对象是怎么存放的?这些都影响了我对自己的程序运行的熟悉程度。 一. 运行时数据区域 showImg(/im...
摘要:伟大的语言希望到目前为止你还没有晕,到这里我们知道了,不管我们用的是什么的也好最终都逃不出等语言除外,不直接执行之类的解释型语言程序,可以直接执行的是解释器代码,解释器最终来执行等程序,这就是解释型语言效率不如编译型语言效率高的原因。 虽然在这里我们主要关注的是操作系统,但毕竟操作系统的目的就是能更好的运行用户程序,而且该教程主要是站在程序员的角度来讲解操作系统的,作为程序员是绕不开程...
阅读 1715·2021-10-18 13:30
阅读 2568·2021-10-09 10:02
阅读 2940·2021-09-28 09:35
阅读 2074·2019-08-26 13:39
阅读 3506·2019-08-26 13:36
阅读 1936·2019-08-26 11:46
阅读 1090·2019-08-23 14:56
阅读 1674·2019-08-23 10:38