Java那些曾经让人困扰的BUG

        在初学Java编程的过程中,会经常遇到很多困扰自己很长时间的BUG,现在回过头来看曾经那些BUG的时候,会发现这些BUG其实都很简单,但初学时可能无法很快就能明白问题所在,本文大概讲述下初学Java时经常遇到的一些BUG。

1.用"=="比较引用类型的数据

        对于引用类型的数据,"=="比较的是两个数据在内存中的地址,因此用"=="比较两个内容相同的字符串时,依旧会返回false,因为被比较的两个字符串内存地址是不同的,所以返回false,此时应该用equals()进行比较,equals()会比较两个字符串的内容,而不是内存地址。不过对于基本的数据类型,是可以用"=="进行比较的。

2.equals()遇到null

        有时候会使用equals()比较两个字符串内容是否相同,比如str1.equals(str2),其中str1和str2是两个字符串,如果str1不为null时,则equals()不会报错,但若str1为null,则equals()会报空指针异常,因此使用equals()时,str1不能为null。str2为null时,equals()不会报错,如果要判断str2是否为空字符串,则可以用"".equals(str2)这样的写法,如果str2有可能为null,则可以这样写:if(str2==null||"".equals(str2))。

3.字符串强转为数值型

        有时候会使用Integer.parseInt(str)对内容为整数值的字符串str强制转换为整型,如果str内容是整数值,则Integer.parseInt(str)不会报错,但若str不能完全保证一定是整数值,比如str中包含字母,则Integer.parseInt(str)就会抛出类型转换异常。

4.数组越界

        数组时经常会被用到的,比如定义了一个数组arr[10],有10个元素,元素下标分别为0到9,一般会在循环中获取数组元素,但有时候会因为各种原因,导致数组下标越界,此时就会报错。

5.运算异常

        有时候会用到加减乘除这样的运算,当使用除法时,需要注意除数不能为零,如果除数为零,运算就会报错。

6.使用size()获取Vector的大小

        有时候会用到Vector集合,经常会使用size()获取Vector集合的大小,如果Vector集合是null,则使用size()就会报错。

7.与数据库交互时的Sql错误

        从数据库获取数据时,一般会先定义变量存放Sql语句,然后再执行Sql,如果Sql语句比较复杂,可能存在语法错误,但是肉眼无法一眼就能看出来,只有在代码运行时候才会报错,建议可以先把Sql语句放在数据库先执行一遍,以确保Sql语句没有问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值