1.变量在定义的时候可以不赋初始值,但在使用的时候变量必须有值
2.数据类型
数据类型 | 字节数 | |
整型 | byte | 1 |
short | 2 | |
int | 4 | |
long | 8 | |
浮点型 | float | 4 |
double | 8 | |
字符型 | char | 2 |
布尔型 | boolean | 1 |
浮点数默认都是double类型
上面代码报错的原因就是5.0是double类型,不是float类型
当你使用
a = a + b
这样的操作时,Java编译器实际上会将其转换为a = (int)a + (int)b
,这样的转换会导致结果超出byte类型的范围,因此在赋值给a时会出现类型转换错误。然而,当你使用
a += b
这样的操作时,Java编译器会直接将a
和b
提升为int类型,然后进行运算,最后再将结果赋值给a
。由于+=
操作符是特殊的,它可以直接进行类型转换并赋值,因此不会出现类型转换错误。这就是为什么
a = a + b
会报错,而a += b
就不会报错的原因。
3.自动类型转换
类型范围小的变量,可以直接赋值给类型范围大的变量
4.next()方法与nextLine()方法区别
next()方法:
(1)一定要读取到有效字符后才可以结束输入
(2)对输入有效字符之间遇到的空白字符,next()方法会自动将其去除,也就是说如果输入了一串字符,到了有空格的时候就会停止录入,只录入空格前面的东西,空格后面的东西(包括分隔的空格都会保留在缓存区域),除了空格以外,Tab键和Enter键都被视为分隔符(结束符)。
nextLine()方法:
(1)以回车键为结束符,即nextLine()方法会返回输入回车键之前的所有字符
(2)nextLine()方法可以获取包含空白字符的输入,不会忽略空白字符
5.break,continue,return的区别
break:跳出并结束当前所在循环的执行,或者结束所在的switch分支的执行
continue:跳过当前循环的当次执行,直接进入循环的下一次执行
return 程序返回,不再执行下面的代码(结束当前的方法 直接返回)
左边是break执行的结果,右边是continue执行的结果
6.数组问题