昨天快下班的时候划了一下水,看到头条上有位阿里的程序员晒了一段代码。
那么他的笑点在哪里呢?
他认为应该 return a>0比较好,当然,我也这么觉得,精简省事,一句搞定!
如果单单就是上面的一个简单的逻辑,if-else写法确实会让别人鄙视。
然而,博主下面这句话刺激到了我。
我突然就觉得这位朋友可能对上面的if-else有什么误解,他是觉得if-else性能比不上return a>0的写法?我顿时觉得,这位阿里的朋友可能基础不太好啊!
于是,我今天挤出一点划水的时间,我来帮他证明一下!
首先,我写了两个方法case1、case2,也就是上面说到的两种写法
case1是用if-else的形势,case2是直接return的方式
然后,我编译这两个方法,并反编译这个编译后的代码,看看编译器是怎么处理这两种方法的!
编译和反编译的文件生成在这两个文件夹下,smali文件夹下即为反编译生成的编译后的文件。
当我运行doJava2Smali()方法后,就会得到反编译的代码。
下面就是编译器编译后的代码,也就是java虚拟机可直接执行的代码!
可以看出,两个方法编译后的代码是完全一样的!