原创 安裝thrift一直報失敗

Making all in java make[3]: Entering directory '/opt/thrift-0.13.0/lib/java' ./gradlew assemble  -Prelease=true  -Pthri

原创 讀鄭雨迪《深入拆解Java虛擬機》 -- 第八講 JVM是如何實現invokedynamic的

本文轉自https://time.geekbang.org/column/article/12564 以前,我們賽馬 只能由馬參加,但是對於一些年輕人裏流行的鴨子類型(duck typing),只要跑起來像馬的,它就是一隻馬,也可以參加賽

原创 讀鄭雨迪《深入拆解Java虛擬機》 -- 第一講 Java代碼是怎麼運行的

本文轉自https://time.geekbang.org/column/article/11289 Java代碼有很多運行方式。 在開發工具中運行 雙擊jar文件運行 在命令行中運行 在網頁中運行 當然,上述運行方式都離不開JRE, 也

原创 讀鄭雨迪《深入拆解Java虛擬機》 -- 第七講 JVM是如何實現反射的

本文轉自https://time.geekbang.org/column/article/12192 反射是Java語言中一個相當重要的特性,它允許正在運行的Java程序觀測,甚至是修改程序的動態行爲。 舉例來說,我們可以通過Class對

原创 讀鄭雨迪《深入拆解Java虛擬機》 -- 第二講 Java的基本類型

本文轉自https://time.geekbang.org/column/article/11503   Java不僅是一門面向對象的語言,它還引進8種基本數據類型來支持數值運算。Java這麼做的原因多半是工程上的考慮,因爲使用基本數據類

原创 Java反射API簡介

通常來說,使用反射API的第一步便是獲取Class對象。在Java中常見的有這麼三種。 使用靜態方法Class.forName來獲取 調用對象的getClass()方法 直接用類名 + ".class"來訪問。對於基本類型來說,它們的包裝

原创 Angrew Machine Learning ex7

findClosestCentroids for i=1:size(X,1) result = 99999; for j=1:K temp = sum((X(i, :) - centroids(j, :)) .^ 2);

原创 讀鄭雨迪《深入拆解Java虛擬機》 -- 第六講 JVM是如何處理異常的

本文轉自https://time.geekbang.org/column/article/12134 衆所周知,異常處理的兩大組成要素是拋出異常和捕獲異常。這兩大要素共同實現程序控制流的非正常轉移。 拋出異常可分爲顯示和隱式兩種。顯示拋異

原创 讀鄭雨迪《深入拆解Java虛擬機》 -- 第三講 Java虛擬機是如何加載Java類的

本文轉自https://time.geekbang.org/column/article/11523 我們把Java虛擬機加載Java類比作蓋房子。那麼我們蓋房子,首先需要請建築師出個方案,然後去市政部門報備、驗證,通過後纔可以開始蓋房子

原创 讀鄭雨迪《深入拆解Java虛擬機》 -- 第五講 JVM是如何執行方法調用的?(下)

本文轉自https://time.geekbang.org/column/article/12098 這裏我們來聊一聊Java虛擬機中虛方法調用的具體實現。 首先,我們來看一個模擬出國邊檢的小例子 abstract class 乘客{

原创 Angrew Machine Learning ex1

warmUpExercise.m   A = eye(5);   computeCost.m / computeCostMulti.m distance = X * theta - y; t = sum(distance .^ 2);

原创 讀鄭雨迪《深入拆解Java虛擬機》 -- 第四講 JVM是如何執行方法調用的?(上)

本文轉自https://time.geekbang.org/column/article/11539 在寫Java代碼的時候,我們可能會遇到可變長參數方法的重載造成的坑。(官方文檔建議避免重載可變長參數方法) 實例代碼如下 void i

原创 Angrew Machine Learning ex8

estimateGaussian mu = mean(X)'; sigma2 = mean((X - mu') .^ 2); selectThreshold predictions = (pval < epsilon); tp = s

原创 Angrew Machine Learning ex6

gaussianKernel sim = exp(-sum((x1 - x2) .^ 2) / (2 * sigma ^ 2));  dataset3Params rel_vec = [0 0 9999]; val_vec = [0.

原创 Angrew Machine Learning ex2

sigmoid.m g = 1 ./ (exp(-z) .+ 1); costFunction.m h = sigmoid(X * theta); grad = X' * (h - y) / m; J = (y' * log(h) +