原创 一文讓你學會手動創建線程池

一、爲什麼要手動創建線程池? 我們之所以要手動創建線程池,是因爲 JDK 自帶的工具類所創建的線程池存在一定的弊端,那究竟存在怎麼樣的弊端呢?首先來回顧一下 JDK 中線程池框架的繼承關係: JDK 線程池框架繼承關係圖 我

原创 JVM自定義類加載器加載指定中classPath下的所有class及jar

一、JVM中的類加載器類型 從Java虛擬機的角度講,只有兩種不同的類加載器:啓動類加載器和其他類加載器。   1.啓動類加載器(Boostrap ClassLoader):這個是由c++實現的,主要負責JAVA_HOME/lib

原创 JAVA最清晰的學習過程,適合正在努力的你

本文會從一個完整的電商系統作爲切入點,帶着大家看看,我們需要學些啥,我甚至還收集配套資料基本上算是麻雀雖小五臟俱全,我今天就用它開刀,一步步剖析,我會講一下我們可能會接觸的技術棧可能不全,但是夠用,最後給個學習路線。 Tip:請多

原创 你真的會創建一個線程嗎?

前言 在文章開始之前先看一個問題,下圖幾種創建線程方式分別是什麼,它們之間的區別和聯繫是什麼? 如果可以輕鬆回答,那麼本文對你來說過於基礎,不用往下看啦,如果還有所迷惑,那就和Nauyus一起復習下創建線程的幾種方式吧! 如何創

原创 如何才能成爲架構師?

說到程序員的薪資我想也就只有“架構師”的薪資是足夠誘惑到大家的,年薪40W-80W對於他們來說是比較簡單的一件事,今天我們就來聊聊“架構師”。 架構師是一個充滿挑戰的職業,知識面的寬窄往往決定着一個架構師的架構能力。閱讀大量的技術

原创 2020金三銀四,面試求生指南

2020年,面試就靠它們了,現在每天刷題,看源碼文檔,最近看的這些題目還是有些難度,有一部分我都要好好想一想才能回答出來,或者回答不出來,總的來說知識寬度夠了深度還跟不上。所以要重點突破下底層的東西。這篇文章我總結了很久,希望對正

原创 《【面試突擊】— Redis篇》-- Redis的線程模型瞭解嗎?爲啥單線程效率還這麼高?

1、面試題 Redis和Memcached有什麼區別? Redis的線程模型是什麼? 爲什麼Redis是單線程的但是還可以支撐高併發? 2、面試官心理分析 問這個的時候就是問你Redis的原理了,看你是不是思考過,研究過。Redi

原创 Java 虛擬機:看完就懂 JVM 架構和運行時數據區 (內存區域)

一、Java 虛擬機架構 (JVM Architecture) 在我看來,不管學習什麼樣的知識或技術,首先要做的就是從全局上去認識它,這樣才能避免盲人摸象,事倍功半的情況發生。既然要學習 JVM,就要先了解它的整體架構,於是我畫了

原创 阿里P7高級架構師分享6年多的Java工作經驗(想衝破瓶頸者必看)

很多工作了五年左右的程序員每天已經習慣了機器般的寫代碼,如果是這樣那麼你永遠只會是個基礎程序員,因爲你不能只會用,你要知道原理,不至於讓你自己實現一個出來,但是基本原理要知道。 到了這個階段,你要懂得JVM基本結構,要知道垃圾回收

原创 高效程序員的七個習慣

軟件工程師花費大量時間通過練習leet code問題和完善簡歷來獲得更好的面試通過可能。一旦他們最終被谷歌、亞馬遜或其他公司錄用,他們可能會發現:過去用來得到這份工作的技能與他們日常工作中需要的技能並不匹配。 我們的團隊受到 Te

原创 Linux中最常用的一套“AWK“

敢用自己的名字做軟件名字的,都有非常強大的自信。比如,垠語言什麼的。 awk的命名得自於它的三個創始人姓別的首字母,都是80來歲的老爺爺了。當然也有四個人的組合:流行的GoF設計模式。但對於我這遊戲愛好者來說,想到的竟然是三位一體

原创 Java8新特性 - Lambda

爲什麼要Lambda Java8應該是目前最大的一次更新了,更新後我們迎來了很多新特性,其中便包括Lambda表達式,函數式編程的思想正式進入Java,讓我們看一個經典案例。 例1 按照兩個人的年齡排序的功能 採用匿名內部類已經算

原创 大廠面試題到底考察面試者哪些方面的能力?

前言 看過很多公司的面試題,也參與過很多公司的面試,發現大廠的面試題更加具有代表性,雖然現在很多大廠的面試官也懶得自己出題了,不過經驗老到的他們還是更清楚如何高效率地考察面試者。 而小公司的面試題往往五花八門,有的更加貼近公司自身

原创 來自阿里的P7高級程序員教你如何成爲一名合格的Java程序員

Java程序員的基本技能 基本語法 這包括static、final、transient等關鍵字的作用,foreach循環的原理等等。今天面試我問你static關鍵字有哪些作用,如果你答出static修飾變量、修飾方法我會認爲你合格

原创 SpringBoot:如何優雅地處理全局異常?

之前用springboot的時候,只知道捕獲異常使用try{}catch,一個接口一個try{}catch,這也是大多數開發人員異常處理的常用方式,雖然屢試不爽,但會造成一個問題,就是一個Controller下面,滿屏幕的try{