今天研讀Java并發(fā)容器和框架時,看到為什么要使用ConcurrentHashMap時丘侠,其中有一個原因是:線程不安全的HashMap, HashMap在并發(fā)執(zhí)行put操作時會...
![240](https://upload.jianshu.io/users/upload_avatars/26387123/0a51aa48-69d3-4cf1-bbd3-2b6df54e924c.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
今天研讀Java并發(fā)容器和框架時,看到為什么要使用ConcurrentHashMap時丘侠,其中有一個原因是:線程不安全的HashMap, HashMap在并發(fā)執(zhí)行put操作時會...
相信大家都用過 Fastjson坠韩,阿里的一個開源 JSON 庫扒怖,在阿里系的開源項(xiàng)目里應(yīng)用的非常廣泛罗侯。雖然有時候也被戲稱“沉的快”清笨,但 Fastjson 從功能豐富度月杉、易用性、...
為什么寫這篇文章? 相信不少 Java 開發(fā)都在項(xiàng)目中使用過類似 ApiResult 這樣的對象來包裝 Api 返回類型检号,這相比什么都不包裝有一定的好處脆诉,但這真的就是最好的做...
最近,我們的線上環(huán)境出現(xiàn)了一個問題策州,線上代碼在執(zhí)行過程中拋出了一個IllegalArgumentException,分析堆棧后弟头,發(fā)現(xiàn)最根本的的異常是以下內(nèi)容: 大概就是以上的...
前言 作為一名Java程序員阁危,我們需要知道Java代碼是怎么運(yùn)行的。最近復(fù)習(xí)了深入理解Java虛擬機(jī)這本書汰瘫,做了一下筆記狂打,希望對大家有幫助,如果有不正確的地方吟吝,歡迎提出菱父,感激...
前言 在分布式系統(tǒng)中,緩存和數(shù)據(jù)庫同時存在時蛹磺,如果有寫操作粟瞬,先操作數(shù)據(jù)庫還是先操作緩存呢?本文將分5種方案闡述展開對比萤捆,謝謝閱讀~ 緩存維護(hù)方案一 如果是一讀(線程B)一寫(...
并發(fā)編程是 java 高級程序員的必備的基礎(chǔ)技能之一俗或。但是想要寫好并發(fā)程序并非易事市怎。 那究竟是什么原因?qū)е麓蟀训摹案褡由馈迸笥褵o法寫出優(yōu)質(zhì)和性能穩(wěn)定的并發(fā)程序呢?根本原因就是...
相信很多程序員對于Linux系統(tǒng)都不陌生区匠,即使自己的日常開發(fā)機(jī)器不是Linux,那么線上服務(wù)器也大部分都是的帅腌,所以驰弄,掌握常用的Linux命令也是程序員必備的技能。 但是速客,怕就...
Java作為一種面向?qū)ο蟮哪缰埃缙脚_語言岔擂,其對象、內(nèi)存等一直是比較難的知識點(diǎn)浪耘,所以智亮,即使是一個Java的初學(xué)者,也一定或多或少的對JVM有一些了解点待±龋可以說,關(guān)于JVM的相關(guān)知識...
本文要介紹的是一個發(fā)生在我們線上環(huán)境的真實(shí)案例,問題發(fā)生在某次大促期間颠区,對我們的線上集群造成了比較大的影響削锰,這篇文章簡單復(fù)盤一下這個問題。 問了方便大家理解毕莱,實(shí)際排查和解決過...
前段時間我們新上了一個新的應(yīng)用朋截,因?yàn)榱髁恳恢辈淮笥忌裕篞PS大概只有5左右,寫接口的rt在30ms左右部服。 因?yàn)樽罱尤肓诵碌臉I(yè)務(wù)唆姐,業(yè)務(wù)方給出的數(shù)據(jù)是日常QPS可以達(dá)到2000...
最近無論是校招還是社招奉芦,都進(jìn)行的如火如荼,我也承擔(dān)了很多的面試工作剧蹂,在一次面試過程中声功,和候選人聊了一些關(guān)于Dubbo的知識。 Dubbo是一個比較著名的RPC框架宠叼,很多人對于...
JVM啟動后默認(rèn)將最大使用堆大小設(shè)置為物理內(nèi)存的四分之一,譬如一臺普通的x86服務(wù)器配置128G內(nèi)存车吹,那么啟動在容器的內(nèi)啟動JVM會將自己最大允許使用的堆內(nèi)存調(diào)整為32G內(nèi)存...
曾經(jīng)醋闭,我以為這些東西自己平時看看書就夠了窄驹,屬于那種花了半天精力總算搞明白了,然后過兩天就自然忘記的東西证逻。 結(jié)果乐埠,這都啥啊,啥是卡表囚企,什么又是三色標(biāo)記法丈咐,這些鬼問題都有人面試問...
Seata 如何使用 SPI Seata 是一個分布式事務(wù)的框架辆影,具體的使用這里不再贅述徒像,有時間可以出專門寫它的文章。本節(jié)主要關(guān)注 Seata 是如何利用 SPI 的方式進(jìn)行...
spring batch 簡介 spring batch 是 spring 提供的一個數(shù)據(jù)處理框架。企業(yè)域中的許多應(yīng)用程序需要批量處理才能在關(guān)鍵任務(wù)環(huán)境中執(zhí)行業(yè)務(wù)操作次慢。這些業(yè)...
Redis 作為一個非常成功的數(shù)據(jù)庫迫像,提供了非常豐富的數(shù)據(jù)類型和命令劈愚,使用這些,我們可以輕易而高效地完成很多緩存操作侵蒙,可是總有一些比較特殊問題或需求需要解決造虎,這時候可能就需要...
前言 本篇博客中算凿,我們將會討論用于聲明不同類型 Beans 的幾種最常用的 Spring Bean 注解。 眾所周知犁功,Spring 容器中有許多配置 Bean 的方法氓轰,我們既...
前言 相信大家浸卦,初始在使用Linux操作系統(tǒng)時署鸡,查找歷史命令,第一時間會想到history命令:將顯示出之前操作過的命令限嫌,其無法顯示操作過的命令所輸出的過程及結(jié)果靴庆。 但往往有...
概念 Stream 將要處理的元素集合看作一種流怒医,在流的過程中炉抒,借助 Stream API 對流中的元素進(jìn)行操作,比如:篩選稚叹、排序焰薄、聚合等。 Stream 的操作符大體上分為...