原创 深入理解Java虛擬機系列——JVM的GC理論詳解

GC的概念    GC:Garbage Collection 垃圾收集。這裏所謂的垃圾指的是在系統運行過程當中所產生的一些無用的對象,這些對象佔據着一定的內存空間,如果長期不被釋放,可能導致OOM(堆溢出)。內存區域中的程序計數器、虛擬機

原创 maven setting詳解

<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://ww

原创 深入瞭解Java虛擬機系列——JVM的啓動流程

JVM工作原理和特點主要是指操作系統裝入JVM,是通過jdk中Java.exe來完成,通過下面4步來完成JVM環境1.創建JVM裝載環境和配置2.裝載JVM.dll3.初始化JVM.dll並掛界到JNIENV(JNI調用接口)實例4.調用

原创 深入理解Java虛擬機系列(1)——什麼叫做JVM與JVM規範

引言       (1)內存管理一直是JAVA語言自豪與驕傲的資本,它讓JAVA程序員基本上可以徹底忽略與內存管理相關的細節,只專注於業務邏輯。不過世界上不存在十全十美的好事,在帶來了便利的同時,也因此引入了很多令人抓狂的內存溢出和泄露的

原创 MapperReduce初探系列(1)——面向編程之分佈式分析框架(模型)

正如標題說的一樣,MapperReduce是一種很厲害的面向編程的分佈式分析框架,MapperReduce使得hadoop更加有意義,雖然MapperReduce沒有Spark計算速度快,但是MapperReduce也又很多優勢,那什麼是

原创 字符編碼史:請問utf-8的中文是一個漢字佔三個字節長度嗎?

這是個好問題,可以當作一個筆試題。先從字符編碼講起。 1、美國人首先對其英文字符進行了編碼,也就是最早的ascii碼,用一個字節的低7位來表示英文的128個字符,高1位統一爲0; 2、後來歐洲人發現尼瑪你這128位哪夠用,比如我高貴的法國

原创 @Transactional事務幾點注意

操作事物的方式一般有兩種,一種是在spring中直接配置,另一種是在方法中添加@Transactional這裏面有幾點需要大家留意:A. 一個功能是否要事務,必須納入設計、編碼考慮。不能僅僅完成了基本功能就ok。B. 如果加了事務,必須做

原创 MapperReduce初探系列(2)——WordCount程序的實現

——WordCount程序的實現是學習MapperReduce不可或缺的一個步驟,這個程序就好像Java中的HelloWord程序一樣,不過這個程序相對於HelloWord來說難許多,不過不要緊,任務程序都是有規律可尋的! WordCou

原创 深入理解Java虛擬機系列——JVM的棧內存

    每當啓動一個新線程時,Java虛擬機都會爲它分配一個Java棧。Java棧以幀爲單位保存線程的運行狀態。虛擬機只會直接對Java棧執行兩種操作:以幀爲單位的壓棧和出棧。  某個線程正在執行的方法被稱爲該線程的當前方法,當前方法使用

原创 深入理解Java虛擬機——JVM的類加載機制

虛擬機把描述類的數據從Class文件加載到內存,並對數據進行校驗、轉換解析和初始化,最終形成可以被虛擬機直接使用的Java類型,這就是虛擬機的類加載機制。 類加載的規則:全盤負責,當一個類加載器負責加載某個Class時,該Class所依賴

原创 深入理解Java虛擬機——JVM的GC實現詳解

    新生代中的98%對象都是“朝生夕死”的,所以並不需要按照1:1的比例來劃分內存空間,而是將內存分爲一塊比較大的Eden空間和兩塊較小的Survivor空間,每次使用Eden和其中一塊Survivor。當回收時,將Eden和Surv

原创 Hadoop初探學習(1)——hadoop的簡史

初探hadoop,去了解hadoop的簡史對於我們學習hadoop有很大的幫助,下面我們來看看什麼是hadoop?一. What Is Apache Hadoop?(1)The Apache™ Hadoop® project develo

原创 深入理解Java虛擬機——JVM的生命週期

package test; public class JVMTestLife { public static void main(String[] args) { new Thread(new R

原创 深入理解Java虛擬機系列——JVM的基本結構

    首先,當一個程序啓動之前,它的class會被類裝載器裝入方法區,執行引擎讀取方法區的字節碼自適應解析,邊解析就邊運行(其中一種方式),然後pc寄存器指向了main函數所在位置,虛擬機開始爲main函數在java棧中預留一個棧幀(每

原创 什麼是Zookeeper,爲什麼我們要使用Zookeeper

1.什麼是zookeeper? (1)Zookeeper是Googel的Chubby的一個開源實現,是Hadoop的分佈式協調服務,它包好了一個簡單的原語,分佈式應用程序可以基於它實現同步服務,配置維護和命名服務等。 (2)Zookeep