Java语言概述和开发环境

高级语言的运行机制

计算机高级语言按程序的执行方式可以分为编译型和解释型两种。

1.编译型语言是指使用专门的编译器,针对特定的操作系统将某种高级语言源代码一次性“翻译”成可被该平台硬件执行的机器码并包装成该平台可识别的可执行性程序格式;编译生成的可执行文件只能够在特定平台上运行,运行效率较高。

特点:一次编译,特定平台到处运行;其他平台运行需要修改源程序重新编译;运行效率高。

编译型语言:C,C++,Pascal

2.解释型语言是指使用专门的解释器将源程序逐行解释成特定平台的机器码并立即执行的语言。

特点:边解释边执行,每次运行都要进行解释;运行效率低;跨平台容易,需要提供特定平台解释器。

解释型语言:Ruby,Python

Java程序的运行机制

Java是怎样实现跨平台,一次编写,到处运行的?

Java语言编写的源程序(.java文件)需要经过编译,生成与平台无关的中间代码——字节码文件(.class),然后字节码文件再经过特定平台的虚拟机(JVM)进行解释,将字节码文件解释为与特定平台相关的机器码;这样就实现了一次编写,到处执行。

所以,总得来说,java的跨平台是利用字节码文件的跨平台型实现的;编译器只需要遵守字节码生成规范,生成规范的字节码文件,而各个平台相关的JVM只需要向编译器提供一致的编程接口,编译器生成的与平台无关的字节码就可以被各个平台相关的JVM解释为相应平台的机器码,就实现了java的跨平台特性。

综上,与平台相关的JVM是java跨平台的关键部分。

JVM

虚拟机作为一台抽象的计算机,它和真实的计算机一样,也具有指令集并使用不同的存储区域,它负责执行指令,管理数据、内存和寄存器。

Oracle公司制定了Java虚拟机规范——JVM需要遵守的统一标准,具体规范了JVM的如下细节:

A:指令集

B:寄存器

C:类文件格式

D:栈

E:垃圾回收堆

F:存储区

所有其他组织实现的JVM都遵守了上述规范。

垃圾回收机制

原因:

内存泄露:一些分配出去的内存得不到及时回收,就会引起系统运行速度下降,甚至导致程序瘫痪。

垃圾回收:Java程序的内存分配和回收都是由JRE在后台自动进行的。JRE会负责回收那些不再使用的内存,这种机制为垃圾回收机制。

特点:回收无用对象的内存空间,这些空间都是JVM堆内存里的内存空间,垃圾回收只能回收内存资源。

​ 为了更快地让垃圾回收机制回收那些不再使用的对象,可以将该对象的引用变量设置为null,通过这种暗示可以回收该对象

​ 垃圾回收发生的不可预知性。

准确定位对象之间的引用关系,保证所有对象都能被可靠地回收,所有对象都能被重新分配,减少内存碎片的产生。

你可能感兴趣的:(Java基础,Java基础)