原创 操作系統的設備管理

一、廣義的I/O設備 凡是對CPU進行輸入/輸出的設備都是I/O設備 1.【按使用特性分類】存儲設備(磁盤、內存),交互I/O設備(鍵盤、顯示器) 2.【按信息交換的單位分類】塊設備(磁盤、SD卡),字符設備(打印機、Shell終

原创 優先級高者先出的隊列——優先隊列(Priority Queue)

設計背景 普通隊列是先入隊的元素先出隊,它的權重衡量是入隊的先後,我們希望設計一種按照特定衡量標準進行優先級排序的隊列,這種隊列就叫做優先隊列(Priority Queue) 結構分析 【底層實現】Heap等 【核心方法】同隊列

原创 JS面向對象的重要知識點

一、閉包 閉包是連接函數外與函數內的橋樑,它是通過在函數內部再定義子函數來實現的,用戶可以在函數外通過閉包訪問函數的局部變量。 // 外層函數 function outside() { // 外層函數的局部變量 var a =

原创 自動管理容量的線性表——動態數組(ArrayList)

設計背景 傳統的數組在聲明時必須確定大小,一旦創建便不能再改變容量。如果需要增大/縮小容量的話,則需要手動創建一個新數組,然後再將舊數組的內容拷貝至新數組,從而完成擴容/縮容。動態數組(ArrayList)的數據結構將這一系列操作

原创 CSS多列布局的解決方案

一、兩列布局 HTML模板如下: <div class="left"></div> <div class="right"></div> 1. 單float + margin 組合 .left { width: 300px;

原创 Spring AOP以及AspectJ

一、AOP的概念 AOP(Aspect Oriented Programming)即面向切面編程,它是指將業務流程中通用的功能單獨抽取出來,形成“切面”,在合適的時機將這些切面切入到業務板塊中。 AOP是對OOP的補充,它大大降低

原创 空間換時間的經典結構——哈希表(Hash Table)

設計背景 在數組中,我們可以根據索引快速取出某個位置元素的值(時間複雜度爲O(1)級別),但是數組中每一個元素的索引是依據添加順序決定的,該索引與元素本身也沒有任何關聯,當我們想再次查找某個元素的時候,只能將數組遍歷一次才能找到我

原创 操作系統的作業管理

一、進程調度 調度即決策哪個進程可以獲得CPU的使用權 1.調度機制 ①【就緒隊列的排隊機制】將就緒進程排成隊列 ②【選擇運行進程的委派機制】按一定的策略選擇就緒進程 ③【新老進程的上下文切換機制】保存前進程的上下文信息,裝入被委

原创 後進先出的桶狀結構——棧(Stack)

設計背景 計算機中很多場景會遇到“後存入的元素先被調用”(LIFO)的情況,例如編輯器的撤銷操作、系統的遞歸調用操作。數組(Array)作爲一種線性表,它可以在任意位置插入元素和取出元素,如果將數組限制爲只能在尾部插入和取出元素,

原创 計算機的指令系統、控制器和運算器

一、指令系統 1.指令形式 【機器指令】由操作碼和地址碼組成 【操作碼】指明指令所要完成的操作 【地址碼】給出操作數或者操作數的地址,分三、二、一地址指令 【零地址指令】無地址碼,用於空操作 2.操作形式 1.【數據傳輸】寄存器之

原创 JS函數的深入理解

一、JS函數的本質 JS函數本質就是一種對象!!! 編寫者完全可以用操作對象的方式去操作函數 var obj = { }; function fn() { } /** * 分別向對象和函數添加屬性值,以驗證函數其實就是一

原创 Java高級基礎——反射(Reflect)

一、Class類 在Java中,所有的類都是java.lang.Class的實例對象,而java.lang.Class只能由JVM進行實例。當每一個類被裝入JVM時,它將自動創建與之相關聯的Class類對象。 下列代碼演示了三種獲

原创 左小右大的樹形結構——二分搜索樹(Binary Search Tree)

設計背景 在鏈表(LinkedList)中,每一個節點都存儲着一個元素,還有一個指向下一個節點的指針。與這種特性類似,我們把“每一個節點都擁有兩個指向不同節點的指針”的結構稱之爲二叉樹(Binary Tree);從形狀上來看,這兩

原创 最早的自平衡BST——AVL樹(AVL Tree)

設計背景 二分搜索樹(Binary Search Tree)擁有相對高效的查找能力,但是依然存在很大的缺陷。 當添加的所有元素都比現有的元素大或者小時,二分搜索樹將會退化成一個鏈表(LinkedList)。 即使只有部分元素髮生

原创 Java Web編碼過濾器的實現

可以使用Filter過濾器將所有的請求與響應設置爲相應的編碼。 Filter類: public class EncodingFilter implements Filter { private String encodi