参考自 – 《Java核心技术卷1》
注释、数据类型和变量
类的标准命名规范
类名是以大写字母开头的名词。如果名字由多个单词组成,每个单词的首字母都应该大写。
1.注释
与大多数程序设计语言一样,Java的注释也不会出现在可执行程序中。
在Java中,有3种标记注释的方法:
-
//
最常用的方式,注释一行
-
/* */
适用于长篇注释(跨行)
-
/** **/
可以用来自动生成文档
2.数据类型
Java是一种强类型语言,这就意味着必须为每一个变量声明一种类型。
在Java中,一共有8种基本类型:其中4种整型,2种浮点型,1种用于表示Unicode编码的字符单元的字符类型char,和1种用于表示真值的boolean类型。
注:Java有一个能够表示任意精度的算术包,通常称为“大数值”(big number)。虽然被称为大数值,但它并不是一种新的Java类型,而是一个Java对象。
2.1 整型
整型用于表示没有小数部分的数值,它允许是负数。Java提供了4种整型:
类型 | 存储需求 | 范围 |
---|---|---|
int | 4字节 | -231~231-1 |
short | 2字节 | -215~215-1 |
long | 8字节 | -263~263-1 |
byte | 1字节 | -27~27-1 |
通常情况下,int类型最常用;long类型一般用于表达比较大的数字;byte和short类型主要用于特定的应用场合,例如:底层文件处理或者需要控制占用存储空间量的大数组。
在Java中,整型的范围与运行Java代码的机器无关。与此相反,C和C++程序需要针对不同的处理器选择最为高效的整型,这就有可能造成一个在32位处理器上运行很好的C程序在16位系统上运行却发生整数溢出。
长整型数值有一个后缀L或者l(如40000000000L)。十六进制数值有一个前缀0x或者0X(如0xCAFE)。八进制有一个前缀0,例如,010对应八进制的8(显然,8进制比较容易混肴,建议最好不要使用八进制常数)。
从Java 7开始,加上前缀0b或0B就可以写二进制数。例如,0b1001就是9。
注:Java没有任何无符号(unsigned)形式的int、long、short或byte类型。
2.2 浮点类型
浮点类型用于表示有小数部分的数值。在Java中有两种浮点类型:
类型 | 存储需求 |
---|---|
float | 4字节 |
double | 8字节 |
double表示这种类型的数值精度是float类型的两倍(或称之为双精度数值)。绝大部分应用程序都采用double类型。因为float在很多情况下都难以满足需求。
float类型的数值有一个后缀F或f(例如,3.14F)。没有后缀F的浮点数值(如 3.14)默认为double类型。当然,也可以在浮点数值后面加后缀D或d(例如 3.14D)表示double类型数值。
下面是用于表示溢出和出错情况的三个特殊的浮点数值:
- 正无穷大
- 负无穷大
- NaN(不是一个数字)
例如,一个正整数除以0的结果为正无穷大。计算0/0或者负数的平方根结果为NaN。
注:常量 Double.POSITIVE 、Double.NEGATIVE 和 Double.NaN(以及相应的Float类型的常量)分别表示这三个特殊的值,但实际应用中很少遇到。特别要说明的是,不能这样检测一个特定值是否等于Double.NaN:
if(x == Double.NaN) //is naver true
所有“非数值”的值都认为是不相同的。然而,可以使用 Double.NaN 方法:
if(Double.isNaN(x)) //check whether x is "not a number"
注:浮点数值不适用于无法接受舍入误差的计算。如在数值计算中不允许有任何舍入误差,就应该使用BigDecimal类。
2.3 char类型(用于表示Unicode编码的字符单元)
char类型原本用于表示单个字符。不过,现在情况已经有所变化。如今,有些Unicode字符可以用一个char值描述,另外一些Unicode字符则需要两个char值。
char类型的字面量值要用单引号括起来。例如,'A’是编码值为65对应的字符常量。它与"A"不同,"A"是包含一个字符A的字符串。
char的值可以表示为十六进制(使用转义序列 \u),其范围:最小值为\u0000(即是0),最大值为\uffff(即为65,535)。
char还用于表示特殊字符的转义序列:
转义序列 | 名称 | Unicode值 |
---|---|---|
\b | 退格 | \u0008 |
\t | 制表 | \u0009 |
\n | 换行 | \u000a |
\r | 回车 | \u000d |
\’’ | 双引号 | \u0022 |
\’ | 单引号 | \u0027 |
\\ | 反斜杠 | \u005c |
所有这些转义序列都可以出现在加引号的字符字面量或字符串中。如 “Hello\n”。
注:注释中的 \u 需要额外注意(程序可读 \u)。
想更进一步了解 char ,可以先了解 Unicode编码机制。
2.4 boolean类型
boolean(布尔)类型有两个值:true 和 false,用来判定逻辑条件。
整型和布尔值之间不能进行相互转换。
3.变量
在Java中,每个变量都有一个确定的类型。
变量名必须是一个以字母开头并由字母或数字构成的序列(不能使用Java的保留字作为变量名)。
可以在一行中声明多个变量;不过不提倡这种风格。逐一声明每个变量可以提高程序的可读性。
3.1 变量的初始化
声明一个变量后,必须用赋值语句对变量进行显示初始化,千万不要使用未初始化的变量。
3.2 常量
在Java中,利用关键字 final 指示常量。
关键字 final 表示这个变量只能赋值一次。一旦被赋值之后,就不能再更改了。
习惯上,常量名使用全大写。
3.3 类常量
在Java中,经常希望某个常量可以在一个类中的多个方法中使用,通常将这样的常量称为类常量。
可以使用关键字static final设置一个类常量。如下:
public class test{
public static final int MAX = 100;
public static void main(String[] args){
System.out.println(MAX);
}
}
需要注意,类常量 MAX 的定义位于main方法的外部。因此,在同一个类的其他方法中也可以使用这个常量。而且,如果一个常量被声明为 public ,那么其他类的方法也可以使用这个常量。