原创 哦!這該死的 C 語言

前言 C 語言是一門抽象的、面向過程的語言,C 語言廣泛應用於底層開發,C 語言在計算機體系中佔據着不可替代的作用,可以說 C 語言是編程的基礎,也就是說,不管你學習任何語言,都應該把 C 語言放在首先要學的位置上。下面這張圖更好的說明 C

原创 爲什麼一個還沒畢業的大學生能夠把 IO 講的這麼好?

Java IO 是一個龐大的知識體系,很多人學着學着就會學懵了,包括我在內也是如此,所以本文將會從 Java 的 BIO 開始,一步一步深入學習,引出 JDK1.4 之後出現的 NIO 技術,對比 NIO 與 BIO 的區別,然後對 NIO

原创 我工作三年了,該懂併發了!

本文的組織形式如下,主要會介紹到同步容器類,操作系統的併發工具,Java 開發工具包(只是簡單介紹一下,後面會有源碼分析)。同步工具類有哪些。 下面我們就來介紹一下 Java 併發中都涉及哪些模塊,這些併發模塊都是 Java 併發類庫所提

原创 代理,一文入魂

說在前面:今天我們來聊一聊 Java 中的代理,先來聊聊故事背景: 小明想購買法國某個牌子的香水送給女朋友,但是在國內沒有貨源售賣,親自去法國又大費周章了,而小紅現在正在法國玩耍,她和小明是好朋友,可以幫小明買到這個牌子的香水,於是小明就

原创 學會反射後,我被錄取了(乾貨)

反射是一個非常重要的知識點,在學習Spring 框架時,Bean的初始化用到了反射,在破壞單例模式時也用到了反射,在獲取標註的註解時也會用到反射······ 當然了,反射在日常開發中,我們沒碰到過多少,至少我沒怎麼用過。但面試是造火箭現場,

原创 完了,這個硬件成精了,它竟然繞過了 CPU...

我們之前瞭解過了 Linux 的進程和線程、Linux 內存管理,那麼下面我們就來認識一下 Linux 中的 I/O 管理。 Linux 系統和其他 UNIX 系統一樣,IO 管理比較直接和簡潔。所有 IO 設備都被當作文件,通過在系統內部

原创 一文詳解 Java 併發模型

本篇文章我們來探討一下併發設計模型。 可以使用不同的併發模型來實現併發系統,併發模型說的是系統中的線程如何協作完成併發任務。不同的併發模型以不同的方式拆分任務,線程可以以不同的方式進行通信和協作。 併發模型和分佈式系統很相似 併發模型其實和

原创 你可以 CRUD,但你不是 CRUD 程序員!

什麼是務實 務實程序員他們總是在面臨問題時,透過問題看到本質,從具體的場景出發,從大局着想,瞭解整個問題的來龍去脈,他們會對自己的行爲負責,在項目面臨問題時,他們不會撒手不管或者任由風險一步步擴大直至無法維護。 大多數人都不是務實的程序員

原创 操作系統和併發的愛恨糾葛

我一直沒有急於寫併發的原因是我參不透操作系統,如今,我已經把操作系統刷了一遍,這次試着寫一些併發,看看能不能寫清楚,卑微小編在線求鼓勵...... 我打算採取操作系統和併發同時結合講起來的方式。 併發歷史 在計算機最早期的時候,沒有操作系統

原创 老哥,您看我這篇Java集合,還有機會評優嗎?

集合在我們日常開發使用的次數數不勝數,ArrayList/LinkedList/HashMap/HashSet······信手拈來,擡手就拿來用,在 IDE 上龍飛鳳舞,但是作爲一名合格的優雅的程序猿,僅僅瞭解怎麼使用API是遠遠不夠的,如

原创 Java異步之《我call(),Future在哪裏》

我們大家都知道,在 Java 中創建線程主要有三種方式: 繼承 Thread 類; 實現 Runnable 接口; 實現 Callable 接口。 而後兩者的區別在於 Callable 接口中的 call() 方法可以異步地返回一個計算

原创 計算機極簡發展史

計算機自從 20 世紀 40 年代誕生以來,一直以史無前例的進步向前發展,如果說農業革命是第一次革命、工業革命是第二次革命的話,那麼第三次革命就是 信息革命。 計算機技術的進步幾乎影響着社會的方方面面,硬件的進步使得程序員可以編寫出各種各樣

原创 47 張圖帶你 MySQL 進階!!!

我們在 MySQL 入門篇主要介紹了基本的 SQL 命令、數據類型和函數,在局部以上知識後,你就可以進行 MySQL 的開發工作了,但是如果要成爲一個合格的開發人員,你還要具備一些更高級的技能,下面我們就來探討一下 MySQL 都需要哪些高

原创 我向面試官講解了單例模式,他對我豎起了大拇指

單例模式相信大家都有所聽聞,甚至也寫過不少了,在面試中也是考得最多的其中一個設計模式,面試官常常會要求寫出兩種類型的單例模式並且解釋其原理,廢話不多說,我們開始學習如何很好地回答這一道面試題吧。 什麼是單例模式 面試官問什麼是單例模式時,千

原创 爲什麼編譯原理被稱爲龍書?

碎碎念 爲什麼這本書叫做 龍書(Dragon book)? 這本書很有意思,它的書名是 《Compilers: Principles, Techniques, and Tools》,也就是編譯器的原則、技術和工具。但它卻畫出了一個恐龍和騎