java垃圾_Java很垃圾吗?
現(xiàn)在流行的語(yǔ)言,java是最爛的。
對(duì)于從C#轉(zhuǎn)過(guò)來(lái)的我來(lái)說(shuō)尤其如此。在一個(gè)java項(xiàng)目告一段落之際,現(xiàn)在讓我吐槽一下:
1. java的泛型讓人費(fèi)解。類型擦除讓泛型的優(yōu)勢(shì)蕩然無(wú)存。本來(lái)泛型的一大優(yōu)勢(shì)是避免裝拆箱的性能開(kāi)銷。在java里,僅僅就剩下語(yǔ)法糖的功能。況且這顆糖非常的不好吃。
2. java里的lambda表達(dá)式實(shí)在是難看得要死。本來(lái)業(yè)界都用=>來(lái)代表箭頭函數(shù),java非要用->顯得和別人不同。這也就算了,凡用到lambda的地方還非要steam()轉(zhuǎn)一下,對(duì)于數(shù)組,還要Array.stream(), 要多別扭就有多別扭,要多難看就有多難看。更坑爹的是,還不支持延遲加載,用過(guò)一次再接著用就報(bào)錯(cuò)!
3. java的方法的異常處理聲明讓人惱火。我們知道,現(xiàn)在AOP編程,異常都是在框架上層集中處理的。底層只管拋就是了。一般情況下,不主張?jiān)诘讓佑胏atch“吃掉”異常. 這就導(dǎo)致,如果我不想吃掉異常,就得拋出,如果要拋出,就得在方法聲明后加throws xxxException。而如果一個(gè)方法調(diào)了其他的方法,也要跟著throws 這個(gè)Exception, 如果調(diào)了n多有異常的方法就得throws n多個(gè)Exception. 當(dāng)然有人會(huì)說(shuō),你不會(huì)只throws 單一的基類Exception嗎?這樣倒是可以簡(jiǎn)單點(diǎn)。 那這個(gè)throws機(jī)制還有什么用呢?
4. java沒(méi)有隨用隨丟的匿名對(duì)象,類似C#的new { a, b}, 或者像js那樣更簡(jiǎn)單的{a, b}。這在傳給api傳參時(shí),或者webapi返回的結(jié)果,是由幾個(gè)值組成,但又不值得定義一個(gè)類時(shí),顯得特別啰嗦,導(dǎo)致我要么用一個(gè)hashmap來(lái)裝,要么再專門定義一個(gè)只用一次的類。
5. java沒(méi)有var的隱式類型聲明。接受一個(gè)很長(zhǎng)的類型名的返回結(jié)果時(shí),特別不簡(jiǎn)潔。這個(gè)據(jù)說(shuō)在java12以后支持。但是現(xiàn)在誰(shuí)敢用java8以上的版本?
6. java沒(méi)有擴(kuò)展方法的機(jī)制。導(dǎo)致現(xiàn)在java的Util類滿天飛。你如果想想像別的語(yǔ)言那樣,一氣點(diǎn)下去,簡(jiǎn)直是作夢(mèng)。你不得不在寫好一個(gè)對(duì)象以后,發(fā)現(xiàn)它沒(méi)有你要的方法,然后不停把光標(biāo)調(diào)到對(duì)象前面,加util,再加括號(hào),再移到對(duì)象后面,再加反括號(hào)。太不順暢了!
7. 現(xiàn)在流行的spring-boot實(shí)在是太慢了。我寫一個(gè)單元測(cè)試,運(yùn)行一次,初始化都要一分鐘,搞得我現(xiàn)在煙抽得越來(lái)越多!
當(dāng)我,我才寫兩個(gè)月的java代碼,難免對(duì)java有所偏見(jiàn)。歡迎各位java大神拍磚!
------分割一下------
我看有很多的java大神在噴我,評(píng)論比點(diǎn)贊還多,我說(shuō)一下 我沒(méi)有很極端,有些問(wèn)題確實(shí)不及別的語(yǔ)言優(yōu)秀,我既然學(xué)它 肯定還是一門好的語(yǔ)言。
C++之父Bjarne Stroustrup說(shuō)過(guò):世界上只有兩種編程語(yǔ)言,一種是整天被人罵的,還有一種是沒(méi)人用的。
總結(jié)
以上是生活随笔為你收集整理的java垃圾_Java很垃圾吗?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 买基金定投还是一次性买入 根据不同情况
- 下一篇: 621499开头是什么银行