原创 設計模式之結構型學習

結構型 外觀模式 定義:又叫門面模式,提供一個統一的接口,用來訪問子系統中的一羣接口,外觀模式定義了一個高層接口,讓子系統更容易使用 適用場景: 子系統越來越複雜,增加外觀模式提供簡單調用接口 構建多層系統結構,利用外觀對象作爲

原创 fastDFS在阿里雲上的Storage錯誤

記一次fastDFS在部署在阿里雲上運到的錯誤 用postman測試報錯信息:無法獲取服務端連接資源:can’t create connection to/172.17.15.7:23000 原因: storage.conf 要配

原创 史上最好理解,最詳細的Java的lambda表達式教程

原文鏈接:https://blog.csdn.net/ioriogami/article/details/12782141,這一篇講解的原理多一些,介紹了函數式接口等概念,更好的理解Lambda 原文鏈接:https://blog.csd

原创 Java哪些情況下必須對類進行“初始化”

Java哪些情況下必須對類進行“初始化” 遇到new、getstatic、putstatic或invokestatic這四條字節碼指令時,如果類沒有進行初始化,則需要先觸發其初始化。生成這四條指令的常見場景是: 使用new關鍵字實

原创 爲什麼jdk1.8要把方法區從JVM裏移到直接內存?

爲什麼jdk1.8要把方法區從JVM裏移到直接內存? 原因一:因爲直接內存,JVM將會在IO操作上具有更高的性能,因爲它直接作用於本地系統的IO操作。而非直接內存,也就是堆內存中的數據,如果要作IO操作,會先複製到直接內存,再利用本地

原创 設計模式之創建型彙總

設計模式 創建型 工廠方法模式 定義:定義一個創建對象的接口,但讓實現這個接口的類來決定實例化哪個類,工廠方法讓類的實例化推遲到子類中進行 使用場景: 創建對象需要大量重複的代碼 客戶端(應用層)不依賴於產品類實例如何被創建、實現

原创 簡單卻又複雜的單例模式

單例模式 定義:保證一個類僅有一個實例,並提供一個全局的訪問點 使用場景: 想確保任何情況下都絕對只有一個實例 當你想控制實例數目,節省系統資源的時候 優點: 在內存裏只有一個實例,減少了內存的開銷,尤其是頻繁的創建和銷燬實例(

原创 《深入理解Java虛擬機》讀書筆記(第三章)

垃圾收集器與內存分配策略(第三章) 前言,衆所周知,Java是由c++進化而來,c++在內存需自己申請,自己釋放,於是就有了Java的動態內存分配。書的第三章開篇,有這樣一句話描述的很妙——Java與C++之間有一堵由內存動態分配和垃

原创 《Jave併發編程的藝術》學習筆記(1-2章)

Jave併發的藝術 併發編程的挑戰 上下文切換 CPU通過時間片分配算法來循環執行任務,當前時間片執行完之後會切換到下一個任務。但是,切換會保存上一個任務的狀態,一遍下次切換回這個任務時,可以再次加載這個狀態。所以任務從保存到再加載

原创 常見樹的總結

樹 BST Binary Sort Tree:二叉查找樹,或二叉搜索樹,或二叉排序樹 性質: 若左子樹不空,則左子樹上所有結點的值均小於它的根結點的值; 若右子樹不空,則右子樹上所有結點的值均大於或等於它的根結點的值;

原创 Java的內存泄露

Java的內存泄露 1、靜態集合類引起內存泄漏 像HashMap、Vector等的使用最容易出現內存泄露,這些靜態變量的生命週期和應用程序一致,他們所引用的所有的對象Object也不能被釋放,因爲他們也將一直被Vector等引用着

原创 樹的總結

樹 BST Binary Sort Tree:二叉查找樹,或二叉搜索樹,或二叉排序樹 性質: 若左子樹不空,則左子樹上所有結點的值均小於它的根結點的值; 若右子樹不空,則右子樹上所有結點的值均大於或等於它的根結點的值;

原创 Java多線程與併發

JAVA多線程與併發 進程與線程的區別 進程是資源分配的最小單位,線程是CPU調度的最小單位 所有與進程相關的資源,都被記錄在PCB(進程控制塊)中 進程是搶佔處理機的調度單位;線程屬於某個進程,共享其資源 線程只由堆棧寄存器、程

原创 Java集合總結

java集合 collection public interface Collection<E> extends Iterable<E> List public interface List<E> extends Collectio

原创 KMP

具體學習: 請參照,講解的非常詳細:https://blog.csdn.net/v_july_v/article/details/7041827 KMP解決的問題:字符串中查找。如:S(文本串)=‘aaab’,P(模式串)=‘aab’,在