乐趣区

Java是怎么运行的?

前期了解知识
程序语言是什么?
程序语言就是向人和计算机描述计算的记号。
有哪些程序语言?
程序语言分类(按照级别分类)按照级别分类 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 编译器

退出移动版