日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

知乎:fastjson 这么快,为啥老外还是热衷 jackson?

發(fā)布時間:2025/3/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 知乎:fastjson 这么快,为啥老外还是热衷 jackson? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

知乎上有人提問:fastjson這么快,為啥老外還是熱衷 jackson? 下面是甘明的回答,從各個方面分析了這個問題:

哈哈哈,我來回答這個問題!

因為我實在是對這兩個庫太熟悉了。

1、

你寫個bean,然后屬性里分別有包含_(下劃線開頭、#開頭)之類的屬性,序列化為json時,出現(xiàn)屬性丟失,那么自然你也無法反序列化回來。

這個問題,1.2.14版本以后已經(jīng)改正。

2、

翻閱fastjson的源碼,你會發(fā)現(xiàn)有很多寫死的代碼,比如:針對spring之類的框架的各種處理,都是用classload判斷是否存在這種類名。

這是什么意思呢?

意思就是如果你用spring的那種思想,自己寫了個類似的功能,因為你這個項目里沒有spring的那個類,那么用起來就有一堆bug;當然不僅限于這些,還有很多,比如ASM字節(jié)碼織入部分,看源碼的話,能發(fā)現(xiàn)的缺點數(shù)不勝數(shù)。

3、

其解析json主要是用的String類substring這個方法,所以解析起來非常“快”,因為申請內存次數(shù)很少。

但是因為jdk1.7之前substring的實現(xiàn)并沒有new一個新對象,在使用的時候,如果解析的json非常多,稍不注意就會出現(xiàn)內存泄漏(比如一個40K的json,你在對象里引用了里邊的一個key,即使這個key只有2字節(jié),也會導致這40K的json無法被垃圾回收器回收),這也是“快”帶來的負面效果。

而且這還不算,在jdk1.7以上版本對string的substring方法做了改寫,改成了重新new一個string的方式,于是這個“快”的優(yōu)勢也不存在了。

?

最后

fastjson就是一個代碼質量較差的國產(chǎn)類庫,用很多投機取巧的的做法去實現(xiàn)所謂的“快”,而失去了原本應該兼容的java特性,對json標準遵循也不嚴格,自然很難在國際上流行。

json從發(fā)明到現(xiàn)在非常流行,并不是因為json快的原因(比json快且小巧的格式和類庫一大把),而是因為json和web結合的時候更易于使用,對開發(fā)人員易于理解。

很多人拿fastjson和jackson比,就像拿非智能機和iphone比待機時間,其功能性不一樣,jackson的很多功能fastjson并沒有實現(xiàn),所以這種對比也不客觀。

fastjson之所以沒在國際上流行起來,最主要的原因應該是開發(fā)者的思路全放到“快”上去了,而偏離了“標準”及功能性,質量也不夠好,有點“舍本逐末”的味道。

當然在目前的環(huán)境下,國產(chǎn)軟件能踏實的心態(tài)做好開源的不多,fastjson團隊能這么快的反饋并修正問題,這種精神還是值得稱贊的。希望國內的技術從業(yè)者能更重視“技術的原始需求”。

你覺得會是什么原因?歡迎在留言區(qū)討論。

總結

以上是生活随笔為你收集整理的知乎:fastjson 这么快,为啥老外还是热衷 jackson?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。