原创 Tomcat是如何運行的?整體架構又是怎樣的

在許多的高端開發的崗位中都會或多或少有要求面試人員要研究過一些常用中間件源碼。這是因爲一切的祕密都是藏在源碼中,閱讀源碼能夠讓我們對框架或者中間件的理解更加深刻,而我們也能夠在源碼的研究中獲得其中一些優秀的設計方式。而我們的中間件

原创 聊一聊併發:看完你應該就明白synchronized是怎麼回事了!

對於Java開發者來說synchronized關鍵字肯定不陌生,對它的用法我們可能已經能信手扭來了,但是我們真的對它深入瞭解嗎?雖然網上有很多文章都已經將synchronized關鍵字的用法和原理講明白了,但是我還是想根據我個人的

原创 刺激!Java連降,Python霸榜,薪資116K$的Python人!

事情起因是這樣的: 編程語言流行指數(PYPL)排行榜近日公佈了2019年8月份榜單。 在最新一期榜單上, Python的份額高達28.73%,再次蟬聯第一,並且增長4.5%,同時成爲增長勢頭較好的語言。而被擠到第二蟬聯Jav

原创 Mysql 單表適合的最大數據量是多少?如何優化其性能?

我們說 Mysql 單表適合存儲的最大數據量,自然不是說能夠存儲的最大數據量,如果是說能夠存儲的最大量,那麼,如果你使用自增 ID,最大就可以存儲 2^32 或 2^64 條記錄了,這是按自增 ID 的數據類型 int 或 bi

原创 阿里Java一面:熟悉TCP粘包、拆包?說說粘包、拆包產生原因

大家好,我是發財!今天給小夥伴介紹一下TCP粘包、拆包!有自己看法的也可以在評論區留言探討,也可以轉發關注下我以後會長期分享! 一、TCP粘包、拆包圖解 假設客戶端分別發送了兩個數據包D1和D2給服務端,由於服務端一次讀取到字節

原创 面試題:數據量很大,分頁查詢很慢,有什麼優化方案?

當需要從數據庫查詢的表有上萬條記錄的時候,一次性查詢所有結果會變得很慢,特別是隨着數據量的增加特別明顯,這時需要使用分頁查詢。對於數據庫分頁查詢,也有很多種方法和優化的點。下面簡單說一下我知道的一些方法。 準備工作 爲了對下面列舉

原创 緩存成神路:Redis哨兵模式原理和部署,你不懂其實就這麼簡單

大家好,我是發財!上篇文章給大家分享下Redis 主從複製作用及場景模式和原理,今天來講講主從複製和哨兵模式配合使用!有不對的地方也可以在評論區留言探討,也可以轉發關注下我以後會長期分享! 哨兵模式 哨兵模式介紹 在將哨兵模式之前

原创 從千萬級數據查詢,來聊一聊索引結構和數據庫原理

在日常工作中我們不可避免地會遇到慢SQL問題,比如筆者在之前的公司時會定期收到DBA彪哥發來的Oracle AWR報告,並特別提示我某條sql近階段執行明顯很慢,可能要優化一下等。對於這樣的問題通常大家的第一反應就是看看sql是不

原创 阿里p8級技術大牛:帶你深入淺出動態MySQL

前言 今天我們來學習一下動態sql,看起來很NB的感覺。我們來看看官網是怎麼來介紹動態sql的。動態 SQL 是 MyBatis 的強大特性之一。如果你使用過 JDBC 或其它類似的框架,你應該能理解根據不同條件拼接 SQL 語句

原创 字節跳動面試,問了我樂觀鎖和悲觀鎖的AQS、sync和Lock,這個回答讓我拿了offer

前言 關於線程安全一提到可能就是加鎖,在面試中也是面試官百問不厭的考察點,往往能看出面試者的基本功和是否對線程安全有自己的思考。 那鎖本身是怎麼去實現的呢?又有哪些加鎖的方式呢? 我今天就簡單聊一下樂觀鎖和悲觀鎖,他們對應的實現

原创 SpringBoot系列--如何優化

00 介紹 在SpringBoot的Web項目中,默認採用的是內置Tomcat,當然也可以配置支持內置的jetty,內置有什麼好處呢? 方便微服務部署。 方便項目啓動,不需要下載Tomcat或者Jetty 針對目前的容器優化,目前

原创 面試官:如何停止一個正在運行的線程,你這都不知道?等通知吧

停止不了的線程 判斷線程是否停止狀態 能停止的線程–異常法 在沉睡中停止 能停止的線程—暴力停止 6.方法stop()與java.lang.ThreadDeath異常 釋放鎖的不良後果 使用retu

原创 阿里Java二面:說一說Redisson實現分佈式鎖原理?抱歉這篇來晚了

有關Redisson作爲實現分佈式鎖,總的分3大模塊來講。 Redisson實現分佈式鎖原理 Redisson實現分佈式鎖的源碼解析 Redisson實現分佈式鎖的項目代碼(可以用於實際項目中) 本文只介紹Redisson如何實現

原创 Java Agent與字節碼改寫實現業務代碼插樁的BeeMite

這個項目只是開源給大家學習的,編寫於2018年年底,那時候我剛學完JVM和字節碼。這個週末我主要是想學習Attach API,所以我把這個項目改了一下,也遇到了點問題,然後我從Arthas的源碼中尋找到了答案。 BeeMite j

原创 面試官:你的SQL一般有幾個join?

送分題 面試官:有操作過Linux嗎? 我:有的呀 面試官:我想查看內存的使用情況該用什麼命令 我:free 或者 top 面試官:那你說一下用free命令都可以看到啥信息 我:那,如下圖所示 可以看到內存以及緩存的使用情況 t