Day 02
Java中的命名规范
1. Java中的命名规范
- 包名: 多单词组成时所有字母都小写 xxxyyyzzz
- 类名、接口名: 多单词组成时,所有单词的首字母大写 XxxYyyZzz
- 变量名、方法名: 多单词组成时,第一个单词首字母小写,从第二个单词开始,每个单词首字母大写 xxxYyyZzz
- 常量名: 所有字母都大写。多单词组成时,每个单词用下划线连结 XXX_YYY_ZZZ
基本数据类型转换
1. 自动类型转换: 容量小的类型自动转换为容量大的数据类型。数据类型按容量大小排序为:
-
有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
-
声明 long, float 变量时,要在赋值时添加 l / L, f / F。
-
byte,short,char 之间不会相互转换,它们三者在计算时首先转换为 int 类型。
byte a = 1; char b = 'A'; char c = 'B'; char d = '1'; System.out.println(a + b); //66 System.out.println(b + c); //131 System.out.println(b + d); //114, '1'是char类型,要转换为ASCII码再计算
-
当把任何基本类型数据与字符串进行连结运算时(+),基本类型数据将自动转换为字符串类型。
只要有字符串参加"+"运算,结果一定是字符串 1 + 2 + 3+ “hello” 结果:6hello “he”+ 2 +“llo”+ 3 + 1 结果:he2llo31 ‘a’+ 1 + “hello” 结果:97hello
-
char 类型数据可以参与数学运算,做数学运算时将字符数据转换为ASCII码再计算。
int a = 1; char c = 'a'; System.out.println(c);//a System.out.println(a + c);//98 System.out.println('*' + '\t' + '*');//93, "+"号, 数学运算 System.out.println("*" + '\t' + '*');//* *
2. 判断下列语句能否通过编译
short s = 5;
s = s - 2; //错
byte b = 3;
b = b + 4; //错
b = (byte)(b + 4); //对
char c = 'a';
int i = 5;
double d = 0.314;
double result = c + i + d; //对,102.314
byte b = 5;
short s = 3;
short t = s + b; //错
(1) 错。5 是 short 类型,2 默认是 int 类型,5 与 2 做减法时,系统先将 5 转换成 int 型,所以最后的结果应为 int 型的 3,但是 s 是 short 型,不能存储 int 型。
(2)、(3)、(4)类似。
3. 取模运算
- 取模运算(%)时,对 -a 取模等于对 a 取模。
x%-a == x%a ,5%-2 == 5%2 == 1 - 取模运算 a % b 结果的正负与 a 的符号相同, b的正负对结果无影响。
(1) 5 % -2 = 1
(2)-5 % 2 = -1
(3) -5 % -2 = -1
(4) 2 % 5 = 2
(5) -2 % 5 = -2
(6)-2 % -5 = -2
4. 转义字符
转义字符 | 说明 |
---|---|
\b | 退格符 |
\n | 换行符 |
\r | 回车符 |
\t | 制表符 |
\" | 双引号 |
\' | 单引号 |
\\ | 反斜杠 |
5. 注意
1.引用类型数据(字符串,数组,接口)都可以用null作为初始值。
-
String s1 = “Hello”;
String s2 = “Hello”;
系统只开辟一个内存空间。 -
int a1 = 1;
int a2 = 1;
系统开辟两个内存空间。 -
int i = 0;
int k = i++;
结果:i=1,k=0 -
int i = 0;
int k =++i;
结果:i=1,k=1
2.char 类型可以存放转义字符, 因为转义字符为1个字符,而不是两个;char 类型可以存放单个汉字, 因为1个汉字占两个字节,16位,而 char 类型也占16位。
char ch1 = '\n';
char ch2 = '你';
6.强制类型转换
char s = 97;
System.out.println(s);//a
//想输出b, a与b的ASCII码差1
System.out.println(s + 1);//98
System.out.println((char)(s + 1));//b