美文网首页时间,效率,自律计划、用例、报告百人计划
论【java☞1】数据类型的坑,bug定位系列

论【java☞1】数据类型的坑,bug定位系列

作者: _王子_ | 来源:发表于2017-02-22 15:44 被阅读68次

    原意,想写技术含量较高的文章,可自己技术水平有限,主要是自己平时写得太少,缺乏经验,暂时没有太多技术类文章输出,先写写些简单地、且是在工作中可能经常遇到的坑,在此列举一些。希望写出来可以相互参考,避免此类坑出现。           --by 王子

    首先,我们了解一下java中有哪些数据类型且各自范围。

    基本数据类型 Java里面包含8个基本数据类型,分别是: boolean、byte、char、short、int、float、douboe、long。分别大小、范围、默认值:

    byte(字节) :大小=[ 8 ];范围=[ -128 ~127 ];默认值= [ 0 ]

    shot(短整型) :大小= [16 ];范围=[ -32768 ~ 32768 ];默认值= [  0 ]

    int(整型) :大小=32;范围=[ -2147483648 ~ 2147483648 ];默认值= [  0 ]

    long(长整型) :大小=64;范围=[ -9233372036854477808 ~ 9233372036854477808 ];默认值= [  0 ]

    float(浮点型) :大小=32;范围=[ -3.40292347E+38 ~ 3.40292347E+38  ];默认值= [ 0.0f ]

    double(双精度) :大小=64;范围=[  -1.79769313486231570E+308 ~1.79769313486231570E+308 ];默认值= [ 0.0d ]

    char(字符型):大小=16;范围=[ ‘ \u0000 ~ u\ffff ’   ];默认值= [ ‘\u0000 ’ ]

    boolean(布尔型):大小=1;范围=[ true/false  ];默认值= [ false ]

    其中列举int(整型)出来说明坑在哪。

    需求说明:

    抽样基数:(1-10个字符,记录上次的输入信息,限制为数字正整数,非必填)

    对抽样基数进行测试界面边界值,输入“2586555585”,刚好10个字符

    测试结果如下:

    测试结果

    对于这样结果,作为测试,一开始是不知道为什么会报这个错的。先要排查问题出现在哪:

    1、10个字符正常范围

    2、纯数字(正整数)

    3、功能异常

    4、接口数据异常

    5、查看错误日志

    ……

    经一系列定位问题,最后得出问题所在,是接口返回值报错。

    那好,问题来了,为什么会报这个错?

    答案是 java中的int(整型)是32bit的,也就是说最大值是 2147483648-1。找出答案,自然就知道为什么会报错了。

    怎么解决这个问题?减少开发成本,节约大家的时间,与需求、开发沟通解决方案如下:

    1、简单的方法,前端app字符长度限制为0-9,完美解决这问题;

    2、转换int(整型),转换成long(长整型),同样可以解决这个问题,也满足前端app10个字符长度的最大值(9999999999)

    最后选择1,快速解决问题,减少接口发包更新次数,相对来说,app更新要容易得多。

    另外了解一下数据类型转换的方法

    基本数据类型自动转换

    byte->short,char->int->long

    float->double

    int->float

    long->double

    备注:小可转大,大转小会失去精度!


    后续有相关bug定位的文章,会继续分享……


    【End】

    如果你对测试方面有更好的技术、想法和看法,我们可以一起聊聊。如何改善自己,提升做事效率,个人责任感……

    欢迎来撩,但别撩我  ^ _ ^


    文章仅供参考,请勿转载。

    相关文章

      网友评论

      • 三笑奈若何:写得很好,赞一个
      • 程守正:干货满满啊 👍
      • 寻叶亭:基础概念普及-发现问题-bug分析-定位问题原因-选择最优解决方案,很清晰!

      本文标题:论【java☞1】数据类型的坑,bug定位系列

      本文链接:https://www.haomeiwen.com/subject/idmpwttx.html