Data Types
Java 的数据类型分为:
- Primitive:基础类型,比如 int,它的长度(取值范围)在不同平台一致
- Non-primitive:非基础类型,比如 Array,String
Primitive 包含:byte, short, int, long, float, double, char, boolean。
byte v.s. char:
- byte: 8-bit signed two's complement integer, [-128, 127]
- char: a single 16-bit Unicode Character (UTF-16), default '\u0000', maximum value '\uffff' (65536)
Literals:
- Integer:
- in decimal,
16 - in hexadecimal,
0x1a - in binary,
0b11010 - 没有 8 进制
- in decimal,
- Float-point:
E/efor scientific notation,D/dfor double,F/ffor float- usally,
123.4 - in scientific notation,
1.234e2 - in float,
123.4f
- usally,
- Char and string:
'Z',"BeginnersBook"
未初始化的变量,如果是基础类型(primitive)的,有默认值 0;非基础类型是 null。
Java 没有类似 C/C++/Java 的 trusy value,比如:
int i = 1;
if (1) { ... }l = [1]
if l:
passJava 则不允许上述的情况,它需要显式地构造出 if (i == 1), if (!l.empty())。下面这样会抛 null exception:
Object o = null;
if (o) {}Operators
Java 的操作符跟 C/C++ 没有什么区别。这里不描述。
Control Flows
if-else 跟 C/C++ 没有区别。
switch-case 中,你可以用这些类似作为判断值用:
- 整型:
byte,char,short,int,注意byte跟char,他们虽然常用来表示字符,但是本质上也是个整型 - 枚举类型
- String (JDK 7 开始支持)
- 一些包裹基础类型的特殊类,如
Character,Byte,Short和Integer
for 循环,比起 C/C++ 基本一样,Java 还有一个 enhanced for-loop,类似于 for each 语句:
for (String element : array) {
System.out.println("Element: " + element);
}array 应该是个 iterator。自定义的类也可以通过类似机制来实现。
while do-while 循环跟 C/C++ 没什么区别。
此外配合 for / while 循环使用的 continue, break,后面可以接个 label。
参考: