原创 一個問題引發的對類成員指針的思考

原題轉自《程序員面試寶典》 #include <stdio.h>   class A { public:     A() {m_a = 1; m_b = 2;}     ~A() {}     void fun() {printf("

原创 各種坑爹小問題,大麻煩(持續更新)

2013.10.28 int main() {         int i = 1;         int b = i<<1+1;         int c = i<<1 + 1;//注意這個1+1之間已經有了空格         c

原创 malloc 和 new的區別

第一: malloc 只申請空間不調用構造函數,new先開闢空間,然後調用構造函數 第二: malloc 是函數,new是關鍵字 第三:malloc返回值是一個無符號的指針void*,而new可以根據指定的類型返回相應的類型 第四:mal

原创 歸併算法的遞歸寫法

https://code.csdn.net/snippets/66881 歸併算法:介紹略,以上是代碼部分

原创 談一談無狀態和無副作用

概述 在開發系統的時候,我們經常會聽到無狀態,無副作用,以及純函數等概念。這些概念經常被人忽視,我結合自己的工作經驗,爲大家來談一下我的理解。 無狀態 對於無狀態這個詞,我們聽到最多的是無狀態函數 無狀態函數 這個概念是我們最常聽到的

原创 session 的演化過程

概述 session 是個大家很熟悉,但是又不太瞭解的朋友,網上有很多介紹 session 的文章,但是大多是 session 技術本身,但是爲什麼有 session 以及那些技術的選擇,沒有太多交代,本文是本人蒐集資料,加上一點個人

原创 Java 異常使用

背景 寫 Java 的人都知道, Java 異常是個很煩人的東西,因爲正確的處理異常並不是一件簡單的事情,一方面異常總是出人意料,另一方面,異常並不總是可見,且隱藏很深。 Java 異常的重要特性 Java 異常一個最重要的特性在於,

原创 ThreadPoolExecutor 源碼剖析之 - keepAliveTime 的實現原理

背景 Java 中的 ThreadPoolExecutor 是 JUC 包中十分重要的成員,主要提供了一個線程池管理的工作。關於它的用法,很多博客都有提及,包括 corePoolSize, 阻塞隊列 blockQueue, 最大池大小

原创 ProxyFacotroy源碼解析

ProxyFacotroy源碼解析 簡述 ProxyFacotory是spring中生成動態代理的工廠方法,其中包含很豐富的方法,本文主要在梳理ProxyFactory的繼承關係,並簡述ProxyFactory的相關用法。(注意本文是基於

原创 java內存佈局與GC

java數據區域 java虛擬機會在執行java的過程中,將其所管理的區域劃分爲幾個部分用於管理,每個區域都有自己獨立的生命週期。這些區域包括 Program Counter Register (程序計數器區) Java Virtual

原创 idea 搭建spring mvc

背景 用idea搭建spring mvc環境,網上有很多教程,但是普遍都不是很詳細,容易有遺漏。也沒有太多解釋原因。我自己總結了一個。並會附上一定的解釋。 具體步驟 新建項目 我使用的版本是IntelliJ 15.0.3 打開Int

原创 JDK 學習日記 - AbstractQueuedSynchronizer

背景 AbstractQueuedSynchronizer 簡稱 AQS 是 JDK 中 JUC 包的核心方法。包括 ReentrantLock , Semaphore , CountDownLoatch 甚至是 ThreadPoolEx

原创 Redux 學習紀要

背景 Redux 是 React 全家桶的重要一員,理解 Redux 可以更好的幫助我們開發前端項目。本文只談論概念的解讀,不講解具體的用法。 Redux 和 React-Redux 首先聲明 Redux 和 React-Redux 的區

原创 從 Java AQS 看 JUC

引文 Java JDK 中的 JUC 包,提供了非常豐富的併發工具類,包括 ReentrantLock , Semaphore , CountDownLoatch 甚至是 ThreadPoolExectur 中的 Worker 其實都是基

原创 爲什麼編程語言中需要堆和棧

概述 在我們學習 C/C++ 和 Java 等編程語言的時候經常要學習一個概念就是堆和棧,對於大部分經驗豐富的工程師來說,堆和棧是再熟悉不過的東西了,堆和棧都是存儲程序運行時變量的地方。但這個時候問題來了,既然兩個都是存儲臨時變量的地方,