原意,想写技术含量较高的文章,可自己技术水平有限,主要是自己平时写得太少,缺乏经验,暂时没有太多技术类文章输出,先写写些简单地、且是在工作中可能经常遇到的坑,在此列举一些。希望写出来可以相互参考,避免此类坑出现。 --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】
如果你对测试方面有更好的技术、想法和看法,我们可以一起聊聊。如何改善自己,提升做事效率,个人责任感……
欢迎来撩,但别撩我 ^ _ ^
文章仅供参考,请勿转载。