3.1 Java 的类名命名规则
> 1. 驼峰命名法。首字母大写,多个单词则后面每个单词的首字母大写。
> 2. 类名中只能包含数字、字母、下划线、美元符号, 且不能以数字开头。
3.2 注释
> Java 有三种注释类型
1. //单行注释
2. /*
多行注释
*/
3. /**
用来自动生成文档的注释
*/
NOTE: 多行注释不能嵌套,如果代码中含有 */ 则不能用多行注释或文档注释来注释这些代码。
3.3 数据类型
Java是一种强类型语言。这就意味着必须为每一个变量声明一种类型。在Java中,一共有8中基本类型(primitive type), 其中有4种整型[long, int, short, byte]、2种浮点型[double, float]、1中用于表示Unicode编码的字符单元的字符类型[char]和1中用于表示真值的boolean类型[boolean]。
3.3.1. 整型
整形用于表示没有小数部分的数值, 它允许是负数。
类型 | 存储需求 | 取值范围 |
---|---|---|
long | 8字节 | -9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807 |
int | 4字节 | -2 147 483 648 ~ 2 147 483 647(正好超过20亿) |
short | 2字节 | -32 768 ~ 32 767 |
byte | 1字节 | -128 ~ 127 |
NOTE:Java中整型的的范围与运行Java代码的机器无关。这就解决了代码从一个平台移植到另一个平台,或者一个平台的不同操作系统给程序员带来的诸多问题。【可移植性】
长整型数值(long)有一个后缀L(如400000000000L)
16进制数值有一个前缀0x(如0xABCD)
8进制数值有一个前缀0(如010)。 很明显8进制数值比较容易混淆,所以建议最好不要使用8进制常数。
* 从 Java 7 开始可以用0b前缀表示2进制如(0b1010)。
从Java 7开始可以为数字字面常量加下划线如(101_0100)。这些下划线只是让人更容易读懂。Java编译器会去除这些下划线。
3.3.2. 浮点类型
浮点类型用于表示有小数部分的数值。Java中有两种浮点类型数值。
类型 | 存储需求 | 取值范围 |
---|---|---|
float | 4字节 | 大约±3.402 823 47E + 38F(有效位数6 ~7位) |
double | 8字节 | 大约±1.797 693 134 862 315 70E + 308(有效位数为15位) |
float 类型的数值有一个后缀F(例如, 3.14F)。没有后缀F的浮点数值(如3.14)默认为double类型。当然,也可以在浮点数值后面添加后缀D(例如 3.14D)
Note: 在JDK5.0 中, 可以使用十六进制表示浮点数值。例如, 0.125 可以表示成0x1.0p-3。在十六进制表示法中, 使用p表示指数,而不是e。注意,尾数采用十六进制,指数采用十进制。指数的基数是2,而不是10。
所有的浮点数值计算都遵循IEEE 754规范。下面是用于表示溢出和出错情况的三个特殊的浮点数值:
1. 正无穷大(Double.POSITIVE_INFINITY)
* 例如正整数除以0的结果为正无穷大。
2. 负无穷大(Double.NEGATIVE_INFINITY)
3. NaN(不是一个数字)(Double.NaN)
* 计算0/0或者负数的平方根结果为NaN。
* if(x == Double.NaN) //is never true
* if(Double.isNaN(x)) //check whether x is “not a number”Warning : 浮点数值不适用于禁止出现舍入误差的金融计算中。例如,命令System.out.println(2.0 - 1.1); 将打印出 0.899999999999999,而不是人们想象的0.9。其主要原因是浮点数值采用二进制系统表示,而在二进制系统中无法精确的表示分数1/10。这就好像十进制无法精确地表示1/3一样。如果需要在竖直计算中不含有任何舍入误差,就应该使用BigDecimal类。
3.3.3 char 类型 * * * * *
char类型用于表示单个字符。通常用来表示字符常量。
Unicode 编码单元可以表示为十六进制,其范围从\u0000到\uffff。用\u开头表示Unicode代码单元。
特殊字符的转义序列符
转义序列 | 名称 | Unicode符 |
---|---|---|
\b | 退格 | \u0008 |
\t | 制表 | \u0009 |
\n | 换行 | \u000a |
\r | 回车 | \u000d |
\” | 双引号 | \u0022 |
\’ | 单引号 | \u0027 |
\ | 反斜杠 | \u005c |
3.3.4. boolean 类型
boolean(布尔)类型有两个值: false 和 true。用来判定逻辑条件。整型值和布尔值之间不能互相转换。
3.4. 变量
Java 关键字 strictfp ↑
不太懂,需要理解。
System.out.println("123" == "123");//true
String a = "abc";
String b = "abc";
System.out.println(a == b);//true
System.out.println(a.substring(0, 1) == "a");//false
/*
* TODO: learn how compareTo run.
* if return 0, string is the same.
*/
System.out.println(a.substring(0, 1).compareTo("a"));//0
//判断空串
if(str != null && str.length != 0)
//validate
String s = " ";
if(s != null && s.length() != 0) {
System.out.println("run to this. no trim.");
}
if (s != null && s.trim().length() != 0) {
System.out.println("run to this. trim.");
}
//so we need use if (s != null && s.trim().length() != 0)
// also (s != null && !"".equal(s))
3.6.7. 字符串API
TODO: we need study all String API in the next time.
Note: 如果有可能进行交互操作,就通过控制台窗口为交互的用户返回一个Console对象,否则返回null。