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