阿里程序員曬代碼被人鄙視了?
昨天快下班的時候劃了一下水,看到頭條上有位阿里的程序員曬了一段代碼。
那么他的笑點在哪里呢?
他認為應該 return a>0比較好,當然,我也這么覺得,精簡省事,一句搞定!
如果單單就是上面的一個簡單的邏輯,if-else寫法確實會讓別人鄙視。
然而,博主下面這句話刺激到了我。
我突然就覺得這位朋友可能對上面的if-else有什么誤解,他是覺得if-else性能比不上return a>0的寫法?我頓時覺得,這位阿里的朋友可能基礎不太好啊!
于是,我今天擠出一點劃水的時間,我來幫他證明一下!
首先,我寫了兩個方法case1、case2,也就是上面說到的兩種寫法
case1是用if-else的形勢,case2是直接return的方式
然后,我編譯這兩個方法,并反編譯這個編譯后的代碼,看看編譯器是怎么處理這兩種方法的!
編譯和反編譯的文件生成在這兩個文件夾下,smali文件夾下即為反編譯生成的編譯后的文件。
當我運行doJava2Smali()方法后,就會得到反編譯的代碼。
下面就是編譯器編譯后的代碼,也就是java虛擬機可直接執行的代碼!
可以看出,兩個方法編譯后的代碼是完全一樣的!