原创 設計模式第一章——單例模式

首先,在談設計模式之前,要知道一下設計模式的七大原則。 七大設計原則 【開閉原則】是總綱,它告訴我們要【對擴展開放,對修改關閉】; 【里氏替換原則】告訴我們【不要破壞繼承體系】; 【依賴倒置原則】告訴我們要【面向接口編程】; 【

原创 HashMap,HashTable以及ConcurrentHashMap淺談

題外話: HashMap等爲什麼用16作爲初始容量?經驗值。 Hashmap中的鏈表大小超過八個時會自動轉化爲紅黑樹,當刪除小於六時重新變爲鏈表,爲啥呢? 因爲根據泊松分佈,在負載因子爲0.75的情況下,單個hash槽內元素個數爲8的概率

原创 JAVA 基礎: Exception和Error

首先,Exception和Error都繼承自Throwable(catch或者throw的唯一對象)。 Exception是程序正常運行時可以預料的情況,應該被補貨並進行相關的處理。 Error 則是不正常的情況,一般會導致程序異常和不可

原创 JAVA 基礎

目錄: JAVA 異常: Exception與Error

原创 Effective Java 第二十四章 優先考慮靜態成員類

       首先要知道什麼是嵌套類,嵌套類就是在另一個類中定義的類。作爲嵌套類,它有別於頂級類(平時我們最常用的類),它在這個類的外部可以說是用不到或者說沒用的,如果有用那麼就應該作爲單獨的頂級類了。 有四種嵌套類:靜態成員類,非靜態成

原创 ThreadLocal 從用例到源碼

1. 理解 首先簡單說下一我對ThreadLocal的理解: 最開始接觸ThreadLocal是用在項目中有一個變量需要在不同的service中傳遞,而這個變量只需在當前線程中使用即可。這其實也就是ThreadLocal的一個基本性質或者

原创 Effectiv Java 第四章-第五章 使用私有構造方法執行非實例化、使用依賴注入取代硬連接資源

這四章很短,中心思想就是告訴我們對於一類類似工具類的,你不想被基礎的,就把構造方法弄成私有的,然後額外提供一個接口去獲取這個類,有點像單例。   第五章也很短,中心思想就是提高代碼複用,通過依賴注入提高靈活性和可測性,給構造函數或者所需

原创 Effective Java 第六章 避免創建不必要的對象

重點:提倡對象重用。 例如:String s = new String("XX") 應該改爲 String s = "XX" 工廠方法比直接調用構造方法好,因爲工廠方法不會每次都創建一個新對象。例如Boolean.valueOf(Stri

原创 Effective Java 第七章 消除過期的對象引用

中心思想:消除過期引用,防止內容泄漏 重點有2個: 1. 一般來說,當一個類自己管理內存時,程序員應該警惕內存泄漏問題。 每當一個元素被釋放時,元素中包含的任何對象引用都應該被清除。 2. 另一個常見的內存泄漏來源是緩存(意思就是讓我們警

原创 程序員必知之浮點數運算原理詳解

  導讀:浮點數運算是一個非常有技術含量的話題,不太容易掌握。許多程序員都不清楚使用==操作符比較float/double類型的話到底出現什麼問題。 許多人使用float/double進行貨幣計算時經常會犯錯。這篇文章是這一系列中的精華,

原创 動態代理

設計模式中,代理模式有兩種形式的存在:1.靜態代理。2.動態代理。 代理模式的作用是什麼?可以是控制對對象的訪問,也可是實現事務的封裝,可以說就是對代理類中的方法進行增加或者額外的操作,擴展功能。 靜態代理顧名思義就是靜態的代理,與被代理

原创 第三章 使用私有構造方法或枚類實現 Singleton 屬性

這一章主要講了創建單例的三種方法以及一些相關的注意點。   方法一: 兩個點 1.保持私有構造方法 2. 導出公共靜態成員以及提供唯一實例的訪問。 public class SingletonDemo implements Serial

原创 IDEA 最新激活碼 到2020年

N757JE0KCT-eyJsaWNlbnNlSWQiOiJONzU3SkUwS0NUIiwibGljZW5zZWVOYW1lIjoid3UgYW5qdW4iLCJhc3NpZ25lZU5hbWUiOiIiLCJhc3NpZ25lZU

原创 數據庫事務雜記

1,mysql的默認事務隔離級別是 【REPEATABLE-READ】,可重複讀,也就是一個事務中讀到的數據的值是一樣的。 1.查看當前會話隔離級別 select @@tx_isolation; 2.查看系統當前隔離級別 select

原创 設計模式 整理

    最近學習了HeadFirst 設計模式,希望通過一篇文章來整理一下自己的所學,加深一下理解。 1 策略模式     策略模式:定義了算法族,分別分裝不同的行爲,讓這些行爲或者說實現之間相互替換,此模式讓算法的變化獨立於使用算法