广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

Java 语言中几大“坑爹”功能

作者:adminwu发布时间:2021-06-24分类:Java技术浏览:763


导读:java语言具有“一次编译、到处运行”的特点。Windows、Linux、MacOS平台都能对java程序进行编译并执行编译后的代码。java为解释型语言,编译器会把Java代码变...

java语言具有“一次编译、到处运行”的特点。Windows、Linux、MacOS平台都能对java程序进行编译并执行编译后的代码。java为解释型语言,编译器会把Java代码变成中间代码然后在java虚拟机上解释执行。由于中间代码与平台无关,因此,java语言可以很好的跨平台执行,具有很好的可移植性。

然而,即便是如此强大的编程语言,也有很多“坑爹”的功能,稍不注意,我们就会掉入坑里。当然,坑爹这个词加上了双引号,因为大部分时候,都是由于我们不够熟练、违反我们的常识才造成了令人不愉快的后果。今天我们就来梳理一下Java中最“坑爹”、最违反常识的功能点,以排行榜的方式发布,以飨读者。说明一下,本文中的代码基于JDK8来编译实现。

1、Integer类有缓存

这个功能点也是面试的高频热点之一,稍不注意,也有可能被带入沟里,我们看看下面这段代码:

  

Java 语言中几大“坑爹”功能



这确实太出乎意料了,一样的代码,只是由于数值不同(而且差别不太大的样子),就产生了不一样的输出,这也太离谱了。

原来,Integer中有一个静态内部类IntegerCache,在类加载的时候,它会把[-128, 127]之间的值缓存起来,而Integer a = 100这样的赋值方式,会首先调用Integer类中的静态valueOf方法,这个方法会尝试从缓存里取值,如果在这个范围之内就不用重新new一个对象了。


2、switch必须加上break才结束对于多重分支选择

一系列的if-else-if语句会让代码的可读性变差,建议使用switch语句来代替,然而switch case中的分支判断,必须加上break语句才会中止其它case的执行,比如:


Java 语言中十大“坑爹”功能

3 、逻辑运算符的“短路”现象

使用逻辑运算符时,我们会遇到“短路”的现象:一旦能够确定整个表达式的值,就不会计算余下的部分了,当然,这个功能点其实是非常有用的,但对于初学者来说,可能会感觉比较惊讶,使用不当就会产生“坑爹”后果。比如下面的代码:

Java 语言中几大“坑爹”功能

输出false和1,因为逻辑与&&的前半部分为false,不管后半部分为true还是false,整个表达式都会返回false,所以就不会再计算后面的部分了,如果把false改成true,那么后半部分就会得到执行,num也就变成2了。

4、 数组下标从零开始

Java程序员都清楚,数组的下标是从零开始的,比如,我们要遍历一个数组,可以采用如下的方式:

Java 语言中几大“坑爹”功能


Java技术排行
标签列表
网站分类
文章归档
最近发表