变量
变量名必须是一个以字母开头并由字母或数字构成的序列。
’+‘和 '©’这样的符号不能出现在变量名中,空格也不行。变量名中所有的字符都是有 意义的,并且大小写敏感。变M名的长度基本上没有限制。
常量
在 Java中, 利用关键字 final指示常量。
关键字 final 表示这个变量只能被赋值一次。一旦被赋值之后,就不能够再更改了。习惯上, 常量名使用全大写。
运算符
在 Java中,使用算术运算符 +、-、 *、/ 表示加、减、乘、除运算。 当参与 / 运算的两个 操作数都是整数时, 表示整数除法;否则, 表示浮点除法。整数的求余操作(有时称为取模) 用 % 表示。例如,15/2 等于 7,15%2 等于 1, 15.0/2 等于 7.50。
以下运算: double w = x * y / z; 很多 Inte丨处理器计算 x * y,并且将结果存储在 80 位的寄存器中, 再除以 z 并将结 果截断为 64 位。
对于使用 strictfj) 关键字标记的方法必须使用严格的浮点计算来生成可再生的结果。例如,可以把 main 方法标记为
public static strictfp void main(String[] args)
于是, 在 main 方法中的所有指令都将使用严格的浮点计算。如果将一个类标记为 strictfp, 这个类中的所有方法都要使用严格的浮点计算。
整数与浮点数运算:
整数运算:
-
如果两个操作数有一个为long,则结果为long。
-
没有long时,结果为int,即使操作数全为short,byte,结果也是int。
浮点数运算
-
如果两个操作数有一个为double,则结果为double。
-
只有两个操作数都是float,则结果才为float。
数学函数与常量
要想计算一个数值的平方根, 可以使用 sqrt 方法:
double x = 4; double y = Math.sqrt(x); System.out.println(y); // prints 2.0 El
floorMod(time, 12) 总会得到一个 0 ~ 11 之间的数。(遗憾的是,对于负除数,floorMod 会得到负数结果,不过这种情况在 实际中很少出现。)
Math 类提供了一些常用的三角函数:
Math,sin
Math.cos
Math.tan
Math.atan
Math.atan2
还有指数函数以及它的反函数— —自然对数以及以 10 为底的对数:
Math.exp
Math.log
Math.loglO
最后,Java 还提供了两个用于表示 TC 和 e 常量的近似值:
Math.PI
Math.E
import static java.1ang.Math.*; System.out.println("The square root of \u03C0 is " + sqrt(PI));
在 Math 类中, 为了达到最快的性能, 所有的方法都使用计算机浮点单元中的例 程.. 如果得到一个完全可预测的结果比运行速度更重要的话, 那么就应该使用 StrictMath 类,,它使用“ 自由发布的 Math 库”(fdlibm) 实现算法, 以确保在所有平台上得到相同的 ? 果n 有关这些算法的源代码请参看 www.netlib.org/fdlibm ( 当 fdlibm 为一个函数提供了 多个定义时, StrictMath 类就会遵循 IEEE 754 版本,它的名字将以“ e” 开头)。
数值类型之间的转换
当使用上面两个数值进行二元操作时(例如 n + f,n 是整数,f 是浮点数), 先要将两个操作数转换为同一种类型,然后再进行计算。
•如果两个操作数中有一个是 double 类型, 另一个操作数就会转换为 double 类型。
•否则,如果其中一个操作数是 float 类型,另一个操作数将会转换为 float 类型。
•否则, 如果其中一个操作数是 long 类型, 另一个操作数将会转换为 long 类型。
•否则, 两个操作数都将被转换为 int 类型。
强制类型转换
一般是将取值范围小的转换为取值范围大的,如:将int型转换为long,或者转换为float型 or double型,在转换常量类型时必须保证该数没有超出所转换后类型的取值范围。
结合赋值和运算符
如果运算符得到一个值, 其类型与左侧操作数的类型不同, 就会发生强制类型转 换。 例如,如果 X 是一个 int, 则以下语句 x += 3.5; 是合法的, 将把 X 设置为(int)(x+ 3.5)。
自增与自减运算符
int x=1; System.out.println(++x);//输出结果为2 System.out.println(x++);//输出结果为1
关系和 boolean 运算符
3==7 结果为false; 3!=7 结果为true;
还有经常使用的 <(小于)、> (大于)、<=(小于等于)和 >=(大于等于)运算符。
Java 沿用了 C++ 的做法,使用 && 表示逻辑“ 与” 运算符,使用丨 | 表示逻辑“ 或” 运算 符。从 != 运算符可以想到,感叹号!就是逻辑非运算符。&& 和丨 |运算符是按照“ 短路” 方 式来求值的: 如果第一个操作数已经能够确定表达式的值,第二个操作数就不必计算了。
最后一点,Java 支持三元操作符? :,这个操作符有时很有用。
如果条件为 true, 下面的 表达式
condition ? expressioni : expression
就为第一个表达式的值,否则计算为第二个表达式的值。
例如,
x < y ? x : y
会返回 x 和 y中较小的一个。
位运算符
位运算符包括: & ("and") | ("or") ^ ("XOr") ~("not")
这些运算符按位模式处理。
例如, 如果 n 是一个整数变量,而且用二进制表示的 n从右 边数第 4 位为 1,则
int fourthBitFromRight = (n & OblOOO) / OblOOO;
会返回 1,否则返回 0。利用 & 并结合使用适当的 2 的幂, 可以把其他位掩掉, 而只保留其 中的某一位。
由于 && 的优先级比 || 的优先级高, 所以表达式
a && b || c 等价于 (a M b) 11 c 又因为+= 是右结合运算符, 所以表达式
a += b += c 等价于
a += (b += c)
也就是将 b+= c 的结果(加上 c 之后的 b) 加到 a 上。
与 C 或 C++ 不同,Java 不使用逗号运算符。不过, 可以在 foi■ 语句的第 1 和 第 3 部分中使用逗号分隔表达式列表。 
枚举类型
枚举类型包括有限个命名的值。 例如,
enum Size {SMALL, MEDIUM, LARGE, EXTRA.LARCE};
现在,可以声明这种类型的变量:
Size s = Size.MEDIUM;
Size类型的变量只能存储这个类型声明中给定的某个枚举值,或者 null 值,null 表示这 个变量没有设置任何值
字符串
可以使用 equals方法检测两个字符串是否相等。对于表达式:
s.equals(t)
如果字符串 s 与字符串 t 相等, 则返回 true ; 否则, 返回 false。需要注意,s与 t 可以是字符串变量, 也可以是字符串字面量。
空串 "" 是长度为 0 的字符串。可以调用以下代码检查一个字符串是否为空:
if (str.lengthQ = 0) 或
if (str.equals(""))
空串是一个 Java 对象, 有自己的串长度(0 ) 和内容(空) 。不过,String 变量还可以存 放一个特殊的值, 名为 null, 这表示目前没有任何对象与该变量关联。要检查一个字符串是否为 null, 要使用以下条件:
if (str == null)
有时要检查一个字符串既不是 null 也不为空串,这种情况下就需要使用以下条件:
if (str != null && str.lengthO != 0)
浙公网安备 33010602011771号