运行机制及运行过程
核心机制—Java 虚拟机
JVM 是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指
令,管理数据、内存、寄存器。
对于不同的平台,有不同的虚拟机。
只有某平台提供了对应的java虚拟机,java程序才可在此平台运行
Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”
JDK、JRE、JVM
简单而言,使用JDK 的开发工具完成的java 程序,交给JRE 去运行。
JDK = JRE + 开发工具集(例如Javac编译工具等)
JRE = JVM + Java SE标准类库
置环境变量 path
在dos命令行中敲入javac,出现错误提示:
错误原因:当前执行的程序在当前目录下如果不存在,windows系统会在系统中已有的一个名为path的环境变量指定的目录中查找。如果仍未找到,会出现以上的错误提示。所以进入到 jdk安装路径\bin目录下,执行javac,会看到javac参数提示信息。
每次执行 java 的工具都要进入到bin目录下,是非常麻烦的。可不可以在任何目录下都可以执行java的工具呢?
根据windows系统在查找可执行程序的原理,可以将java工具所在路径定义到path 环境变量中,让系统帮我们去找运行执行的程序。
配置方法:
我的电脑—属性—高级系统设置—环境变量
编辑 path 环境变量,在变量值开始处加上java工具所在目录,后面用 “ ; ”和其他值分隔开即可。
打开DOS命令行,任意目录下敲入javac。如果出现javac 的参数信息,配置成功。
注: 具体操作流程, 参看JDK8 下载 安装 配置.doc
配置完path环境变量以后的验证
HelloWord
步骤一:编写
选择最简单的编辑器:记事本。
敲入代码 class Test{ }将文件保存成Test.java,这个文件是存放java代码的文件,称为源文件。
步骤二 :编译
有了java源文件,通过编译器将其编译成JVM可以识别的字节码文件。
在该源文件目录下,通过javac编译工具对Test.java文件进行编译。
如果程序没有错误,没有任何提示,但在当前目录下会出现一个Test.class文件,该文件称为字节码文件,也是可以执行的java的程序。
步骤三:运行
有了可执行的java程序(Test.class字节码文件)
通过运行工具java.exe对字节码文件进行执行。
出现提示:缺少一个名称为main的方法。
因为一个程序的执行需要一个起始点或者入口,所以在Test类中的加入public static void main(String[] args){ }
对修改后的Test.java源文件需要重新编译,生成新的class文件后,再进行执行。
发现没有编译失败,但也没有任何效果,因为并没有告诉JVM要帮我们做什么事情,也就是没有可以具体执行的语句。
想要和JVM来个互动,只要在main方法中加入一句System.out.println(“Hello World”);因为程序进行改动,所以再重新编译,运行即可。
常见问题及解决方法
源文件名不存在或者写错
当前路径错误
后缀名隐藏问题
类文件名写错,尤其文件名与类名不一致时,要小心
类文件不在当前路径下,或者不在classpath指定路径下
声明为public的类应与文件名一致,否则编译失败
编译失败,注意错误出现的行数,再到源代码中指定位置改错
总结:
学习编程最容易犯的错是语法错误。Java要求你必须按照语法规则编写代码。如果你的程序违反了语法规则,例如:忘记了分号、大括号、引号,或者拼错了单词,java编译器都会报语法错误。尝试着去看懂编译器会报告的错误信息。
注释
单行注释
格式: //注释文字
多行注释
格式: / 注释文字 /
注:
对于单行和多行注释,被注释的文字,不会被JVM(java虚拟机)解释执行。多行注释里面不允许有多行注释嵌套。
文档 注释(Java 特有)
格式:/*
@author 指定java 程序的作者
@version 指定源文件的版本
/
注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形
式体现的该程序的说明文档。
操作方式
小结 第一个程序
Java源文件以“java”为扩展名。源文件的基本组成部分是类(class),如本例中的HelloWorld类。
Java应用程序的执行入口是main()方法。它有固定的书写格式:public static void main(String[] args) {…}
Java语言严格区分大小写。
Java方法由一条条语句构成,每个语句以“;”结束。
大括号都是成对出现的,缺一不可。
一个源文件中最多只能有一个public类。其它类的个数不限,如果源文件包含一个public类,则文件名必须按该类名命名。