JDK和JRE
相关概念 |
JDK=JRE+Java开发工具,JRE=JVM+Java核心类库 |
JVM:java虚拟机,运行编译好的java代码,不同操作系统有不同JVM实现,实现java的跨平台性 |
javac命令:编译源代码,生成class文件。java命令:运行编译后的字节码。 |
java是解释性语言,与之对应的编译型语言。 |
javap指令:用于反编译 Java 类文件(.class 文件) |
Hello World
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello,World!");
}
}
注意事项 |
HelloWorld 是类的名称。类名通常以大写字母开头,并且应该与文件名一致(即 HelloWorld.java ) |
String[] args 是一个字符串数组参数,用于接收命令行参数。 |
使用 javac 命令编译Java文件:javac HelloWorld.java |
在控制台使用javac命令时,如果java文件中存在中文,则需要保证控制台编码和文件编码保持一致 |
使用 java 命令运行编译后的程序:java HelloWorld |
如果修改源文件,则需要重新编译java文件在运行 |
Windows 文件系统中,文件名和路径不区分大小写,java程序严格区分大小写 |
一个java文件中最多包含一个public类(该类名称与文件名保持一致),其他类的个数不限,并且其他类编译后会生成对应的class文件 |
main 方法是Java程序的入口点,JVM会从这里开始执行程序。由于一个java文件中的其他类会被编译生成calss文件,所以也可以在非public的类中书写main方法,在运行时使用java命令指定运行该class文件即可 |
注意,如果不同java文件中存在相同名称的非public类,则后编译的class文件会覆盖先进行编译的 |
JDK版本
JDK 版本号 |
Java 版本号 |
发布时间 |
重要特性 |
JDK 1.0 |
Java 1 |
1996 年 1 月 |
第一个正式版本 |
JDK 1.1 |
Java 1 |
1997 年 2 月 |
内部类、JDBC、RMI |
JDK 1.2 |
Java 2 |
1998 年 12 月 |
集合框架、Swing、JIT 编译器 |
JDK 1.3 |
Java 2 |
2000 年 5 月 |
HotSpot JVM、JavaSound API |
JDK 1.4 |
Java 2 |
2002 年 2 月 |
正则表达式、NIO、JAXP |
JDK 1.5 |
Java 5 |
2004 年 9 月 |
泛型、注解、枚举、自动装箱 |
JDK 1.6 |
Java 6 |
2006 年 12 月 |
脚本引擎、JDBC 4.0、Java Compiler API |
JDK 1.7 |
Java 7 |
2011 年 7 月 |
try-with-resources、NIO 2.0 |
JDK 1.8 |
Java 8 |
2014 年 3 月 |
Lambda 表达式、Stream API、java.time |