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语言的环境搭建
7?8?9?10?11?
1.5 Java语言的环境搭建
l明确什么是JDK, JRE
l下载 JDK
l安装 JDK
l配置环境变量
Øpath:windows系统执行命令时要搜寻的路径。
l验证是否成功:javac java
l选择合适的文本编辑器或 IDE 开发
1.5 Java语言的环境搭建
什么是JDK,JRE
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语言的环境搭建:JDK、JRE、JVM关系
Java 8.0 Platform
1.5 Java语言的环境搭建:JDK、JRE、JVM关系
• 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
l在dos命令行中敲入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编译器都会报语法错误。尝试着去看懂编译器会报告的错误
信息。