原创 Java中的fail-fast機制

什麼是fail-fast機制 fail-fast是一種錯誤檢測機制,一般意義上的fail-fast是當我們的代碼可能出現異常情況時,會立即拋出異常並中斷執行,而不是繼續執行。相反就是fail-safe機制。 在java中的fail

原创 HashMap源碼解析(JDK8)

整體介紹 HashMap實現Map接口,用於存儲key-value結構,能夠根據其key快速查找其value。底層實現爲採用一個table數組的hash表,數組中的每一項爲一個鏈表結構。對於每個key,先計算其hash值,然後根據

原创 Java對象創建的過程

1. 執行類加載過程 虛擬機遇到一條new指令時,首先檢查該對象對應的類是否已被加載、解析和初始化過,如果沒有,則先執行相應的類加載過程。 2. 爲對象分配內存 類加載檢查通過後,虛擬機就會爲新生對象分配內存(對象所需的內存大小在

原创 JVM的內存佈局

總體劃分 Java種由JVM來管理內存的分配和回收,JVM將內存區域總體可以分爲堆區和非堆區,非堆區又分爲JVM棧,方法區,本地方法棧,程序計數器等。其中堆區和方法區爲所有線程共享的數據區,其他爲各個線程私有的數據區。 Java

原创 劍指offer--用兩個棧實現隊列

題目描述 用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素爲int類型。 解法 import java.util.Stack; public class Solution { Stack<Integ

原创 劍指offer--旋轉數組的最小數字

題目描述 把一個數組最開始的若干個元素搬到數組的末尾,我們稱之爲數組的旋轉。 輸入一個非減排序的數組的一個旋轉,輸出旋轉數組的最小元素。 例如數組{3,4,5,1,2}爲{1,2,3,4,5}的一個旋轉,該數組的最小值爲1。 NO

原创 Java中的接口與抽象類

抽象類和接口都是用來體現OOP中的抽象概念,都可以用來實現多態。 1. 抽象類 抽象類表達的是“is-a”的關係,是對多個具體類公共部分的抽象,定義了子類是什麼(如Bird、Duck本質上都是Animal,即可以將其抽象爲Anim

原创 遞歸中更新值的幾種方式

在做遞歸相關的題目時,經常需要在遞歸的過程中對返回結果進行更新或維護某個值作爲判斷條件,主要可以通過將該值作爲成員變量、作爲參數傳遞、在返回值中更新等三種方式,採用的方式不同,最終的遞歸程序就會不同。 下面以LeetCode的40

原创 mybatis批量insert報錯原因分析

最近在項目中需要使用mybatis的批量插入功能,但是不知道爲什麼出現奇怪的錯誤,調試了很久,最終解決。 我的最初的mybatis批量插入語句如下: <insert id="insertDfldBatch" useGenerated

原创 二叉樹非遞歸遍歷的通用解法

最近在跟慕課網上《玩轉算法面試》這門課,老師講的很不錯,其中有一節提到了用棧來模擬二叉樹的前序,中序,後序遍歷。 二叉樹的遍歷的遞歸解法很簡單,但有時面試或做題時往往會要求寫出非遞歸的形式,一般教科書上實現的前序,中序和後序遍歷的非遞

原创 Java中Redis存儲複雜json格式數據並返回給前端

問題背景 在Java Web項目中,經常需要前端請求數據,後臺從數據庫中查詢並計算最後返回json格式數據給前端。而每次請求都需要計算一次可能比較浪費時間,這時我們可以將計算好的結果保存在redis中,下次請求時先判斷redis中是否

原创 hexo博客綁定域名以及增加gitment評論

文章目錄購買域名將博客同時部署至Github和Coding創建coding倉庫修改_config.yml文件域名解析添加gitment評論註冊OAuth Application修改主題下的_config.yml配置初始化評論總結與感想

原创 《Java編程的邏輯》筆記8: 剖析ArrayList

Part3 泛型與容器 第9章 列表和隊列 9.1 剖析ArrayList 基本原理 ArrayList內部是基於一個動態擴容的數組實現的,其實例變量聲明如下: private static final int DEFAULT_

原创 《Java編程的邏輯》筆記7: 泛型

Part3 泛型與容器 第8章 泛型 8.1 基本概念和原理 1.什麼是泛型 泛型將接口的概念進一步延伸,"泛型"字面意思就是廣泛的類型,類、接口和方法代碼可以應用於非常廣泛的類型,代碼與它們能夠操作的數據類型不再綁定在一起,

原创 《Java編程的邏輯》筆記6: 常用基礎類

Part2 面向對象 第7章 常用基礎類 7.1 包裝類 包裝類有什麼用呢?Java中很多代碼(比如後續文章介紹的集合類)只能操作對象,爲了能操作基本類型,需要使用其對應的包裝類,另外,包裝類提供了很多有用的方法,可以方便對數據的