Java语言与开发环境

本文深入解析Java作为编译型与解释型双重特性的语言,其程序如何通过编译成平台无关的字节码,再由Java虚拟机(JVM)解释执行。详细介绍了JVM的角色、JDK与JRE的组成部分,以及垃圾回收机制如何自动管理内存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java程序运行机制

。Java是一种特殊高级语言,既有解释型语言特征,也有编译型语言特征。

。Java程序要先编译后解释

高级语言运行机制

。高级语言按程序执行方式分为编译型语言和解释型语言

。。编译型语言:

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

*编译型语言程序编译成特定平台机器码,编译生成的可执行性程序通常无法移植到其他平台

*C、C++、Objective-、Pascal等

*若要移植,则需将代码赋值到特定平台,针对特定平台进行修改

 。。解释型语言:

*每次执行解释型语言程序都需要进行编译,不能脱离解释器独立运行,运行效率较低

*跨平台容易,提供特定平台解释器即可

*可方便实现源程序的移植,D但以牺牲执行效率为代价

*Ruby、Python

Java程序的运行机制和JVM

。Java既是编译型语言也是解释型语言/Java既不是纯粹编译型语言,也不是纯粹解释型语言

。Java执行过程需经过先编译后解释:

。。java语言需要经过编译步骤,但该编译步骤不会生成特定平台的机器码,而是生成与平台无关的字节码(.class文件)。

。。该字节码不可执行,必须使用java解释器来解释执行

。。java程序执行步骤

*Java虚拟机(JVM=JavaVirtual Machine)解释执行字节码文件(*.class)

    **JVM是可运行java字节码的虚拟计算机

    **所有平台上的JVM向编译器提供相同的编程接口,而编译器只需面相虚拟机 

。JDK(Java SE Development Kit,Java标准开发包)

    。。提供编译、运行Java程序所需的各种工具和资源

       *Java编译器

       *Java运行时环境

       *常用jJava类库

。JVM与JRE(Java Runtime Environment,Java运行时环境)关系

。。JRE包括JVM。

*JVM是运行java程序的核心虚拟机;

*运行java程序需要核心虚拟机外,还需要其他类加载器、字节码校验其以及大量的基础类库。

*JRE包括JVM以及运行java程序的其他环境支持

CLASSPATH环境变量

 。使用1.5以上版本的JDK可以不设置环境变量(*)

。CLASSPATH区别大小写 

垃圾回收机制

。Java程序内存分配和回收都是由JRE在后台自动进行的——垃圾回收机制

       。。JRE提供一个后台线程来进行检测和控制,一般都是在CPU空闲或不足时自动进行垃圾回收

。优点

       。。垃圾回收机制提高编效率

  。。垃圾回收机制保护程序的完整性——安全性策略的重要部分

。特点

       。。垃圾回收机制的目标是回收无用对象的内存空间

              *这些内存空间都是JVM堆内存里的内存空间

              *垃圾回收机制只回收内存资源,非其他物力资源(数据库连接、磁盘I/O)

       。。可将对象的的引用变量设置为null来暗示垃圾回收机制可以回收的对象

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

              *JVM才用了不同的垃圾回收机制

     。。垃圾回收精确性

           *垃圾回收标记能精确标记活着的对象

           *垃圾回收器能够精确对象之间的的关系

    。。JVM有多种不同的垃圾回收实现

转载于:https://www.cnblogs.com/Demetris/p/9070989.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值