资讯专栏INFORMATION COLUMN

Java 语言概述与开发环境

wangshijun / 1438人阅读

摘要:一次性编译成机器码,脱离开发环境独立运行,运行效率较高。解释型语言使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行的语言。垃圾回收机制保护程序的完整性,垃圾回收是语言安全性策略的一个重要部分。

Java程序运行机制 编译型语言

使用专门的编译器,针对特定平台(操作系统)将某种高级语言源代码一次性“翻译”成可被该平台硬件执行的机器码(包括机器指令和操作数),并包装成该平台所能识别的可执行性程序的格式,这个转换过程称为编译。编译生成的可执行性程序可以脱离开发环境,在特定的平台上独立运行。

一次性编译成机器码,脱离开发环境独立运行,运行效率较高。

编译生成的可执行性程序通常无法移植到其他平台上运行。

解释型语言

使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行的语言。解释型语言通常不会进行整体性的编译和链接处理,解释型语言相当于把编译型语言中的编译和解释过程混合到一起同时完成。

跨平台比较容易,只需提供特定平台的解释器即可,每个特定平台上的解释器负责将源程序解释成特定平台的机器指令即可。

程序运行效率通常较低,而且不能脱离解释器独立运行。

Java程序的运行机制和JVM

Java程序的执行过程必须经过先编译、后解释两个步骤。
Java源文件(.java)→ 使用javac编译 → 字节码文件(.class)→ 使用java解释执行 → 特定平台的机器码

Java语言中负责解释执行字节码文件的是Java虚拟机,即JVM(Java Virtual Machine)JVM是运行字节码文件的虚拟计算机。所有平台上的JVM向编译器提供相同的编程接口,而编译器只需要面向虚拟机,生成虚拟机能理解的代码,然后由虚拟机来解释执行。JVM:指令集+寄存器+类文件的格式+栈+垃圾回收堆+存储区

垃圾回收机制

Java程序的内存分配和回收都是由JRE在后台自动进行的。JRE会负责回收那些不再使用的内存,这种机制被称为垃圾回收(Garbage Collection, GC)。通常JRE会提供一个后台线程来进行检测和控制,一般都是在CPU空闲或内存不足时自动进行垃圾回收,而程序员无法精确控制垃圾回收的时间和顺序等。

Java的堆内存是一个运行时数据区,用以保存类的实例(对象),Java虚拟机的堆内存中存储着正在运行的应用程序所建立的所有对象,这些对象不需要程序通过代码来显示式地释放。

Java虚拟机具有两个显著特点

垃圾回收机制可以很好地提高编程效率。在没有垃圾回收机制时,可能要花许多时间来解决一个难懂的存储器问题。在用Java语言编程时,依靠垃圾回收机制可大大缩短时间。

垃圾回收机制保护程序的完整性,垃圾回收是Java语言安全性策略的一个重要部分。

垃圾回收具有如下几个特点

垃圾回收机制的工作目标是回收无用对象的内存空间,这些内存空间都是JVM堆内存里的内存空间,垃圾回收只能回收内存资源,对其他物力资源,如数据库连接、磁盘I/O等资源则无能为力。

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

垃圾回收发生的不可预知性。不同的垃圾回收机制和不同的垃圾回收算法。

垃圾回收的精确性主要包括两个方面:

垃圾回收机制能够精确地标记活着的对象;

垃圾回收器能够精确地定位对象之间的引用关系。
前者是完全回收所有废弃对象的前提,否则就可能造成内存泄漏;而后者则是实现归并和复制等算法的必要条件,通过这种引用关系,可以保证所有对象都能被可靠地回收,所有对象都能被重新分配,从而有效地减少内存碎片的产生。

现在的JVM有多种不同的垃圾回收实现,每种回收机制因其算法差异可能表现各异,有的当垃圾回收开始时就停止应用程序的运行,有的当垃圾回收运行时允许应用程序的线程运行,还有的在同一时间允许垃圾回收多线程运行。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/65236.html

相关文章

  • 从零开始学 Java 之 基础概述

    摘要:想着纠结来纠结去也没有什么用,不如就从零开始吧。刚开始配置环境的时候,建议对照着学习视频进行配置,看书配置容易出错。本文原创发布于微信公众号,编程思维成长正能量,关注并回复编程阅读等关键字获取免费学习资料 showImg(https://segmentfault.com/img/remote/1460000016088460); 一直关注我的朋友们应该都知道,很早之前我就打算开始写 J...

    thursday 评论0 收藏0
  • Java编程基础01——计算机基础

    摘要:外部存储器可用于长期保存大量程序和数据,其成本低容量大,但速度较慢。 1_计算机概述(了解) A:什么是计算机?计算机在生活中的应用举例 计算机(Computer)全称:电子计算机,俗称电脑。是一种能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。由硬件和软件所组成,没有安装任何软件的计算机称为裸机。常见的形式有台式计算机、笔记本计算机、大型计算机等。 应用举例 ...

    xiangzhihong 评论0 收藏0

发表评论

0条评论

wangshijun

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<