原创 scala trait,class 和 object在內存中的狀態

trait trait的變量並不能直接訪問,說明不是靜態的. trait既能被class繼承也能被object繼承 每一個繼承trait的類生成實例的時候(無論是class還是object)都換先生成一個trait實例(或者說對

原创 三種快速排序的圖示和python實現

基本快速排序 def quickSort(s, start, end): if start < end: index = basicSort(s, start, end) quickSort(s, s

原创 hadoop系列之JobTracker啓動源碼解析

文章目錄一、Jobtracker啓動JobTracker tracker = startTracker(new JobConf())` 主要對JobTracker 類進行一些必要的初始化.在初始化過程中有兩個比較關鍵的地方:通過

原创 使用geohash的幾個要點

文章目錄geohash是什麼?怎麼生成?geohash的填充曲線是唯一的——Peano空間填充曲線geohash的長度,位數和空間精度 geohash是什麼?怎麼生成? geohash採用的是base32編碼.即Geohash中

原创 java NIO 之Buffer類

1.基礎 緩衝區是包在一個對象內的基本數據元素數組。 1.1 關鍵詞 容量(Capacity) 緩衝區能夠容納的數據元素的最大數量。這一容量在緩衝區創建時被設定,並且永遠不能 被改變。 上界(Limit) 緩衝區的第一個不能被讀

原创 爲什麼說java的synchronized 鎖定代碼塊和synchronized鎖定類對象都指的類對象?

鎖定代碼塊等價於鎖定對象 首選看一下鎖定代碼塊的語法? synchronized (對象) { // 代碼塊 } 上面的語法中的"對象",指的是實例對象,可以是this,Class.cls

原创 以hadoop 1.0.0版本分析hadoop是如何提交任務的

腳本分析 hadoop的bin目錄如下: 當調用 hadoop jar XXX.jar 命令後。hadoop腳本對應的是如下內容: 由此可知,hadoop 是通過org.apache.hadoop.util.RunJar類開

原创 scala隱式詳解

定義 使用implicit 關鍵字 implicit val rate: Float = 0.05F implicit def float2Int(float: Float) = {

原创 java調優之jstat命令和jinfo命令使用

文章目錄jstat命令基本用法:jstat -optionsjinfo命令 jstat命令 基本用法: invalid argument count Usage: jstat -help|-options jstat

原创 scala的Future和Promise

前言 使用scala的Future和Promise就不得不提一下異步編程和多線程編程的區別。 共同點:異步和多線程兩者都可以達到避免調用線程阻塞的目的,從而提高軟件的可響應性 不同點: 線程不是一個計算機硬件的功能,而是操作系統

原创 從狀態機看股票交易問題

概述 動態規劃的一種典型題型: 一般的動態規劃都是 dp[n] = f(dp[x]) 但是有一種題型的動態規劃的轉移方程是: dp[n] = f(g[x]) g[x] = dp[x] 這種就是含狀態機的動態規劃問題 股票交

原创 二叉樹的各種常見題型

前序遍歷 def pre_search(root: TreeNode): res = [] if root is None: return res stack = [root] # 使

原创 leetcode的揹包問題

01 揹包 題目 有N件物品和一個容量爲V的揹包。第i件物品的費用是w[i],價值是v[i],求將哪些物品裝入揹包可使價值總和最大。 題解 定義數組 dp[i][j] # 代表前i個商品,放入一個容量爲j的揹包,所獲得的最大價

原创 串一串java的voliate,cas,原子類

cpu是如何使用內存的 談voliate之前就不得不談一談cpu和們的主存之間的關係。CPU的運算處理速度與內存讀寫速度的差異非常巨大,爲了解決這種差異充分利用CPU的使用效率,就開始在CPU處理器和內存之間加了一層緩衝區。 注意