为什么要设置JAVA_HOME?
JAVA_HOME是用来确定JDK的安装目录,可以随意更改为不同版本的JDK.
可以不配置,但是建议配置
- 如果不配置,在path变量中就不能使用JAVA_HOME变量了,需要直接配置"c:/java/jdk/...",系统环境变量path内部配置了多个内容,每次更换JDK版本,就需要修改path一遍,出错的概率大.
- 其他的软件需要使用JDK时,不需要指定bin目录,只需要提供JAVA_HOME,例如Tomca(如下图)
为什么要设置path?
path是使操作系统可以在任意位置获取需要执行的程序,可以在任意目录下,执行java,javac等命令.
不配置也可以,但是建议配置,
如果不配置,只能在%JAVA_HOME%/bin目录下执行程序(位置是唯一的)
JAVA的技术体系
所谓技术体系,就是java为了满足不同的应用场景,提供了不同的技术版本,主要有三个:
Java SE(Java Standard Edition):标准版,也可以说是基础版本,在学习后两个之前必须先学习Java SE.
Java EE(Java Enterprise Edition):企业版,为企业级应用开发提供了一套解决方案.
Java ME(Java Micro Edition):手机端小型版,已经被淘汰,取而代之的是基于Android系统的应用开发.
JAVA的开发环境
java的开发环境,就是java官方提供的一个软件,叫做JDK(Java Develop Kit),即java开发工具包,
JDK的版本有很多,下面列举出有LTS标识的版本(长期进行维护,也就是Oracle会不定期更新)
最常用的有:
2014年JDK(8,LTS)
2018年JDK(11,LTS)
2011年JDK(17,LTS)
编写JAVA程序三步骤
在编写一个java程序时,需要经历的三个步骤:编写代码,编译代码,运行代码
编写代码:任意一个编辑器都可以写代码,如window系统自带的记事本,例如:在HelloWorld.java中编写代码(注意:扩展名必须是.java,文件名暂时为任意)
编译代码:将写好的源代码(.java文件),转换为java虚拟机能够执行的字节码文件(.class文件)(转换方式:在cmd(终端)中使用javac编译代码(jdk/bin/javac.exe编辑器)转换为字节码文件生成HelloWorld.class文件),扩展名必须是class,是编译器自动生成的
运行代码:将字节码文件交给java虚拟机执行(使用java执行字节码文件,运行代码(jdk/bin/java.exe)加载到内存中)
源代码如下:
//定义一个公开的类
public class HelloWorld{
public static void main(String[] args){
System.out.println("HelloWorld");
System.out.println("1111");
}
}
JDK的组成
- 什么是JVM?
答:JDK最核心的组成部分是JVM(Java Virtual Machine),它是Java虚拟机,真正运行Java程序的地方。
- 什么是核心类库?
答:它是Java本身写好的一些程序,给程序员调用的。 Java程序员并不是凭空开始写代码,是要基于核心类库提供的一些基础代码,进行编程。(例如:system.out)
- 什么是JRE?
答:JRE(Java Runtime Enviroment),意思是Java的运行环境;它是由JVM和核心类库组成的;如果你不是开发人员,只需要在电脑上安装JRE就可以运行Java程序。
- 什么是JDK呢?
答:Java程序员写好源代码之后,需要编译成字节码,这里会提供一个编译工具叫做javac.exe,编写好源代码之后,想要把class文件加载到内存中运行,这里需要用到运行工具java.exe。
除了编译工具和运行工具,还有一些其他的反编译工具、文档工具等待...
JDK、JRE的关系用一句话总结就是:用JDK开发程序,交给JRE运行
总结JDK,JVM,JRE之间的关系和区别:
- JDK,java开发工具包,提供给程序员用的,内部包含:JAVAC.exe(编译器),JAVA.exe(运行器),JRE,如果配制JAVA_HOME,需要设置的是JDK的安装目录
- JRE,java运行库,提供给运维人员使用,用于部署java项目,内部包含:java.exe(运行器),核心库,JVM等
- JVM,java虚拟机,JAVA程序可以运行核心内容
JAVA程序的特性(跨平台性)
java程序的执行是依赖java虚拟机的,就是因为有了java虚拟机,Java程序就有了一个重要的特性叫做跨平台性
跨平台就是指java语言开发程序可以在多种操作系统上运行,常见的操作系统window,Linux,MacOS系统
为什么java程序可以跨平台?
原理是,把源码编译成字节码,可以在多种操作系统中运行字节码,从而做到一处编译,处处运行.
注意:JVM(虚拟机)不能跨平台,在不同版本的操作系统中安装不同版本的java虚拟机,和操作系统没有直接关系