Java:易犯错误+陷阱

常见错误

1.找不到文件

  • 源文件名称是否与public类同名、编译时是否写错、源文件路径是否正确

2.类X是公共的,应在名为…的文件中声明

  • 源文件名称是否与public类同名

3.非法字符

  • 中英文字符用错

4.找不到符号

  • 单词写错

陷阱

1.计算机在做除法时,如2.1/3,会得到一个0.7的近似值,而不是等于0.7,这是由于计算机将2.1默认成后面还有小数,那进行除法时就只能得到一个近似值。因此,不能将除法得到的值和另一个值做判断相等的操作,而是选择求出二者的差值,只要得到的差值在某个范围内,就认为条件成立。
另:如果直接给a、b赋值一个小数2.1,那么就二者就是相等的

2.由于java中默认浮点数是double类型,如果要表示float就需要在小数后面加上f \ F , 于是在1.1+2这样的计算式中,java会首先将所有数据统一成最大的数据类型,即此处计算式中的double,因此 : double a = 1.1 + 2 这样声明的变量类型才是正确的。同样java默认一个具体的数是int类型,如果要表示成long ,需要在数后面加 l / L。

3.数据类型的精度判断
① 由于上面说到java默认一个具体的数是int类型,有个特例是: byte a = 10 ,此时,java或首先判断10是否在[-128,127]的范围内,于是上述数值声明是正确的,但如果是: int b = 10 ; byte a = b ,此处是将高精度转到低精度,这是错的,因为b指向的10已经存放到4个字节中了.
② byte a = 10; short b = a +1 ;第一句中是正确的,10在byte的范围内,此时a在内存空间中指向10这个数,a+2得到int类型的数,不能给short类型
注意:其他数据类型也同样是先判断范围,再判断精度

4.注意将数学公式或者其他需求用计算机语言合理表达出如:
数学公式中的:5/9*a,在编程时如果直接写5/9,此时是两个int类型的数在计算,最后得到的也是一个int类型的,也即等于0 ,那这样不管a等于多少,最后结果都是0,这显然不对;于是就使用5.0f或5.0将整数转换成浮点型

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值