1.4 Java语言运行机制及运行过程

lJava两种核心机制

ØJava虚拟机 (Java Virtal Machine)

Ø垃圾收集机制 (Garbage Collection)1.4 Java语言运行机制及运行过程

核心机制—Java虚拟机

lJVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指

令,管理数据、内存、寄存器

l对于不同的平台,有不同的虚拟机。

l只有某平台提供了对应的java虚拟机,java程序才可在此平台运行

lJava虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行

1.4 Java语言运行机制及运行过程

核心机制垃圾回收

l不再使用的内存空间应回收—— 垃圾回收。

ØC/C++等语言中,由程序员负责回收无用内存。

ØJava 语言消除了程序员回收无用内存空间的责任:它提供一种系统级线程跟踪存储空

间的分配情况。并在JVM空闲时,检查并释放那些可被释放的存储空间。

l垃圾回收在Java程序运行过程中自动进行,程序员无法精确控制和干预。

lJava程序还会出现内存泄漏和内存溢出问题吗?Yes!1-5 Java语言的环境搭

1.5 Java语言的环境搭建

78?9?10?11?

1.5 Java语言的环境搭建

l明确什么是JDK, JRE

l下载 JDK

l安装 JDK

l配置环境变量

Øpathwindows系统执行命令时要搜寻的路径。

l验证是否成功:javac java

l选择合适的文本编辑器或 IDE 开发

1.5 Java语言的环境搭建

什么是JDKJRE

JDK(Java Development Kit Java开发工具包)

JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了

JRE。所以安装了JDK,就不用在单独安装JRE了。

Ø 其中的开发工具:编译工具(javac.exe) 打包工具(jar.exe)

JRE(Java Runtime Environment Java运行环境)

包括Java虚拟机(JVM Java Virtual Machine)Java程序所需的核心类库等,

如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

简单而言,使用JDK的开发工具完成的java程序,交给JRE去运行。

1.5 Java语言的环境搭建:JDKJREJVM关系

Java 8.0 Platform

1.5 Java语言的环境搭建:JDKJREJVM关系

• JDK = JRE + 开发工具集(例如Javac编译工具等)

• JRE = JVM + Java SE标准类库

1.5 Java语言的环境搭建:下载并安装JDK

l官方网址:

Øwww.oracle.com

Øjava.sun.com

l安装JDK

Ø傻瓜式安装,下一步即可。

Ø建议:安装路径不要有中文或者空格等特殊符号。

Ø如果操作系统是64位的,软件尽量选择支持64位的(除非软件本身不区分)。

Ø当提示安装 JRE 时,正常在JDK安装时已经装过了,但是为了后续使用Eclipse等开发

工具不报错,建议也根据提示安装JRE

1.5 Java语言的环境搭建

配置环境变量 path

ldos命令行中敲入javac,出现错误提示:

l错误原因:当前执行的程序在当前目录下如果不存在,windows系统会在系

统中已有的一个名为path的环境变量指定的目录中查找。如果仍未找到,会

出现以上的错误提示。所以进入到 jdk安装路径\bin目录下,执行javac,会

看到javac参数提示信息。

1.5 Java语言的环境搭建

配置环境变量 path

每次执行 java 的工具都要进入到bin目录下,是非常麻烦的。可不可以在任何目

录下都可以执行java的工具呢?

l根据windows系统在查找可执行程序的原理,可以将java工具所在路径定义到

path 环境变量中,让系统帮我们去找运行执行的程序。

l配置方法:

Ø我的电脑属性高级系统设置环境变量

Ø编辑 path 环境变量,在变量值开始处加上java工具所在目录,后面用 “ ; ”和其他值分隔

开即可。

Ø打开DOS命令行,任意目录下敲入javac。如果出现javac 的参数信息,配置成功。

注: 具体操作流程,参看JDK8下载_安装_配置.docpath

D:\developer_tools\Java\jdk1.8.0_131\bin;

path:window操作系统执行命令时,所要搜寻的路径

目的:希望D:\developer_tools\Java\jdk1.8.0_131路径下的命令可以在任何文件

路径下执行

JAVA_HOME=

D:\developer_tools\Java\jdk1.8.0_131

%JAVA_HOME%\bin;

1.5 Java语言的环境搭建

配置完path环境变量以后的验证1-dl步骤:

1. Java 代码编写到扩展名为 .java 的文件中。

2. 通过 javac 命令对该 java 文件进行编译

3. 通过 java 命令对生成的 class 文件进行运行

.java文件

.class文件

结 果

javac.exe

编 译

java.exe

运 行

源文件

1.6 开发体验 — HelloWorld

字节码文件

1.6 开发体验 — HelloWorld

l 步骤一:编写

Ø 选择最简单的编辑器:记

事本。

Ø 敲入代码 class Test{ }

将文件保存成Test.java,这个

文件是存放java代码的文件,

称为源文件。

取消勾选

1.6 开发体验 — HelloWorld

第一个Java程序

public class Test{

public static void main(String[] args) {

System.out.println(“Hello World!”);

}

}

1.6 开发体验 — HelloWorld

l 步骤二:编译

Ø 有了java源文件,通过编译器将其编译成JVM可以识别的字节码文件。

Ø 在该源文件目录下,通过javac编译工具对Test.java文件进行编译。

Ø 如果程序没有错误,没有任何提示,但在当前目录下会出现一个Test.class

件,该文件称为字节码文件,也是可以执行的java的程序。

1.6 开发体验 — HelloWorld

l 步骤三:运行

Ø 有了可执行的java程序(Test.class字节码文件)

Ø 通过运行工具java.exe对字节码文件进行执行。

Ø 出现提示:缺少一个名称为main的方法。

Ø 因为一个程序的执行需要一个起始点或者入口,所以在Test类中的加入public static void

main(String[] args){ }

Ø 对修改后的Test.java源文件需要重新编译,生成新的class文件后,再进行执行。

Ø 发现没有编译失败,但也没有任何效果,因为并没有告诉JVM要帮我们做什么事情,也就是

没有可以具体执行的语句。

Ø 想要和JVM来个互动,只要在main方法中加入一句System.out.println(“Hello World”);因为程

序进行改动,所以再重新编译,运行即可。1-7

1.7 常见问题及解决方法

Ø 源文件名不存在或者写错

Ø 当前路径错误

Ø 后缀名隐藏问题

Ø 类文件名写错,尤其文件名与类名不一致时,要小心

Ø 类文件不在当前路径下,或者不在classpath指定路径下

1.7 常见问题及解决方法

Ø声明为public的类应与文件名一致,否知编译失败

Ø 编译失败,注意错误出现的行数,再到源代码中指定位置改错

1.7 常见问题及解决方法

总结:

学习编程最容易犯的错是语法错误Java要求你必须按照语法规则编写代码。

如果你的程序违反了语法规则,例如:忘记了分号、大括号、引号,或者拼

错了单词,java编译器都会报语法错误。尝试着去看懂编译器会报告的错误

信息。