可以发现源文件的结构主要包含三个要素:
一个包声明(可选)
程序的第1行就是声明了一个包(package),把该程序放在这个包中间。
任意数量的包引入语句(可选)
程序的第2行是要求该程序引入系统提供的一个包java.util.Math。
任意数量的类的声明
程序的3-5行则是声明了一个public的类Quote,它是从它的超类Thread扩展得到,并且实现Tradable的接口。
该三要素必须以上述顺序出现。即,任何包引入语句出现在所有类定义之前;如果使用包声明,则包声明必须出现在类和引入语句之前。
(五)JAVA关键字
Java语言一共使用了48个保留关键字,他们主要可以分为如下几类。
访问控制
private , protected , public
类、方法和变量修饰符
abstract , class , extends , final , implements , interface , native , new , static , strictfp , synchronized , transient , volatile
程序控制语句
break , case , continue , default , do , else , for , if , instanceof , return , switch , while
错误处理
catch , finally , throw , throws , try
包相关
import , package
基本类型
boolean , byte , char , double , float , int , long , short
变量引用
super , this , void
未使用的关键字
const , goto
另外,除了这48个关键字以外,还有3个语法保留字,即null、true和false。
在Java中,true、false和null都是小写的。区别于C++中大写的TRUE、FALSE和NULL。
n所有的数据类型所占用的字节数都是固定的,并且和实现无关的,因此在Java中没有sizeof操作符。
与 C、 C++不 同,Java中 不 能 通 过 #define命 令 把 一 个 标 识 符 定 义 为 常 量,而 是 用 关 键 字 final来 定
义,其定义格式为:
final Type varName = value [, varName [ =value] …];
final int globalAccount = 100, nationalAccount = 50;
final double PI=3.14159
Java中变量的缺省初值都是确定的:
- 布尔变量的初值为:false
- 整数变量的初值为:0
- 浮点数变量的初值为:0.0
- 引用(复合)变量的初值为:null
- 在方法实现中定义的变量必须显式的初始化。
特殊字符的常量表示法:
反斜线(Backslash) ‘//’
退格(Backspace) ‘/b’
回车(Carriage return) ‘/r’
进纸符(Form feed) ‘/f’
制表符(Form feed) ‘/t’
换行(New line) ‘/n’
单引号(Single quote) ‘/’’
八进制数( ‘/0’~‘/377’ ) ‘/DDD’
Unicode字符 ‘/uHHHH’
float f1 = 127.0f ; // 必须在数字后加f或F
数据类型转换必须满足如下规则:
不能对boolean类型进行类型转换。
不能把对象类型转换成不相关类的对象。
在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
转换过程中可能导致溢出或损失精度
int i = 8; byte b=(byte)i;
(byte)255 == -1 (byte)0x5634 == 0x34
浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入
(int)23.7 == 23 (int) -45.89f == -45
在Java中,引用(reference)指向一个对象在内存中的位置,本质上它是一种带有很强的完整性和安全性限制的指针。
当你声明某个类、接口或数组类型的变量时,那个变量的值总是某个对象的引用或者是null。
指针就是简单的地址而已,引用除了表示地址而外,还象被引用的数据对象的缩影,还提供其他信息。
指针可以有++、--运算,引用不可以运算。
引用型变量只支持有限的逻辑判断:
相等判断(是否同一个对象的引用):== !=
theObject == null
otherObject != theObject
类型判断(是否是每个类的实例): instanceof
theObject instanceof Object
“” instanceof String
在Java中,可以为每个代码块加一个标号,一个代码块通常是用大括号{}括起来的一段代码。加标号的格式为:
BlockLabel: {
codeBlock;
}
break语句的第二种使用情况就是跳出它所指定的块,并从紧跟该块后的第一条语句处执行。
BlockLabel: {
codeBlock;
break BlockLabel;
codeBlock;
}
也可以用continue跳转到括号指明的外层循环中,这时的格式为
continue outerLable;