原创 Java併發編程(一)之線程

前言 併發編程的目的是爲了讓程序運行得更快,但是,並不是啓動更多的線程就能讓程序最大限度地併發執行。在進行併發編程時,如果希望通過多線程執行任務讓程序運行得更快,會面臨非常多的挑戰,比如上下文切換的問題、死鎖的問題,以及受限於硬件

原创 每日一面系列之ArrayList奪命連環問

1.ArrayList用過嗎?知道是幹什麼的嗎?有什麼特點? ArrayList是用來存儲數據的一個集合,當我們存儲的數據類型是基本數據類型的時候,需要存儲他們的包裝類。ArrayList底層是Object數組實現的。它的特點是查

原创 微信公衆號相關開發

前段時間因公司業務需要,進行了微信公衆號相關功能的開發,在此之前這方面我也是沒有接觸過,所以做的過程中也踩了很多坑,查了不少資料,應小夥伴要求,就把代碼貼出來,做個記錄,也方便以後再開發這方面的功能。 首先是幾個model類 靜態

原创 每日一面系列之Java基礎(下)

1.面向對象和麪向過程有什麼區別? 面向過程:面向過程的效率要高於面向對象,因爲類的調用需要實例化,資源開銷比較大,一般當性能是最重要的指標的時候會採用面向過程的方式進行開發,比如單片機、嵌入式開發等。 面向對象:面向對象易維護、

原创 每日一面系列之HashMap奪命連環問

1.HashMap的底層數據結構是什麼? 底層數據結構是哈希表結構(鏈表散列:數組+單向鏈表),結合了數組和鏈表的優點,當鏈表長度超過8時,鏈表會轉爲紅黑樹。數組中的每一個元素都是鏈表。總結來說就是HashMap在JDK1.8之前

原创 每日一面系列之Java基礎(上)

1.你知道運算符&和&&,|和||的區別嗎?(考察短路運算符和位運算) &按位與操作,只有對應的兩個二進制數都爲1的時候,結果才爲1。 例:1 & 1 = 1,1 & 0 = 0,0 & 1 = 0,0 & 0 = 0 |按位或操

原创 每日一面系列之Java集合基礎

1.講一下List、Set、Map三者的區別 List存儲的元素是有序,可以重複的。 Set存儲的元素是無序,不可重複的。 Map是以key-value鍵值對的方式存儲元素,key是無序不可重複的,value是無序可以重複的,每

原创 Java併發編程(三)之悲觀鎖與樂觀鎖

何謂悲觀鎖?何謂樂觀鎖? 樂觀鎖就像生活中那些樂觀的人,對於事情的發展總是往好的方向去想。悲觀鎖就像生活中那些悲觀的人,對於事情的發展總是往壞的方向去想。這兩種鎖各有各的優缺點,不能不以場景而定某一種鎖就比另一種鎖好。 悲觀鎖 總

原创 Java併發編程(二)之synchronized

前言 上一篇文章我們學習了併發編程中的第一個核心知識點線程,如果有小夥伴沒看過可以點這裏Java併發編程(一)之線程。這篇文章就帶小夥伴們一起學習一下第二個核心知識點—synchronized,這也是面試中只要問道併發必問的知識點

原创 Mybatis-Generator配置詳解

Mybatis-Generator可以幫我們自動生成xml、dao、model,非常方便,大大節省了開發時間 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorCo

原创 Java併發編程基礎篇(一)之線程

前言 併發編程的目的是爲了讓程序運行得更快,但是,並不是啓動更多的線程就能讓程序最 大限度地併發執行。在進行併發編程時,如果希望通過多線程執行任務讓程序運行得更快,會 面臨非常多的挑戰,比如上下文切換的問題、死鎖的問題,以及受限於

原创 Java網絡IO演進之路

前言 說起IO,很多人對它應該都有所耳聞,可能很多人對IO都有着一種既熟悉又陌生的感覺,因爲IO這一塊內容還是比較廣泛雜亂的,整個IO的體系也是十分龐大。那麼IO到底是個什麼東西呢?IO 是主存和外部設備 ( 硬盤、終端和網絡等