java运行方法_Java是怎么运行的?

前期了解知识

程序语言是什么?

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

有哪些程序语言?

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

按照级别分类

1.低级语言

2.高级语言

(1)面向过程语言

(2)面向对象语言

规律:越高级程序语言越靠近人的理解方式,但是这样在计算机运行却不行,所以需要将程序语言翻译成计算机所能够识别的语言。

翻译的方式有哪些?

1.编译

2.解释

两种方式的区别和优缺点

1.编译会生成中间文件,解释不需要生成中间文件,边解释边运行

2.编译比解释更快

3.解释检查代码是否有错误更仔细比编译,因为解释是一句一句的解释。

衍生

程序语言的分类

1.编译型(C,C++等)

2.解释型(JS等)

3.半编译半解释(JAVA等)

正文

Java运行的流程

9e84c9758183c89c30de587a35f3adf0.png

.class文件翻译成机器码运行代码

前期知识点

JVM内存分配

fe9c35decc8bd21c42362be46dcbd352.png

方法区:类加载到方法区

pc寄存器:存放各个线程执行的位置

Java方法栈:调用方法的时候会生成栈帧,用来存储局部变量(广义的,包括this指针和传递的方法参数)和操作数。

.class字节码翻译机器码运行

9601113cb8c3bfe460c5707b4dc4bb22.png

按照二八定律,20%的代码用了80%的运算时间,所以这20%的代码可不可以用更快的方式来运行,所以即时编译器运势而生。

分类:

1.解释器解释

2.即时编译器编译

1.c1编译器:client编译器,对启动性能要求高的,优化简单,编译简单

2.c2编译器:server编译器,对峰值性要求高的,优化复杂,编译时间长

3.Graal编译器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值