JAVA程序基础(JDK,JRE,JVM)

一、开发和运行环境

1、JDK和JRE的区别是什么?它们各自有什么作用?

JDK(Java Development Kit)是Java开发工具,它不仅提供了Java程序运行所需的JRE(Java Runtime Environment),还提供了一系列的编译,运行等工具(各种类库和工具),如javac、java、javaw等。JRE只是Java程序的运行环境,它最核心的内容就是JVM(Java虚拟机)及核心类库。

2、环境变量CLASSPATH的作用是什么?

CLASSPATH环境变量保存的是一些目录和jar文件的地址,这些路径是为Java程序在编译和运行的时候搜索类而用的。

二、Java语言概述

3、Java与C++程序在编译和运行上有什么区别?

C++源码编译以后,生成的是特定机器可以直接运行的文件,而Java源码经过编译后,生成的是中间的字节码文件。这些字节码文件是需要放在JVM中运行的额,而JVM是有多个平台版本的。因此,Java具有跨平台性,而C++没有。
(注:class文件指的就是字节码文件,而不是专指类编译后的文件。不管是类、接口、枚举或者其他类型,都是编译成class文件的。)

4、什么是JVM及其工作原理

JVM是Java程序运行的平台,是一种用软件模拟出来的计算机,负责执行Java编译好的字节码文件。它有一套非常严格的技术规范,大多数操作系统都可以安装JVM,为Java语言的跨平台性起到了关键的作用。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统,它运行Java程序就好像一台计算机运行C或C++程序一样。

5、Java程序为什么无需delete语句进行内存回收?

Java的堆栈内存数据的释放功能是由垃圾回收器自动进行的,无需程序员显式的调用delete方法。该机制有效的避免了因为程序员忘记释放内存而造成内存溢出的错误,相对于C++等需要显式释放内存的语言,是一种巨大的改进。
(Java虚拟机规范并没有强制规定要实现自动垃圾回收功能,但是目前大多数JVM都实现了自动垃圾回收机制,只是它们各自的实现算法不同。
注:垃圾回收线程是一个优先级很低的线程

你可能感兴趣的:(JAVA程序基础(JDK,JRE,JVM))