您现在所在位置: 首页 > 睿道新闻

列举Java中十大“坑爹”功能

发布时间:2020-09-22点击数:


  做为一门面向对象的编程语言,Java凭着其简易实用、功能强的特性得到了众多编程爱好者的认可,随着着开源社区的助力,Java语言更是席卷全球,来势汹汹,在世界各国都有Java技术的从业人员,它也长期位列编程语言排名榜的第一位,足够说明Java的强大与王者之风。


  殊不知,就算是这般强的编程语言,也是有许多 “坑爹”的功能,稍不留意,大家就会陷入沟里,轻则得到朋友的取笑和蔑视,重则导致凄惨局面而迫不得已跑路。


  自然,坑爹这个词再加上了双引号,由于绝大多数情况下,全是因为大家不足熟练、违背大家的常识才导致了让人不愉快的局面。


  今日我就来整理一下Java中最“坑爹”、最违背常识的功能点,以排名榜的方法公布,以飨读者。表明一下,文中中的代码根据JDK8来编译程序完成。


  switch务必再加上break才完毕


  针对多种支系挑选,一系列的if-else-if语句会让代码的易读性下降,提议应用switch句子来替代,殊不知switchcase中的支系分辨,务必再加上break句子才会中断其他case的实行,例如:


  intcount=1;


  switch(count){


  case1:


  System.out.println("one");


  case2:


  System.out.println("two");


  case3:


  System.out.println("three");


  }


  上边的代码会輸出:


  one


  two


  three


  殊不知,这并并不是大家要想的,也就是说违背了大家的常识。考虑了某类标准,自然就只需要实行这类标准下的逻辑性就可以,别的的case应当未予理睬、立即绕过,象上边这一段代码,只需要輸出one就可以了。自然,在每一个case结尾再加上break就可以做到大家期待的实际效果。


  这一功能点稍显“坑爹”,也是新手易犯的不正确,因此 它也无上光荣入选,排第10位。


  逻辑运算符的“短路故障”状况


  应用逻辑运算符时,大家会碰到“短路故障”的状况:一旦可以明确全部关系式的值,就不容易测算剩下的一部分了,自然,这一功能点实际上是十分有效的,但针对新手而言,很有可能会觉得较为诧异,错误操作就会造成“坑爹”局面。例如下边的代码:


  intnum=1;


  System.out.println(false&&((num++)==1));


  System.out.println(num);


  就会輸出false和1,由于逻辑&&的上半部分成false,无论后半段分成true還是false,全部关系式都是会回到false,因此 就不容易再测算后边的一部分了,假如把false改为true,那麼后半一部分就会获得实行,num也就变为2了。


  它在“坑爹”总榜中位居第9位。


  数组下标从零开始


  Java程序猿都清晰,数字能量数组的字符是从零开始的,例如,我们要解析xml一个数字能量数组,能够选用以下的方法:


  int[]arr=newint[]{1,3,5,7,9};


  for(inti=0;ith;i++){


  System.out.println("theelementis:"+arr);


  }


  这跟大家生活起居中的工作经验是相违反的,一切正常状况都是以第一个原素刚开始记数的,尤其是针对新手而言有点儿无法接纳,会感觉很诧异。即便 针对阅历丰富的程序猿而言,一些地区也需要分外留意,例如:


  Stringstr="helloworld";


  System.out.println(str.charAt(1));


  我们知道,charAt的功效是获得字符串数组中某一部位的标识符,殊不知,上边的代码并并不是輸出第一个标识符h,只是e,由于数字能量数组是从零开始记数的,这一也是较为“坑爹”啊。自然,设计师那么做的缘故是考虑到来到运行内存偏移的要素。


  每次在编写这样的代码时,都需要做这样的1到0的映射和转换(熟练了就是下意识的转换),确实也有点儿“坑爹”,因此 它也不能幸免,排在第八位。



  • 友情链接

关注东软睿道公众号了解更多IT行业资讯

添加东小萌微信
获取更多IT学习资源