首页 > 代码库 > Java中的一些常见错误
Java中的一些常见错误
1.空指针错误
在java数组的使用中,有时候需要对字符串数组中的元素进行对比。那么当元素不为null时,程序会正常运行;然而,一旦对比的元素为null,那么程序就会出现空指针错误。
解决方法:加入保护,当元素不为null时在进行判断。
String sr = "A";
for(int i=0;i<sums.length;i++){
if(sums[]!=null && sums[i].equals(sr)){
System.out.println("找到元素"+sums[i]);
break;
}
}
2.数据的精度范围与类型转换
在Java中有4种基础类型数据:
整型: -1 2 3 4 ……
浮点型:float 1.3f double 3.2 3.5d (未标明类型,默认最高精度)
字符型:采用Unicode编码,2字节
布尔型:true、false
|
|
格式 |
长度 |
精度范围 |
整 型 |
byte |
-1 2 3 4 …… |
1字节 |
-128~127 |
short |
-1 2 3 4 …… |
2字节 |
||
int |
-1 2 3 4 …… |
4字节 |
||
long |
-1l ,2l, 3l ,4l,5L …… |
8字节 |
||
浮点型 |
float |
2.3f (符号不区分大小写) |
4字节 |
|
double |
3.2 2.3d |
8字节 |
|
|
字符型 |
char |
‘A’ |
2字节 |
|
公式:n位二进制存储精度范围= -2n-1~2n-1-1(1字节=8位二进制) |
四种基础类型数据的精度范围各不相同,逐级提升。
如果在使用数据类型时,不注意精度范围,就会出现数据溢出,从而发生计算错误。
四种基础类型中,整型,浮点型和字符型数据是可以相互转化的。
转换规则如下:
①隐形转换:精度小的数据值,赋值给精度大的值,可以自动转换。(低级向高级)
②强制转换:范围大的数据值,(高级到低级)
③运算自动提升规则:运算中,自动转换为精度高的数据类型。
3.三种循环的使用
①for 循环:是一种有限次数的循环,在循环前,规定好循环次数。
for(表达式;表达式;表达式){
循环体
}
break语句:执行后,立即跳出循环,不在执行后面的语句,且结束所有循环。
continue 语句:执行后,立即跳出当前单词循环,重新判断条件是否继续循。
②While循环语句:适合未知次数的循环。
while(条件表达式){
语句
};
③do-While循环:也是未知次数的循环。单至少要先执行一次do,在判断。如果while成立,继续循环,反之,结束循环。
do {
语句
}while(条件表达式);
Java中的一些常见错误