原创 java序列化

1. 什麼是Java對象序列化 Java平臺允許我們在內存中創建可複用的Java對象,但一般情況下,只有當JVM處於運行時,這些對象纔可能存在,即,這些對象的生命週期不會比JVM的生命週期更長。但在現實應用中,就可能要求在JVM停

原创 隻言片語

記得早先年少時,大家誠誠懇懇,說一句是一句。清早上火車站,長街黑暗無行人,賣豆漿的小店冒着熱氣。從前的日色變得慢,車,馬,郵件都慢,一生只夠愛一個人。從前的鎖也好看,鑰匙精美有樣子。你鎖了,人家就懂了。——木心《從前慢》 素質好

原创 學習計劃

常聽人說,工作的前5年是最爲重要的階段,因爲這一時期的狀態基本決定了你以後的人生道路。處在大三下學期的我,即將開啓新的人生旅程——工作。覺得十分有必要對未來幾年做一次整體規劃,讓我的前5年過得有價值,有意義。 現在尚未進入職場,對

原创 JAVA8 十大新特性詳解

一、接口的默認方法 Java 8允許我們給接口添加一個非抽象的方法實現,只需要使用 default關鍵字即可,這個特徵又叫做擴展方法,示例如下: interface Formula { double calculate(i

原创 Java 理論與實踐: 正確使用 Volatile 變量

volatile 變量使用指南 Java™ 語言包含兩種內在的同步機制:同步塊(或方法)和 volatile 變量。這兩種機制的提出都是爲了實現代碼線程的安全性。其中 Volatile 變量的同步性較差(但有時它更簡單並且開銷更低

原创 Effective Java 閱讀筆記

溫馨提示:該文章篇幅較長,選擇目錄中的具體項跳轉到目標章節較方便~ 引言 Java語言支持四種類型:接口、類、數組、基本類型 接口、類、數組被稱爲引用類型,類實例和數組是對象,而基本類型的值則不是對象。 方法的簽名由它的名稱

原创 風雨20年:我所積累的20條編程經驗

從11歲時,我就一直在編程,並且一直都很喜歡技術和編程。這些年來,我積累了一些艱難又容易的經驗。作爲一名程序員,你或許還沒這些經驗,但我會把它們獻給那些想從中學到更多的朋友。 我會持續更新這些經驗,我可能還會有更多的感想,但就我這

原创 Java Concurrency In Practice 閱讀筆記(第一、二部分)

第一章:簡介 1.1 併發簡史 促使進程出現的因素:資源利用率、公平性以及便利性等。這些因素同樣也促使着線程的出現。線程允許同一個進程中同時存在多個程序控制流。線程會共享進程範圍內的資源,例如內存句柄和文件句柄,但每個線程都有自己

原创 Java Collections Framework

集合 OR 容器 通常我們會用數組去保存一些基本數據類型,數組是編譯器支持的類型,但是數組的一個明顯缺點就是具有固定尺寸,而在一般情況下,只有在程序運行的時候,我們才能知道要保存的具體數目。Java類庫提供了一套相當完善的容器框架

原创 ConcurrentHashMap之實現細節

ConcurrentHashMap是Java 5中支持高併發、高吞吐量的線程安全HashMap實現。其實現之精巧,令人歎服,與大家共享之。 實現原理 鎖分離 (Lock Stripping) ConcurrentHashMap允許

原创 雙重檢查鎖定

單例創建模式是一個通用的編程習語。和多線程一起使用時,必需使用某種類型的同步。在努力創建更有效的代碼時,Java 程序員們創建了雙重檢查鎖定習語,將其和單例創建模式一起使用,從而限制同步代碼量。然而,由於一些不太常見的 Java

原创 Java二進制兼容性原理

一、概述 現在的軟件越來越依賴於不同廠商、作者開發的共享組件,組件管理也變得越來越重要。在這方面,一個極其重要的問題是類的不同版本的二進制兼容性,即一個類改變時,新版的類是否可以直接替換原來的類,卻不至於損壞其他由不同廠商、作者開

原创 SSH

一、對Spring的理解。 Spring實現了工廠模式的工廠類,這個類名爲BeanFactory(實際上是一個接口),在程序中通常使用BeanFactory的子類ApplicationContext。Spring相當於一個大的工

原创 成爲一名優秀程序員所需要知道的那些事

導讀:編程雖是複雜活,但成就優秀程序員的很多因素和我們在學校中最早學到的相差無幾。 懂得分享。儘可能使用開源,並且當你有能力的時候,要對其有所貢獻。聚全社會之智慧,勝過某些“大”公司之短視。 公平競爭。嘗試其他技術、框架、方法和

原创 位圖bitmap算法

(待解) 簡單地說就是用數組存放,若有數據就標誌爲1或true,若不存在標誌爲0或false。比如1,2,2,5,這裏最大值爲5,0至5中不存0,3,4,所以: Array[0]=0,Array[1]=1,Array[2]=2,A