博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java是怎么运行的?
阅读量:6704 次
发布时间:2019-06-25

本文共 636 字,大约阅读时间需要 2 分钟。

前期了解知识

程序语言是什么?

程序语言就是向人和计算机描述计算的记号。

有哪些程序语言?

程序语言分类(按照级别分类)

按照级别分类
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编译器

转载地址:http://wbblo.baihongyu.com/

你可能感兴趣的文章
零基础学习Web开发的入门需要掌握哪些?
查看>>
慎用System.nanoTime()
查看>>
2017 移动端 iOS 年终工作总结-纯干货请自备酒水
查看>>
Android小知识-剖析OkHttp中的任务调度器Dispatcher
查看>>
switch的python实现
查看>>
Hybris UI的Route(路由)实现
查看>>
iOS探索:RunLoop本质、数据结构以及常驻线程实现
查看>>
算法的时间复杂度
查看>>
iOS独立开发者使用Bmob第三方后台服务初探
查看>>
共享适合移动端的“拾色器”插件
查看>>
《Java编程思想》笔记09------异常处理
查看>>
CPU发生异常到生成Crash Log的过程
查看>>
pyqt5中动画的使用
查看>>
到底什么才是业务架构?
查看>>
基础设施即代码:Terraform和AWS无服务器
查看>>
Atlassian发布事故管理解决方案Jira Ops
查看>>
书评 —— 《Go语言编程》
查看>>
Apache HBase的现状和发展
查看>>
反模式的经典 - Mockito设计解析
查看>>
Zip Slip目录遍历漏洞已影响多个Java项目
查看>>