编译:.java(源代码) ---> .class(字节码)
解释:.class(字节码) ---> 加载并启动JVM(类加载) ---> .class(机器指令)
执行:通过JVM来完成运行输出
利用 javac 编译 .java 文件
利用 java 运行 .class 文件
在JVM的作用下,同一个Java程序可以在三个不用的操作系统中执行,实现了Java程序的跨平台性。
1) JVM 是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器,包含在 JDK 中。
2) 对于不同的平台,有不同的虚拟机。
3) Java 虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”。
1) JDK 的全称(Java Development Kit Java 开发工具包)
JDK = JRE + 开发工具集[java, javac,javadoc,javap 等]
2) JDK 是提供给 Java 开发人员使用的,其中包含了 java 的开发工具以及JRE。
1) JRE(Java Runtime Environment Java 运行环境)
JRE = JVM + Java SE 标准类库(java 核心类库)
2) 包括 Java 虚拟机(JVM Java Virtual Machine)和 Java 程序所需的核心类库等,如果想要运行一个开发好的 Java 程序, 计算机中只需要安装JRE。
1) JDK = JRE + 开发工具集(例如 Javac,java 编译工具等)
2) JRE = JVM + Java SE 标准类库(java 核心类库)
3) 如果只想运行开发好的 .class 文件 只需要 JRE
例如以下代码:
public class Hello
{
public static void main(String[] args)
{
System.out.println("Hello World!\n");
}
}
- public class Hello 表示 Hello 是一个类,是一个 public 公有的类。
- Hello{ } 表示一个类的开始和结束。
- public static void main(String[] args) 表示一个主方法,即我们程序的入口。
- main() {} 表示方法的开始和结束。
- System.out.println("hello,world~");输出语句。
1.Java源文件以 .java 为扩展名。源文件的基本组成部分是类 (class) ,如本类中的Hello类。
2.Java应用程序的执行入口是main()方法。它有固定的书写格式:public static void main(String[] args) {...}
2.一个源文件中最多只能有一个public类。其它类的个数不限。这意味着含有多个类定义的文件进行编译之后会产生多个class文件。
3.如果源文件包含一个public类,则文件名必须按该类名命名。
4.一个源文件中最多只能有一个public类。其它类的个数不限,也可以将main方法写在非public类中,然后指定运行非public 类,这样入口方法就是非public 的main方法。
1.一个java文件内定义的多个类相当于C++中的命名空间,用来避免命名污染。
2.方法与C++的类内函数概念相同。
3.非public的类并不像C++中的默认private权限,而具有是包级私有访问权限。可在包内用限定符来进行访问。
public class Hello {
public static void main(String[] args) {
String message = "Hello World!\n";
test.print(message);
}
}
class test {
static void print(String arg) {
System.out.println(arg);
}
}