表1-1 Java术语
术 语 名 |
缩写 |
解 释 |
Java Development Kit |
JDK |
编写Java程序的程序员使用的软件 |
Java Runtime Environment |
JRE |
运行Java程序的用户使用的软件 |
Standard Edition |
SE |
用于桌面或简单的服务器应用的Java平台 |
Enterprise Edition |
EE |
用于复杂的服务器应用的Java平台 |
Micro Edition |
ME |
用于手机和其他小型设备的Java平台 |
Java 2 |
J2 |
一个过时的术语,描述1998~2006年之间的Java版本 |
Software Development Kit |
SDK |
一个过时的术语 |
Update |
u |
Oracle的术语,用于发布修改的bug |
NetBeans |
— |
Oracle的集成开发环境 |
1.注释
与大多数程序设计语言一样,Java中的注释也不会出现在可执行程序中。因此,可以在源程序中根据需要添加任意多的注释,而不必担心可执行代码会膨胀。在Java中有三种书写注释的方式。
1.最常用的方式是使用//,其注释内容从//开始到本行结尾。
2.当需要长篇的注释时,既可以在每行的注释前面标记//,也可以使用/*和*/将一段比较长的注释括起来。
3.第三种注释可以用来自动地生成文档。这种注释以/**开始,以*/结束。
警告:在Java中,/**/注释不能嵌套。也就是说,如果代码本身包含了一个*/,就不能用/*和*/将注释括起来。
2. 数据类型
Java是一种强类型语言。这就意味着必须为每一个变量声明一种类型。在Java中,一共有8种基本类型(Primitive type),其中有4种整型、2种浮点类型、1种用于表示Unicode编码的字符单元的字符类型char和1种用于表示真值的boolean类型。
2.1整型
整型用于表示没有小数的数值,它允许是负数。Java提供了4种整数类型,具体内容如下:
类型 |
存储需求 |
取值范围 |
int |
4字节32bits |
-2147483648~2147483647(正好超过20亿) |
short |
2字节16bits |
-32768~32767 |
long |
8字节64bits |
19位数,计算人类数量时需要用到long类型 |
byte |
1字节8bits |
-128~127 |
从Java7开始,加上前缀0b就可以写二进制数。例如0b1001就是9.另外,同样是从Java7开始,还可以为数字字面量加下划线,如用1_000_000(或0b111_0100_0010_0100_0000)表示一百万。这些下划线只是为了让人更易读。Java编译器会去除这些下划线。
2.2浮点类型
浮点类型用于表示有小数部分的值。在Java中有两种浮点类型,具体内容如下:
类型 |
存储需求 |
取值范围 |
float |
4字节 |
大约+-3.40282347E+38F(有效位数为6~7位) |
double |
8字节 |
大约+-1.79769313486231570E+308(有效位数为15位) |
double表示这种类型烦的数值精度是float类型的两倍(有人称之为双精度数值)。绝大部分应用程序都采用double类型。在很多的情况下,float很难满足精度要求。例如,用7位有效数字足以精确的表示普通员工的年薪,但表示公司总裁的年薪精度可能就不够用了。实际上,只有很少的情况下使用float类型,例如,需要快速处理单精度数据,或者需要存储大量数据。
float类型的数值有一个后缀F。没有后缀F的浮点数值默认为double类型。当然,也可以在浮点数值后面加后缀D。
警告:浮点数值不适用于禁止出现舍入误差的计算中。例如,命令System.out.println(2.0-1.1)将打印出0.899999999999,而不是0.9 。其主要原因就是浮点数值采用二进制系统表示,而在二进制系统中无法精确的表示分数1/10。这就好像十进制无法精确的表示1/3一样。如果需要在数值计算中不含有任何舍入误差,就应该使用BigDecimal类。
2.3char类型
char类型用于表示单个字符。通常用来表示字符常量。例如:’A’是编码为65所对应的字符常量。与“A”不同,“A”是一个包含字符A的字符串。Unicode编码单元可以表示为十六进制,其范围从\u0000到\uffff。例如:\u2122表示注册符号(TM),\u03C0表示希腊字符派π。
除了可以采用转义序列符\u表示Unicode代码单元的编码之外,还有一些用于表示特殊字符的转义序列符,详情见下表:
转义序列 |
名称 |
Unicode值 |
转义序列 |
名称 |
Unicode值 |
\b |
退格 |
\u0008 |
\” |
双引号 |
\u0022 |
\t |
制表 |
\u0009 |
\’ |
单引号 |
\u0027 |
\n |
换行 |
\u000a |
\\ |
反斜杠 |
\u005c |
\r |
回车 |
\u000d |
|
|
|
2.4boolean类型
boolean(布尔)类型有两个值:false和true,用来判定逻辑条件。整型值和布尔值之间不能进行相互转换。
3. 变量
在Java中,每一个变量术语一种类型(type)。在声明变量时,变量所属的类型位于变量名之前。
提示:如果想要知道哪些Unicode字符属于Java中的“字母”,可以使用Character类的isJavaIdentifierStart和isJavaIdentifierPart方法进行检测。
System.err.println(Character.isJavaIdentifierPart('中'));//true
System.err.println(Character.isJavaIdentifierStart('☺'));//false
提示:尽管$是一个合法的Java字符,但不要在你自己的代码中使用这个字符。它只用在Java编译器或其他工具生成的名字中。
可以在一行中声明多个变量:
int i , j;//both are int type
但是不提倡使用这种风格。逐一声明每一个变量可以提高程序的可读性。
在Java中,变量的声明尽可能地靠近变量第一次使用的地方,这是一种良好的程序编写风格。
4. 常量
在Java中,利用关键字final指示常量。关键字final表示这个变量只能被赋值一次。一旦被赋值之后,就不能再更改了。习惯上,常量名使用全大写。
在Java中,经常希望某个常量可以在一个类中的多个方法中使用,通常将这些常量称为类常量。可以使用关键字staticfinal 设置一个类常量。