Java核心技术 卷I 笔记 第三章 Java 基本程序结构设计
1.数据类型
- java整型
类型 | 存储需求 | 取值范围 |
---|---|---|
int | 4字节 | -20亿~20亿 |
short | 2字节 | -32768~32767 |
long | 8字节 | |
byte | 1字节 | -128~127 |
- java中所有数值类型所占字节数量与平台无关。
- 小数如3.14默认为double类,若要为float类,在后面加f,如3.14f。
- 强烈建议不要在程序中使用char类型。
- $ 是一个合法的java字符,但只用在java编译器或其他工具生成的名字中。
- 关键字final指常量,只能被赋值一次。
- 强制类型转换通过截断小数部分将浮点数转换为整数
double x = 9.997
int nx = (int) x \\ nx为9
int mx = (int) Math.round(x) \\mx为10
- 结合赋值运算 x += 3.5 将把x设置为(int)(x + 3.5)
2.字符串
- 子串s = string.substring(0,3)方法的第二个参数是不想复制的第一个位置,即s复制的string的第0,1,2个位置。
- 字符串常量存放在公共的存储池中,字符串变量指向存储池中的相应位置,当复制一个字符串的时候,原始字符串与复制字符串共享相同的字符。因此,String类的字符串内容是不能直接修改的,只能重新赋值。
- 不要用
==
判断两个字符串是否相等,该运算符判断的是两个字符串是否指向同一个内存。
String str1 = "abc";
String str2 = "abc";
String str3 = new String("abc");
System.out.println(str1 == str2) //返回true
System.out.println(str1 == str3) //返回false
3.流程控制
- 块(block)指的是一对大括号括起来的Java语句。
- switch 语句如果某个分支最后缺少break,而且确实正是想使用这种“直通式”(fallthrough)行为,可在外围方法标注
@SuppressWarnings(fallthrough)
,防止编译器对这个方法生成警告。
@SuppressWarnings("fallthrough")
private void func(int a) {
switch (a) {
...
}
}
4.大数值
-
BigInteger
大整数和BigDecimal
大实数
BigInteger a = BigInteger.valueOf(100); //普通数值转换为大数值
BigInteger c = a.add(b); //c = a + b
BigInteger d = c.multiply(b.add(BigInteger.valueOf(2)); //d = c * (b + 2)
5.数组
- 创建一个数组,int[]所有元素初始化为0,boolean[]初始化为false,Object[]初始化为null。
- Java中允许数组长度为0 ,如
new elementType[0]
- main方法中的String[] args。命令行输入
java Message -g cruel world
则有
args[0]: "-g"
args[1]: "cruel"
args[2]: "world"