刚看Practical java ,对jit不是很明白:搜索结果如下:
什么是JIT?
JIT是just in time,即时编译技术。使用该技术,能够加速java程序的执行速度。下面,就对该技术做个简单的讲解。
首先,我们大家都知道,通常javac将程序源代码编译,转换成java字节码,JVM通过解释字节码将其翻译成对应的机器指令,逐条读入,逐条解释翻译。很显然,经过解释执行,其执行速度必然会比可执行的二进制字节码程序慢。为了提高执行速度,引入了JIT技术。
在运行时JIT会把翻译过的机器码保存起来,已备下次使用,因此从理论上来说,采用该JIT技术可以,可以接近以前纯编译技术。下面我看看,JIT的工作过程。
JIT 编译过程
当JIT编译启用时(默认是启用的),JVM读入.class文件解释后,将其发给JIT编译器。JIT编译器将字节码编译成本机机器代码,下图展示了该过程。
什么是JIT?
JIT是just in time,即时编译技术。使用该技术,能够加速java程序的执行速度。下面,就对该技术做个简单的讲解。
首先,我们大家都知道,通常javac将程序源代码编译,转换成java字节码,JVM通过解释字节码将其翻译成对应的机器指令,逐条读入,逐条解释翻译。很显然,经过解释执行,其执行速度必然会比可执行的二进制字节码程序慢。为了提高执行速度,引入了JIT技术。
在运行时JIT会把翻译过的机器码保存起来,已备下次使用,因此从理论上来说,采用该JIT技术可以,可以接近以前纯编译技术。下面我看看,JIT的工作过程。
JIT 编译过程
当JIT编译启用时(默认是启用的),JVM读入.class文件解释后,将其发给JIT编译器。JIT编译器将字节码编译成本机机器代码,下图展示了该过程。
通过上面的解释,我们了解了JIT的工作原理及过程,同样也发现了个问题,由于JIT对每条字节码都进行编译,造成了编译过程负担过重。为了避免这种情况,当前的JIT只对经常执行的字节码进行编译,如循环等。
需要说明的是,JIT并不总是奏效,不能期望JIT一定能够加速你代码执行的速度,更糟糕的是她有可能降低代码的执行速度。这取决于你的代码结构,当然很多情况下我们还是能够如愿以偿的。
分享到:
相关推荐
以下是对JIT工作原理和相关知识的详细解释: 1. **JIT编译过程**: 当Java程序运行时,JVM首先会解释执行字节码。这个过程类似于读取一个指令集,然后逐条执行。然而,解释执行的效率相对较低,因为它需要在运行时...
### Java所有知识要点 #### 一、Java简介与开发环境 **Java** 是一种广泛使用的高级编程语言,它由 Sun Microsystems 公司于1995年推出,并最终被 Oracle 公司收购。Java 设计时考虑了面向对象、跨平台、安全性等...
### Java各知识点详细总结 #### 一、Java概述 ##### Java历史与发展 - **起源**:1991年,Sun公司的James Gosling等人开始研发一种名为Oak的编程语言,初衷是为了控制嵌入式设备和消费电子产品中的微处理器。 - **...
- **高性能**:通过即时编译(JIT)和优化,Java可以实现接近原生代码的执行速度。 - **多线程**:Java内置了对多线程的支持,使得并发编程更加便捷。 - **动态性**:Java允许程序在运行时加载新的类,适应变化的...
### Java基础知识小结 #### 1.1 `getPath()`、`getAbsolutePath()`、`getCanonicalPath()`的区别 在Java中,处理文件路径时经常会用到`getPath()`、`getAbsolutePath()`以及`getCanonicalPath()`这三个方法。它们...
### JAVA基础知识概述 #### 一、Java语言特点与体系结构 **Java** 是一种广泛使用的高级编程语言,因其强大的功能性和灵活性,在企业级应用、移动应用(尤其是Android平台)、Web应用等多个领域都有着不可替代的...
- **高性能**:通过即时编译技术(JIT),Java的性能得到了显著提升。 - **多线程**:Java支持多线程编程,可以同时执行多个任务。 以上是对Java基础知识的综合概述,涵盖了Java语言的基础概念、核心特性和编程技巧,...
Java编译器将源代码转化为字节码,然后通过解释器或即时编译器(JIT)执行。JDK(Java Development Kit)包含了JRE(Java Runtime Environment)以及开发工具,如编译器和调试器。JRE仅包含运行Java程序所需的部分。...
Java 基础知识是每个Java开发者必备的技能,涵盖了从入门到深入的各个层面。在面试中,这些基础知识往往是考察的重点。以下是Java基础知识的一些重要点: 1. **Java语言的特点**: - **简单易学**:Java设计时考虑...
电子科技大学的Java程序设计课程涵盖了Java...这些知识点是Java程序设计基础的重要组成部分,对于理解和掌握Java编程至关重要。通过深入学习这些概念,学生将能够编写、调试和优化Java程序,并为期末考试做好充分准备。
### 毕向东Java笔记知识点总结 #### 第一章:编程基础 1. **Java的特性和优势**: - **简单性**:Java的设计哲学是“使编程变得简单”。 - **面向对象**:Java完全支持面向对象编程概念如封装、继承和多态。 - ...
以上只是Java知识体系的一部分,深入学习Java还需要掌握更多的概念和技术,如反射、注解、泛型、Lambda表达式、并发编程、Spring框架等。通过不断学习和实践,你可以成为一位出色的Java开发者。
本文档主要探讨了Java的基础知识,包括其语言特点、名词解释、计算机执行机制、类的阐述、包管理、常用快捷键以及核心语法元素如内存管理、变量、数据类型、循环结构、函数、数组和面向对象编程概念。 1. Java语言...
Java是一种高级编程语言,它的运行机制融合了编译型和解释型的特点。在Java的世界里,程序员编写的是源代码,通常以.java文件的形式存在。...了解和掌握这些基础知识,对于深入学习和使用Java至关重要。
- **技术**: Java虚拟机(JVM)通过优化实现了高效运行,如即时编译(JIT)技术可以将热点代码转化为本地机器码,显著提升执行速度。 - **表现**: 在大多数应用场景下,Java程序的运行速度接近甚至超过了C++等传统编译型...
Java知识管理是一个广泛的领域,它涵盖了使用Java编程语言进行软件开发、维护和优化时所需的各种技术和实践。在Java的世界里,知识管理不仅涉及到语法、类库、框架,还包括设计模式、并发处理、内存管理、性能优化等...
以下是对标题《关于牛客网Java刷题相关知识总结》中涉及的JVM内存区域、程序计数器、虚拟机栈、堆和方法区等知识点的详细解析: 1. **JVM内存区域概述**: - JVM内存区域主要分为线程共享区域和非线程共享区域。...
- 高性能:Java的JIT(Just-In-Time)编译器能够将热点代码编译成本地代码,提高运行速度。 - 多线程:Java内置对多线程的支持,方便开发者实现并发程序。 - 安全性:Java的类型系统和安全管理器为系统提供了一个...
《深入理解Java虚拟机:JVM高级特性与最佳实践》是Java开发者深入探索JVM的必备书籍,尤其对于想要在Java领域进一步提升的程序员来说,它提供了丰富的理论基础和实践经验。这本书的第二版更是对原有的内容进行了更新...