首先我们要了解Java程序的运行机制与流程:
运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件),JVM才能识别并运行它,JVM针对每个操作系统开发其对应的解释器,所以只要其操作系统有对应版本的JVM,那么这份Java编译后的代码就能够运行起来,这就是Java能一次编译,到处运行的原因。
JVM运行字节码:字节码被装入内存,一旦字节码进入虚拟机,它就会被解释器解释执行,或者是被即时代码发生器有选择的转换成机器码执行。
利用Java API编写的应用程序(application) 和小程序(Java applet) 可以在任何Java平台上运行而无需考虑底层平台, 就是因为有Java虚拟机(JVM)屏蔽了与具体操作系统平台相关的信息,实现了程序与操作系统的分离,从而实现了Java 的平台无关性,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。
我们开始编写第一个Java程序:
class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!"); } }
然后保存代码为HelloWorld.java
,所有Java源文件必须以.java
作为拓展名。
之后我们来将.java
源文件编译为.class
字节码文件:
javac HelloWorld.java
此命令会检查Java源代码的语法,一旦出现错误将会报错,如果语法没有问题则会在同目录下生成.class
字节码文件,该文件为二进制文件。
下面我们运行编译完成的Java程序:
java HelloWorld
注意:运行Java程序时不包含class拓展名,HelloWorld为程序的类名,同时class字节码文件默认名称为程序主类名,编译生成后不可修改,但对于java源代码文件没有要求
基本类型 | 说明 |
---|---|
byte | 字节整型(8位) |
short | 短整型(16位) |
int | 整型(32位) |
long | 长整型(64位) |
float | 单精度浮点型(32位) |
double | 双精度浮点型(64位) |
char | Unciode字符 |
boolean | 布尔值 |
Java是一种强类型语言,因此变量定义时必须有一个声明的类型,同时Java对变量名大小写敏感,这点类似于Python。
下面我们声明并命名一个名为age的整型变量:int age = 14;
我们在声明和赋值变量时遵循的语法为:类型 变量名 = 值;
同时在变量命名时,应遵循小驼峰命名规则,即第一个单词首字母小写,第二个及以后的每个单词首字母都大写,例如myAge、myFirstName
。
在Java10中增加了局部变量类型推断,我们可以使用var
来代替类型,并允许编译器推断变量类型,例如:
var name = "Ye";
Java常量应使用final
声明,遵循语法为final 类型 常量名 = 值
,并且常量名称应全部大写,单词间用_
分隔,例如:
final int AGE = 18;
/* 多行注释语句 */
//单行注释语句
1. if语句
if(booleanExpression){ statment(s); }
2. if-else语句
if(booleanExpression){ statment(s); }else{ statment(s); }
3. if-else if语句
if(booleanExpression){ statment(s); }else if{ statment(s); }else{ statment(s); }
while(booleanExpression){ statment(s); }
do{ statment(s); //只运行一次 }while(booleanExpression){ statment(s); }
for(init; booleanExpression; update){ statment(s); }
update
与init
是可选的,例如:
for(; k<3; ){ statment(s); k++; }