第一个Java程序
Java三大版本
-
Write Once , Run Anywhere(Java的跨平台性)
-
JavaSE:标准版(用于桌面程序、控制台开发......)
-
JavaME(不常用):嵌入式开发(手机、小家电......) -
JavaEE:企业级开发(web端,服务器开发......)
目前最为广泛应用的就是JavaEE,而要想将JavaEE学好,必须把JavaSE学好。多思多练,勇于探索,劳逸结合!
JDK、JRE和JVM之间的关系
-
JDK(Java Development Kit)
Java Development Kit 是用于开发 Java 应用程序的软件开发工具,包括了 Java 运行时的环境(JRE)、解释器(Java)、编译器(javac)、Java 归档(jar ——一种软件包文件格式)、文档生成器(Javadoc)等工具。
-
JRE(Java Runtime Environment)
Java Runtime Enviroment 提供 Java 应用程序执行时所需的环境,由 Java 虚拟机(JVM)、核心类、支持文件组成。
-
JVM(Java Virtual Machine)
Java Virtual Machine(Java 虚拟机)有三层含义,分别是:
- JVM规范要求
- 满足 JVM 规范要求的一种具体实现(一种计算机程序)
- 一个 JVM 运行实例,在命令提示符下编写 Java 命令以运行 Java 类时,都会创建一个 JVM 实例。
-
关系
JDK = JRE + 开发工具
JRE = JVM + 类库
JDK开发环境搭建
JDK下载与安装
JDK7或者JDK8是主流,之后的都是在此基础上添加了一些新的特性,这里主要以JDK8为例讲解。
-
百度搜索JDK8,找到下载地址
-
同意协议
-
下载电脑对应版本
我的电脑是windows64的,所以我下载的版本是Windows x64。你们可以根据自己电脑的版本下载,可以在 我的电脑-->属性 里面查看到系统类型。 -
双击安装JDK
-
记住安装的路径
安装的时候会显示安装路径,记得ctrl+C复制到剪贴板上,等下配置环境变量有用。 -
配置环境变量
-
我的电脑-->右键-->属性-->高级系统设置
-
环境变量-->创建JAVA_HOME-->JDK安装路径(刚刚你复制的东西,ctrl+V粘贴出来)
-
配置path变量
在里面加入两个路径:%JAVA_HOME%\bin、%JAVA_HOME%\jre\bin
-
-
测试JDK是否安装成功
-
WIN+R-->打开cmd-->输入 java(空格) -version
若出现关于jdk的版本信息说明安装成功。
-
卸载JDK
- 删除环境变量
- 我的电脑-->右键-->属性-->高级系统设置
- 环境变量-->删除JAVA_HOME
- 删除path相关变量
- 删除前面添加的两个path变量路径即可
- 测试JDK事事都删除成功
- WIN+R-->打开cmd-->输入java(空格) -version
若出现界面为找不到指令,则说明卸载成功!
pass:安装的过程中出现了JMC,不用管。JMC是一个用于对 Java 应用程序进行管理、监视、概要分析和故障排除的工具套件。
JDK重要目录
-
javac:Java编译器,用来将Java程序编译成字节码,即.class文件
-
java:Java解释器,执行已经转换成字节码的Java程序
-
javadoc:文档生成器,创建HTML文件
-
include:包含C语言头文件,支持Java本地接口与Java虚拟机调试程序接口的本地编程技术
-
lib:Java的类库文件
-
src:Java核心类的资源文件
-
jre:Java运行环境
-
第一个Java程序
这里使用的是notepad++这个软件,可以到搜索引擎搜索notepad++下载,也可以使用记事本。
简单介绍一下,notepad++是一款Windows操作系统下的一套文本编辑器。它除了可以用来制作一般的纯文字说明文件,也十分适合编写计算机程序代码。Notepad++ 不仅有语法高亮度显示,也有语法折叠功能,并且支持宏以及扩充基本功能的外挂模组。
-
新建一个文件夹,存放代码
-
新建一个java文件
- 文件后缀名为.java
- Hello.java
- 【注意】系统可能没有显示文件后缀名,我们需要手动打开
- 文件资源管理器-->查看-->文件扩展名前面点‘√’
- 或者,文件资源管理器-->查看-->选项-->查看-->取消‘隐藏已知文件类型的扩展名’前面的‘√’。
-
用记事本或者notepad++的格式打开,编写代码
1public class Hello{ 2 public static void main(String[] args){ 3 System.out.print("Hello,World!"); 4 } 5} //第一行的public class是修饰符,Hello是类名 //第二行的public static void也是修饰符,main是一个方法,它里面的String[] args是main的参数 //第三行是一个输出语句,输出结果为“Hello,World!”
-
找到上述代码文件所在的路径,在路径前面输入: cmd(空格),按下回车键打开命令行提示符
-
编译javac java文件,会生成一个class文件
-
运行class文件,java class文件
javac与java区别
javac命令是将源代码编程成class字节码文件,因为我们的JVM虚拟机是执行class字节码文件的,不是执行源代码,JVM虚拟机是不认识源代码的。
简单的java源代码,我们需要使用javac命令将其编程成字节码文件,才能运行。
执行之后,当前目录下会多出一个Helloworld.class文件,这就是字节码文件。
如果想运行,那么可以使用java命令来执行class字节码文件。
执行结束后,在控制台,输出hello world字符串。另外,需要注意,并不是每个字节码都能得到执行,只有含有main方法的class文件才能执行,因为,main方法是java程序的入口。
可能会遇到的情况
- 每个单词的大小写不能出现问题,Java是对大小写敏感的语言
- 尽量使用英文,有些系统输出中文可能显示不出来
- 文件名和类名(即上述代码中class后面跟的名字)必须保证一致,并且首字母大写
- 符号必须使用英文,如上面
System.out.print();
后面的分号必须使用英文格式,使用中文格式会报错。
Java程序运行机制
Java程序运行有两种模式:编译型和解释型。
编译型语言是将高级语言“翻译“为机器能读懂的机器语言,让计算机能够高效地执行并调用各种函数和功能,C 语言是经典的编译型语言,这种语言特性使得它的运行效率得到提高,一般用于编写操作系统。但这种方式对于即时变化的程序来说,每一次的变化和改动就需要对程序进行重编译后才能运行,这是它的最大的弊端所在。
解释性语言的特点是“即时翻译”,程序运行到哪一步,就“翻译”哪一步的语言,这对计算机的性能要求较高。早期的计算机性能不高,无法支撑起即时的翻译,因此早期的程序都是经过了预编译后的产品,但随着计算机的发展,计算机性能的提高,解释型语言的处理速度和效率有了显著提高,在处理即时响应、对速度要求快的请求时,解释型语言也可以很好地发挥自己的作用。
值得一提的是,现在高级编程语言对于这类划分并没有早期地那么明显了,一些语言已经呈现了既含有编译型的特点,也含有解释型的特点。下面/来简单了解下 Java 程序的运行方式。
-
编译型由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用它,像C/C++、Pascal/Object Pascal(Delphi)等都是编译语言。
-
而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言,如Java、JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。