1.Java虚拟机、Java编译器和Java解释器
JVM:JVM有自己完善的硬件架构,如处理器、堆栈(Stack)、寄存器等,还具有相应的指令系统(字节码就是一种指令格式)。
JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需要生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM是Java平台无关的基础。
JVM负责运行字节码:JVM把每一条要执行的字节码交给解释器,翻译成对应的机器码,然后由解释器执行。
JVM解释执行字节码文件就是JVM操作Java解释器进行解释执行字节码文件的过程。
Java编译器:将Java源文件(.java文件)编译成字节码文件(.class文件,是特殊的二进制文件,二进制字节码文件)。
javac.exe可以简单看成是Java编译器。
Java解释器:是JVM的一部分。Java解释器用来解释执行Java编译器编译后的程序。
java.exe可以简单看成是Java解释器。
字节码:字节码是已经经过编译,但与特定机器码无关,需要解释器转译后才能成为机器码的中间代码。
2. 关于package
当编写一个Java源代码文件时,此文件通常被称为编译单元。每个编译单元都必须有一个后缀名.java,而在编译单元内有且仅有一个public类,
否则编译器就不会接受。该public类的名称必须与文件的名称相同(包括大小写,但不包括后缀名.java)。
如果在该编译单元之中还有额外的类的话,那么在包之外的世界是无法看见这些类的,因为它们不是public类,而且它们主要用来为主public类提供支持。
当编译一个.java文件(即一个编译单元)时,在.java文件中的每个类都会有一个输出文件,而该输出文件的名称与.java文件中每个类的名称相同,只是多了一个后缀名.class。
因此在编译少量.java文件之后,会得到大量的.class文件。每一个.java文件编译以后都会有一个public类,以及任意数量的非public类。
因此每个.java文件都是一个构件,如果希望许许多多的这样的构件从属于同一个群组,就可以在每一个.java文件中使用关键字package。
如果使用package语句,它必须是.java文件中除注释以外的第一句程序代码。
整数:byte(1字节)、short(2字节)、int(4字节)、long(8字节,赋值时后面要加L或l)
浮点数:float(4字节,赋值时后面要加f或F,否则默认为double型)、double(8字节)
字符型:char(2
JVM:JVM有自己完善的硬件架构,如处理器、堆栈(Stack)、寄存器等,还具有相应的指令系统(字节码就是一种指令格式)。
JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需要生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM是Java平台无关的基础。
JVM负责运行字节码:JVM把每一条要执行的字节码交给解释器,翻译成对应的机器码,然后由解释器执行。
JVM解释执行字节码文件就是JVM操作Java解释器进行解释执行字节码文件的过程。
Java编译器:将Java源文件(.java文件)编译成字节码文件(.class文件,是特殊的二进制文件,二进制字节码文件)。
javac.exe可以简单看成是Java编译器。
Java解释器:是JVM的一部分。Java解释器用来解释执行Java编译器编译后的程序。
java.exe可以简单看成是Java解释器。
字节码:字节码是已经经过编译,但与特定机器码无关,需要解释器转译后才能成为机器码的中间代码。
2. 关于package
当编写一个Java源代码文件时,此文件通常被称为编译单元。每个编译单元都必须有一个后缀名.java,而在编译单元内有且仅有一个public类,
否则编译器就不会接受。该public类的名称必须与文件的名称相同(包括大小写,但不包括后缀名.java)。
如果在该编译单元之中还有额外的类的话,那么在包之外的世界是无法看见这些类的,因为它们不是public类,而且它们主要用来为主public类提供支持。
当编译一个.java文件(即一个编译单元)时,在.java文件中的每个类都会有一个输出文件,而该输出文件的名称与.java文件中每个类的名称相同,只是多了一个后缀名.class。
因此在编译少量.java文件之后,会得到大量的.class文件。每一个.java文件编译以后都会有一个public类,以及任意数量的非public类。
因此每个.java文件都是一个构件,如果希望许许多多的这样的构件从属于同一个群组,就可以在每一个.java文件中使用关键字package。
如果使用package语句,它必须是.java文件中除注释以外的第一句程序代码。
整数:byte(1字节)、short(2字节)、int(4字节)、long(8字节,赋值时后面要加L或l)
浮点数:float(4字节,赋值时后面要加f或F,否则默认为double型)、double(8字节)
字符型:char(2