原创 LeetCode | Pascal's Triangle

Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Return [ [1],

原创 LeetCode | Unique Binary Search Trees II

Given n, generate all structurally unique BST's (binary search trees) that store values 1...n. For example, Given n 

原创 LeetCode | House Robber

You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed

原创 Java 8 中的ConcurrentHashMap源碼分析

在HashMap的分析中,介紹了hashmap不是線程安全的,其在併發環境使用fail-fast策略來拋出由併發錯誤導致的異常。 先來看下Hashtable這個線程安全的容器,其雖然是線程安全的,但是其實現併發安全的手段比較粗暴。從下面的

原创 LeetCode | Minimum Window Substring

Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexit

原创 Git的操作與理解

工作樹:其存儲着倉庫內所有被管理文件 (untracked files是不記錄在工作樹中的) 的當前狀態,隨各文件的的改動而實時變化 HEAD : 當前分支中最新一次提交的指針 暫存區:提交之前的臨時區域 (工作區 -add-> 暫存區

原创 Scalable IO in Java

阻塞IO的server結構圖: 阻塞IO的server版本代碼: class Server implements Runnable { public void run() { try {

原创 阿里校招內推總結

內推的螞蟻金服Java研發崗,從7月15日第一面到7月31的hr面,共計4輪技術面,一輪hr。於8月15日收到錄用意向。 7.15,20:45,一面:大概聊了24分鐘 自我介紹 問數據庫3NF與BCNF的區別 問GC機制,如何使持久代溢

原创 Log4J

在程序的開發過程中,可以使用debug打斷點來調試程序,觀察程序的運行情況。那代碼上線之後,怎麼看程序的運行情況呢?打log。 1、 程序log的幾處應用: 定位問題觀察程序的運行狀態統計 log的三大組件: Logger:輸入日誌的

原创 MySQL的索引

每一個索引就對應着一棵樹(1) 主鍵:MySQL會以主鍵的值構造一棵樹,其葉子節點存放着該主鍵對應的整行數據。因此一張表在數據結構上就等價於一顆以主鍵排序好的樹 (2)輔助索引:自己建的索引一般都叫輔助索引,輔助索引樹的葉子節點存放着兩樣

原创 Executor框架的簡要分析

Executor框架的最大優點是把任務的提交和執行解耦,ExecutorService和其各種功能強大的實現類提供了非常簡便方式來提交任務並獲取任務執行結果,封裝了任務執行的全部過程。而封裝最大的效果是使得真正執行任務的線程們變得不爲人知

原创 Java 8 中HashMap源碼分析

HashMap的系統介紹: HashMap實現了Map接口(注意:map類容器都沒有實現Collection接口,只有set,list這類的容器才實現Collection),其對一般的基本操作(put,get,contains)能夠保證常

原创 LeetCode | Find Minimum in Rotated Sorted Array II

Follow up for "Find Minimum in Rotated Sorted Array": What if duplicates are allowed? Would this affect the run-time

原创 LeetCode | Contains Duplicate III

Given an array of integers, find out whether there are two distinct indices i and j in the array such that the differe

原创 代理模式、動態代理與AOP

先來說說代理模式(靜態代理): 其爲23種設計模式之一,屬於結構型模式,其主要思想是通過一個代理對象來代替真實對象來響應client的調用或請求。靜態代理要求代理類與真實類實現一個共同的接口,這樣代理對象才能在“型”上代替真實對象。類圖如