Java语言的工作原理及特点
- 格式:doc
- 大小:53.00 KB
- 文档页数:3
南航java面试题一、简介Java,一种面向对象的编程语言,在计算机科学领域得到广泛应用。
作为南航面试的一部分,以下是一些常见的Java面试题。
本文将逐一介绍这些问题,并提供详细的解答。
二、面试题目及解答1. 说说Java的特点以及与其他编程语言的区别。
Java的特点:- 简单性:Java语法相对简单易懂,容易上手。
- 面向对象:Java是一种纯粹的面向对象编程语言,支持封装、继承、多态等面向对象的特性。
- 跨平台性:Java程序可以在不同的操作系统上运行,这要归功于Java虚拟机(JVM)。
- 健壮性:Java通过垃圾回收机制、异常处理等机制保证程序的稳定性。
- 安全性:Java提供了丰富的安全措施,如访问控制、类型检查等。
- 高性能:Java通过JIT(即时编译器)和面向对象设计,提供了良好的性能。
与其他编程语言的区别:- C/C++:Java相对于C/C++更易学、更安全;Java具有跨平台性,而C/C++需要为不同平台编写不同的代码;Java具有自动垃圾回收机制,而C/C++需要手动管理内存。
- Python:Java比Python更适合大型项目,因为Java有更好的性能和多线程支持;Java需要提前编译,而Python是解释型语言。
- JavaScript:Java是一种后端语言,而JavaScript主要用于前端开发;Java是一种强类型语言,而JavaScript是一种动态类型语言。
2. 请解释Java中的异常处理机制。
Java的异常处理机制通过try-catch-finally语句块来实现。
当程序出现异常时,会抛出一个异常对象,如果这个异常对象没有被捕获,程序将终止执行。
try-catch语句块用于捕获并处理异常。
try块中包含可能会抛出异常的代码,当异常发生时,程序会跳转到与其匹配的catch块进行处理。
catch块中可以指定捕获特定类型的异常,也可以使用通用的Exception 类型来捕获所有异常。
基础学javaJava,是一门面向对象的、直译式计算机编程语言,由Sun Microsystems公司于1995年5月推出,是一种高级编程语言。
它使得开发者能够以更加简单和高效的方式来创建客户端,服务器端以及嵌入式应用程序。
Java拥有许多强大的性质,使它比其他编程语言更具优势。
在学习Java之前,首先了解Java的基本概念以及其工作原理。
Java属于一种具有跨平台性能的编程语言,因此可以在操作系统上运行。
Java具有许多优点,如可移植性,安全性,多线程支持,持久性,可重新使用性等。
此外,Java还拥有许多强大的类库,可帮助程序员更快速地开发软件,而不需要编写多余的代码。
学习Java的首要步骤是要熟悉Java编程语言的基本知识。
像所有的编程语言一样,Java也有许多基本概念,如变量、数据类型、类、接口、程序流程和处理等。
为了学习它们,必须先了解Java的编译器,它可以把Java代码转换成机器语言,因此我们可以在机器上执行它。
另外,Java的基本思想之一就是封装,即将复杂性封装起来,使开发者不需要担心底层实现即可使用它。
封装也可以让开发者在编程过程中更加有效率,减少重复性工作。
此外,封装还可以帮助开发者保护他们的程序逻辑,从而更加安全。
接下来,开发者应当学习Java的基本技术,以及熟悉Java的API(应用程序编程接口)。
API可以帮助开发者更有效地创建软件,因为它可以帮助开发者实现特定的功能,同时也可以帮助开发者降低软件的开发成本。
学习Java也应该涉及到框架,它是用于让开发者更轻松地开发软件的工具。
Java框架可以帮助开发者提高开发效率,减少重复性工作,它同时还能确保代码的可重用性和可维护性。
框架还可以帮助开发者更好地利用Java API,它们的组合可以帮助开发者更轻松地创建软件。
最后,Java的文档是一个必不可少的学习资源,它可以帮助开发者更有效地学习技术。
它包括Java概念,参考文档,实例和解决方案。
java 原理
Java是一种面向对象的编程语言,由SUN Microsystems公司(现已
被Oracle Corporation收购)开发。
Java编程语言具有可移植性、高效性、安全性和易学性等特点,因此被广泛应用于Web应用程序、桌面应用
程序和移动应用程序等领域。
Java的工作原理如下:
1. 编写Java代码:Java代码是基于面向对象编程(OOP)的,它通
过类和对象封装数据和行为。
2. 编译Java代码:Java代码经过编译器编译成字节码文件
(.class),字节码是一种中间代码,它可以在任何平台上执行。
3. Java虚拟机(JVM):Java虚拟机是Java平台的核心组件,它是
一个运行字节码文件的虚拟计算机。
JVM负责将字节码文件转换成机器语言,并且管理内存、线程、安全和性能等方面。
4. 执行Java程序:一旦JVM加载了字节码文件,它就会在内存中生
成对象并运行程序。
在运行时,JVM会根据程序的需求来执行相应的操作。
当程序执行完毕或者发生异常的时候,JVM会终止程序的执行。
总之,Java的核心思想是“Write once, run anywhere”(一次编写,到处运行),这意味着Java程序的字节码可以在不同的平台上运行,而不需要重新编译。
这是Java成为流行编程语言之一的重要原因之一。
1.1 java语言的发展史1.1.1java语言在互联网时代获得巨大成功大家想一想,在PC下用windows编写的程序能够不做修改就直接拿到UNIX系统上运行吗?显然是不可以的,因为程序的执行最终必须转换成为计算机硬件的机器指令来执行,专门为某种计算机硬件和操作系统编写的程序是不能够直接放到另外的计算机硬件上执行的,至少要做移植工作。
要想让程序能够在不同的计算机上能够运行,就要求程序设计语言是能够跨越各种软件和硬件平台的,而java满足了这一需求。
1995年,美国Sun Microsystems公司正式向IT业界推出了java语言,该语言具有安全、跨平台、面向对象、简单、适用于网络等显著特点,当时以web为主要形式的互联网正在迅猛发展,java语言的出现迅速引起所有程序员和软件公司的极大关注,程序员们纷纷尝试用java语言编写网络应用程序,并利用网络把程序发布到世界各地进行运行。
包括IBM、Oracle、微软、Netscape、Apple、SGI等大公司纷纷与Sun Microsystems公司签订合同,授权使用java平台技术。
微软公司总裁比尔盖茨先生在经过研究后认为"java语言是长时间以来最卓越的程序设计语言"。
目前,java语言已经成为最流行的网络编程语言,截止到2001年中,全世界大约有310万java程序员,许多大学纷纷开设java课程,java正逐步成为世界上程序员最多的编程语言。
在经历了以大型机为代表的集中计算模式和以PC机为代表的分散计算模式之后,互联网的出现使得计算模式进入了网络计算时代。
网络计算模式的一个特点是计算机是异构的,即计算机的类型和操作系统是不一样的,例如SUN工作站的硬件是SPARC体系,软件是UNIX中的Solaris操作系统,而PC机的硬件是INTEL体系,操作系统是windows或者是Linux,因此相应的编程语言基本上只是适用于单机系统,例如COBOL、FORTRAN、C、C ++等等;网络计算模式的另一个特点是代码可以通过网络在各种计算机上进行迁移,这就迫切需要一种跨平台的编程语言,使得用它编写的程序能够在网络中的各种计算机上能够正常运行,java就是在这种需求下应运而生的。
Java语言JIT编译器优化技术Java语言是一种广泛应用于软件开发领域的高级编程语言。
它的特点是可移植性强、运行效率高和安全性好。
在Java语言的编译和执行过程中,JIT(Just-In-Time)编译器起到了重要的作用。
本文将介绍Java语言JIT编译器的工作原理以及优化技术,以便读者更好地理解Java的执行机制。
1. JIT编译器概述JIT编译器是Java虚拟机(JVM)的一部分,它在程序运行时将字节码转换为本地机器码,实现代码的动态编译。
与传统的静态编译方式不同,JIT编译器可以根据程序的实际运行情况进行优化,提高代码的执行效率。
2. JIT编译器的工作原理JIT编译器的工作原理可以分为两个阶段:解释执行阶段和编译执行阶段。
2.1 解释执行阶段在程序刚开始执行时,JVM将字节码解释成机器码,并逐条执行。
这种解释执行的方式可以快速地将程序运行起来,但同时也带来了一些性能损失。
由于解释执行时需要进行大量的指令解析和操作数栈操作,导致程序执行效率较低。
2.2 编译执行阶段为了提高程序的执行效率,JIT编译器在解释执行阶段的基础上,对热点代码进行即时编译。
热点代码指的是程序中频繁执行的代码段,如循环体、方法调用等。
JIT编译器会监测程序的运行情况,根据一定的策略判断哪些代码段是热点代码,并将其编译成本地机器码。
编译后的机器码执行速度更快,可以有效提高程序的性能。
3. JIT编译器的优化技术为了进一步提高Java程序的执行效率,JIT编译器采用了许多优化技术。
下面介绍几种常用的优化技术:3.1 内联优化内联是指将被频繁调用的方法或函数直接插入到调用处,避免了方法调用的开销。
JIT编译器通过分析方法的调用情况,决定是否对方法进行内联优化。
3.2 逃逸分析逃逸分析是一种动态分析技术,用于确定对象是否逃逸出当前方法、线程或堆栈。
如果对象没有逃逸,JIT编译器可以对其进行栈上分配,避免了堆内存的分配和垃圾回收的开销。
java jit编译Java是一种高级编程语言,由于其安全性、可移植性和易于学习等特点而得到了广泛应用。
但是,与其他编程语言相比,Java编译器的执行速度相对较慢。
为了弥补这个问题,Java引入了JIT(Just-in-time)编译技术。
本文将围绕着JIT编译展开阐述,深入探究其原理和优化效果。
一、JIT编译技术是什么JIT编译是Just-in-time编译的缩写,是一种实时编译技术。
它是把Java字节码转换成本地机器指令的过程,并负责将其作为已编译程序缓存起来。
Java应用程序的执行过程中,它会把方法和类在首次执行时编译成机器语言,以后再执行同样的方法和类时就可以直接使用编译好的代码,从而提高程序的执行速度。
JIT编译将Java代码先转化为机器码后再执行,提高了程序运行效率,同时减少内存的开销。
二、JIT编译技术的工作原理1. 首先,在Java应用程序运行时,JVM会在内存中执行Java字节码。
2. 当JVM检查到有频繁执行的代码块时,JIT编译器就会把这部分代码转换成机器码,并将其保存在内存中。
同时,JIT编译器会记录这些代码块的执行时间和访问次数,以供下次使用。
3. JIT编译器还会根据代码块的执行情况和优化等级,动态调整代码优化的程度。
这一过程称为优化。
4. 当代码块被再次执行时,JVM会自动加载优化后的机器码,而不是再次执行Java字节码。
这样,程序的执行速度就会大大提高。
三、JIT编译技术的优势1. JIT编译技术能够实现即时编译,将代码块转换为本地机器代码,提高Java程序的执行速度,使得Java应用程序的运行速度更加快速和流畅。
2. JIT编译技术还能够对代码进行实时的优化,根据代码块所处的环境和运行情况,调整优化等级,进一步提高程序的执行效率和性能。
3. JIT编译技术可以减少内存的占用,提高代码执行效率。
这是通过将编译后的代码存入内存中,并在下次执行时直接加载编译后的代码来实现的。
Java语言JIT编译器工作原理解析Java语言JIT(Just-In-Time)编译器是Java虚拟机(JVM)的核心组成部分之一,它的作用是将Java字节码实时地转换为本地机器码,以提高程序的执行效率。
本文将深入探讨JIT编译器的工作原理,以及它在Java应用程序中的重要性。
一、JIT编译器的基本概念JIT编译器是Java虚拟机的即时编译器,它的任务是在运行时将Java字节码转换为机器码,并进行优化,以达到更高的执行速度。
与传统的编译器不同,JIT编译器不会一次性将整个程序编译成机器码,而是根据程序的实际运行情况动态地去选择需要编译的代码块,并将其编译为机器码。
这种即时编译的方式使得程序的执行效率得以提升。
二、JIT编译器的工作过程JIT编译器的工作过程可以分为三个主要的阶段:解释阶段、编译阶段和优化阶段。
1. 解释阶段在程序刚开始执行时,Java虚拟机会通过解释器对Java字节码进行解释执行。
解释器会逐行地解释字节码指令,并将其转换为对应的机器码进行执行。
由于解释执行过程较为耗时,因此解释阶段的执行效率较低。
2. 编译阶段当解释器发现某一段代码被频繁执行时,JIT编译器会将该代码块进行即时编译。
编译器将字节码转换为本地机器码,并存储起来以供后续的执行使用。
此时,该段代码的执行效率会大幅提升。
3. 优化阶段在编译阶段之后,JIT编译器会对编译生成的机器码进行优化。
优化的目标是进一步提升代码的执行效率和性能。
优化的过程包括代码内联、循环展开、逃逸分析等技术手段,以及针对不同硬件平台的优化策略。
三、JIT编译器的优势和重要性JIT编译器的引入使得Java语言在执行效率方面与传统的编译语言逐渐拉近了差距。
以下是JIT编译器的优势和重要性:1. 动态编译:JIT编译器能够根据实际的运行情况对代码进行动态编译,使得程序能够在运行时实现及时的优化和改进。
2. 提高执行效率:通过将热点代码编译为本地机器码,并进行优化,JIT编译器可以显著提高程序的执行效率,降低执行时间。
java feature 原理
Java是一种非常受欢迎的编程语言,其拥有众多的特性使其成为了广泛使用的工具。
这篇文章将就Java的特性进行详细阐述,以帮助读者更好地理解Java的工作原理。
1.面向对象编程
Java是一种面向对象的编程语言,这意味着它的代码使用对象和类的方式进行组织和维护。
这使得Java代码更易于维护和重用,并且更加灵活。
2.跨平台性
Java的跨平台性是它最独特的特性之一,这是因为Java编译器编译时会将代码转成字节码,而不是机器语言,这使得Java可以在任何支持Java虚拟机(JVM)的操作系统上运行。
3.高性能
Java的性能经过了多年的优化,在很大程度上得益于它的Just-In-Time(JIT)编译器。
JIT编译器可将Java字节码转换为高效的本地机器代码,大大提高了Java程序的性能。
4.自动内存管理
Java的垃圾回收机制让程序员不必过多地关注内存管理问题。
Java的垃圾收集器定期清理无用的对象,从而避免了很多内存泄漏和内存管理问题。
5.异常处理
Java在处理异常方面表现优秀,它允许程序员使用“捕获并处理”方式来处理异常,从而使程序更加稳定和健壮。
6.多线程支持
Java的多线程支持使程序员能够轻松地开发多线程程序,这有助于提高程序的并发性能和响应能力。
在结束本文之前,还需要注意的是,Java的功能很多,并且不断
发展,这篇文章只是对Java特性的一个简单介绍。
如果想要真正提高Java编程能力,我们需要不断学习和实践,以掌握更深入的知识。
Java语言JIT编译器原理概述Java是一种广泛应用于开发各类应用程序的编程语言,而JIT(即时编译)编译器则是Java语言的一个重要组成部分。
本文将对Java语言JIT编译器的原理进行概述。
一、JIT编译器的定义和作用JIT编译器(Just-In-Time Compiler)是一种将字节码(Bytecode)实时编译成机器码的编译器。
与传统的解释器不同,JIT编译器会在运行时将字节码转换为机器码,并直接执行机器码,从而提高Java程序的执行效率。
JIT编译器的作用主要体现在两个方面:一方面,它可以针对特定的运行环境和硬件平台生成高效的机器码,提升程序的执行速度。
另一方面,JIT编译器可以根据程序的执行情况,动态地优化代码,以进一步提高程序的性能。
二、JIT编译器的工作原理1. JIT编译器的启动在Java程序运行时,首先会通过解释器将字节码解释为对应的机器指令,并执行解释后的指令。
当解释器发现某个方法或代码块的运行频率较高时,就会通知JIT编译器对该部分代码进行实时编译。
2. 编译过程JIT编译器在进行实时编译时,会通过多个阶段对字节码进行优化。
常见的优化技术包括:方法内联(Method Inlining)、循环展开(Loop Unrolling)、公共子表达式消除(Common Subexpression Elimination)等。
这些优化手段可以提高程序的执行效率,减少不必要的计算和内存开销。
3. 编译结果的缓存与分享JIT编译器将字节码编译为机器码后,通常会将编译结果缓存起来,以便重复使用。
此外,不同的Java虚拟机实例之间也可以共享编译结果,从而避免重复编译同样的代码。
三、JIT编译器的优势和不足JIT编译器相较于传统的解释器,具有以下优势:1. 提高程序的执行速度:通过将字节码实时编译为机器码,JIT编译器可以显著提高Java程序的执行速度,尤其是对于那些运行频率较高的代码块。
2. 动态优化:JIT编译器可以根据程序的运行情况动态地进行优化,从而提升程序的性能。
2019年第24期信息与电脑China Computer & Communication软件开发与应用计算机软件开发中Java编程语言的运用探析严 芮(山东管理学院,山东 济南 250357)摘 要:计算机软件开发的编程语言不同,软件功能、性能等也会存在明显差异。
通过分析Java编程语言的基本原理、特点、应用流程等,笔者重点阐述了Java编程语言在计算机软件开发,尤其是对其在游戏软件开发、互联网模块设置等方面的应用展开讨论,旨在进一步提升Java编程语言的实际应用效果。
关键词:计算机;Java;软件开发中图分类号:TP311.52;TP312.2 文献标识码:A 文章编号:1003-9767(2019)24-049-02 Analysis of the Application of Java Programming Language in ComputerSoftware DevelopmentYan Rui(Shandong Management University, Jinan Shandong 250357, China)Abstract: Based on the development of computer software, there are obvious differences in programming language, software function and performance. By analyzing the basic principles, characteristics, and application processes of the Java programming language, the author elaborates on the use of the Java programming language in computer software development, and especially discusses its application in game software development and Internet module settings, with the aim of further improving the practical application effect of the Java programming language.Key words: computer; Java; software development0 引言软件程序的开发及应用环境,对软件功能有直接的影响。
java基础知识总结:一:java概述:1991 年Sun公司的James Gosling(詹姆斯·高斯林)等人开始开发名称为Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器;1994年将Oak语言更名为Java;Java的三种技术架构:JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发;JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础;JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序;1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。
2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。
3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。
环境变量的配置:1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdk path=%JAVA_HOME%\bin2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。
classpath的配置:1):永久配置方式:classpath=.;c:\;e:\2):临时配置方式:set classpath=.;c:\;e:\注意:在定义classpath环境变量时,需要注意的情况如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件;如果指定了classpath,那么会在指定的目录下查找要运行的类文件。
Java工作原理Java是一种广泛使用的编程语言,具有跨平台、面向对象、高性能等特点。
了解Java的工作原理对于开辟人员来说至关重要,下面将详细介绍Java的工作原理。
1. Java虚拟机(JVM)Java程序在运行时需要被编译成字节码,然后由Java虚拟机(JVM)解释执行。
JVM是Java的核心组成部份,它负责将字节码转换为机器码,并提供内存管理、垃圾回收等功能。
JVM的工作原理如下:- 类加载:JVM通过类加载器将字节码加载到内存中,并进行校验、准备和解析等操作。
类加载器按照特定的顺序搜索类文件,并将其加载到内存中。
- 字节码解释执行:JVM将字节码解释为机器码,并逐条执行。
解释执行的优势在于可以实现跨平台的特性,但相对于直接编译成机器码来说,执行效率较低。
- 即时编译(Just-In-Time Compilation):JVM通过即时编译将热点代码(时常执行的代码)编译成本地机器码,以提高执行效率。
- 内存管理:JVM提供了垃圾回收机制,自动管理内存的分配和释放。
它通过标记-清除、复制、标记-整理等算法来回收再也不使用的对象,以避免内存泄漏和溢出的问题。
2. Java编译器Java源代码需要通过编译器将其转换为字节码,然后才干在JVM上运行。
Java 编译器将源代码分析、语法检查、语义分析等步骤后,生成与平台无关的字节码文件。
Java编译器的工作原理如下:- 词法分析:编译器将源代码分解成一个个的词法单元,如关键字、标识符、运算符等。
- 语法分析:编译器根据语法规则将词法单元组合成语法树,以验证代码的正确性。
- 语义分析:编译器对语法树进行分析,检查变量的声明和使用是否符合规范,进行类型检查等。
- 代码生成:编译器将语法树转换为字节码,并生成与平台无关的字节码文件。
3. Java运行时环境(JRE)JRE是Java程序运行所需的环境,包括JVM和Java类库。
JRE提供了Java程序运行所需的基础设施,如线程管理、文件操作、网络通信等功能。
Java语言的工作原理及特点
1. Java是一门怎样的语言
Sun公司出品了Java,它对Java语言有专门的描述:
“Java is a simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded, and dynamic language.”
它告诉你Java是简单的、面向对象的、分布式的、解释的、健壮的、安全的、结构中立的、轻便的、高性能的、多线程的动态语言。
所有这些形容词恰恰指明了Java语言的特点和工作原理。
2. 跨平台特性
关于Java程序,有一句口号式的经典描述—“Write once, Run anywhere”,其中文意思是“一次编写,到处运行”。
这指的正是Java语言跨平台的特性。
Java源代码被编译成一种结构中立的中间文件格式,在机器上能直接执行这种中间代码,不管机器是什么型号的,操作系统是哪种。
但有一个必要的前提:那台运行Java程序的机器上需要预先安装Java运行系统。
Java运行系统又称为Java虚拟机(简称JVM),它可以从网站免费下载,不同的操作系统需要安装对应的JVM版本。
而Java
的跨平台特性即通过JVM实现。
图1-1演示了Java程序的跨平台特性。
图1-1 “一次编写,到处运行”
3. 完全面向对象
Java语言是一门面向对象的语言,它比C++等语言新,一张白纸上可以画最美好的图画,20世纪90年代初它就是这样一张白纸,以James Gosling为首的Green项目团队给它画的那幅画是完全面向对象,一切皆为对象。
什么是对象呢?对象是可存储数据的变量和可提供操作的方法的集合。
对象的核心就是两项:变量和方法。
每个对象在内存中都占据独立的空间,每个对象都拥有类型,对象从类型创建而来。
在本书中,面向对象程序设计从第二篇开始细述。
4. 多线程
Java中提供了专门的类,可方便地用于多线程编程。
多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。
多线程的程序可同时执行多个任务,多线程程序具有更好的交互性、实时性。
5. 内存垃圾自动回收
在C++中,对象所占的内存在程序结束运行之前一直被占用,在明确释放之前不能分配给其他对象;而在Java中,JVM的一个系统级线程可以监督对象,它可以发现对象何时不再被使用,原先分配给该对象的内存即成为了垃圾,JVM系统线程会释放该内存块,对象即被销毁,内存垃圾就被自动回收。
事实上,除了释放没用的对象,Java垃圾收集也可以清除内存碎片。
JVM将经过碎片整理后的内存分配给新的对象。
6. 简洁有效
Java语言的语法大多基于C++,但Java更加严谨、简洁。
这体现在如下方面:
Java去除了C++中一些难以理解、容易混淆的因素,如头文件、指针、结构体等;避免了赋值语句与逻辑运算语句的混淆;避免了隐藏变量带来的困惑,如“if(a = 3)…;”,在C++中是没问题的,而在Java中是错误的;取消了多重继承这一复杂的继承机制。
Java提供了对内存的自动管理:内存分配、内存释放。
Java提供了丰富的类库,有利于软件开发的高效和标准化。
7. 健壮且安全
一个Java程序从编写到运行出结果的全过程如图1-2所示。
图1-2 Java程序从编写到运行全过程
Java程序首先要通过编译的环节,而Java有着最严格的“编译器”,可在编译阶段尽早发现错误,只有纠错完毕才能编译成功,生成字节码文件。
这是健壮性的一个保证。
字节码文件通过JVM解释执行,类装入器负责装入运行一个程序需要的所有类,确定整个可执行程序的内存布局。
字节码校验器对装入的代码进行检查。
校验器可发现操作数栈溢出、非法数据类型转换等多种错误。
解释执行的机制是又一个健壮保证。
另外解释器的沙盒运行模式,Java网络程序被限制访问本地资源,这些保障了系统的安全性。