原创 面試中常用排序算法實現(Java)

     當我們進行數據處理的時候,往往需要對數據進行查找操作,一個有序的數據集往往能夠在高效的查找算法下快速得到結果。所以排序的效率就會顯的十分重要,本篇我們將着重的介紹幾個常見的排序算法,涉及如下內容: 排序相關的概念 插入

原创 初識Hibernate之環境搭建

     相信所有做後端的程序員同行們,沒有不知道Hibernate大名的。這是一個經典的輕量級Java EE持久層的解決方案,它使得我們程序員能以面向對象的思維操作傳統的關係型數據庫,這也是其存在的最大意義所在。當然也有很多人說

原创 揭祕 HashMap 實現原理(Java 8)

HashMap 作爲一種容器類型,無論你是否瞭解過其內部的實現原理,它的大名已經頻頻出現在各種互聯網面試中了。從基本的使用角度來說,它很簡單,但從其內部的實現來看(尤其是 Java 8 的改進以來),它又並非想象中那麼容易。如果你一定要問

原创 Maven 整合 SSH 框架

     前面的一系列文章中,我們總結了三大框架:Struts2,Hibernate,Spring 的基本知識。本篇就姑且嘗試着使用 Maven 這個項目構建工具來將這三個框架整合一起。說到這裏,如果有對 Maven 還不熟悉的同學,此處

原创 虛擬機類加載機制

虛擬機把字節碼文件從磁盤加載進內存的這個過程,我們可以粗糙的稱之爲「類加載」,因爲「類加載」不僅僅是讀取一段字節碼文件那麼簡單,虛擬機還要進行必要的「驗證」、「初始化」等操作,下文將一一敘述。 類加載的基本流程 一個類從被加載進內存,到卸

原创 訪問權限控制

訪問權限控制又稱「隱藏具體實現」,也就是說,我們可以通過它來決定某個類或者類中的成員在程序中的可見範圍。例如,被修飾爲 public 的元素在全局範圍可見,而被修飾爲 private 的元素只能可見於類的內部。 Java 的訪問權限控制提

原创 數值信息的機器級存儲

計算機中使用八位的塊,或者說是「字節」,作爲最小的尋址單元。你可以將整個存儲器視作一個超大的「字節數組」,每個字節都有一個唯一的數字編號,這個編號就是所謂的地址,通過這個地址,我們可以唯一的確定一塊數據。但是我們代碼中定義的各種數值又是如

原创 垃圾收集機制與內存分配策略

Java 語言與其他編程語言有一個非常突出的特點,自動化內存管理機制。而這種機制離不開高效率的垃圾收集器(Garbage Collection)與合理的內存分配策略,這也是本篇文章將要描述的兩個核心點。 引一句周志明老師對 Java 中的

原创 Spring框架學習之高級依賴關係配置(一)

     上篇文章我們對Spring做了初步的學習,瞭解了基本的依賴注入思想、學會簡單的配置bean、能夠使用Spring容器管理我們的bean實例等。但這還只是相對較淺顯的內容,本篇將介紹bean的相關更高級的配置,主要涉及內容如下:

原创 爲併發而生的 ConcurrentHashMap(Java 8)

HashMap 是我們日常最常見的一種容器,它以鍵值對的形式完成對數據的存儲,但衆所周知,它在高併發的情境下是不安全的。尤其是在 jdk 1.8 之前,rehash 的過程中採用頭插法轉移結點,高併發下,多個線程同時操作一條鏈表將直接導致

原创 通知

博主的 CSDN 博客不再更新,想要閱讀最新文章,請移步博客園或者微信公衆號。 博客園地址:http://www.cnblogs.com/yangming1996/ 微信公衆號:撲在代碼上的高爾基

原创 Spring框架學習之高級依賴關係配置(二)

     緊接着上篇內容,本篇文章將主要介紹XML Schema的簡化配置和使用SpEL表達式語言來優化我們的配置文件。 一、基於XML Schema的簡化配置方式 從Spring2.0以來,Spring支持使用XML Schema來簡

原创 Spring框架學習之註解配置與AOP思想

     上篇我們介紹了Spring中有關高級依賴關係配置的內容,也可以調用任意方法的返回值作爲屬性注入的值,它解決了Spring配置文件的動態性不足的缺點。而本篇,我們將介紹Spring的又一大核心思想,AOP,也就是面向切面編程。這是

原创 基於跳躍表的 ConcurrentSkipListMap 內部實現(Java 8)

我們知道 HashMap 是一種鍵值對形式的數據存儲容器,但是它有一個缺點是,元素內部無序。由於它內部根據鍵的 hash 值取模表容量來得到元素的存儲位置,所以整體上說 HashMap 是無序的一種容器。當然,jdk 中也爲我們提供了基於

原创 關於類的對象創建與初始化

今天,我們就來解決一個問題,一個類實例究竟要經過多少個步驟才能被創建出來,也就是下面這行代碼的背後,JVM 做了哪些事情? Object obj = new Object(); 當虛擬機接受到一條 new 指令時,首先會拿指令後的參數