原创 對可重入鎖和不可重入鎖的理解,他們的區別及實現原理解析。

首先我們這裏提到的鎖,是把所需要的代碼塊,資源,或數據鎖上,在操作他們的時候只允許一個線程去做操作。最終結果是爲了保證cpu計算結果的正確性。   對不可重入鎖的理解: public class Test{ Lock lock

原创 Java中length和length()的區別

length是數組的屬性 length()是字符串類的方法,本質上也是調用了數組的length屬性。因爲字符串底層也是char數組嘛! /** * Returns the length of this string.

原创 JVM棧溢出實踐

本次在eclipse中實踐本異常: 通過遞歸調用自己,無結束語句製造棧溢出的情況 ,或在多線程的模式下無限創建線程來實踐OOM的情況。 1. 棧溢出的情況(StackOverflowError) 虛擬機參數設置:-Xss128k /*

原创 JVM堆溢出實踐

本次在eclipse中實踐本異常: 通過無終止的在隊中創建對象,以製造堆溢出的情況。 虛擬機參數設置:-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError 將最大內存和最小內存設爲相等是爲了避免虛

原创 《深入理解Java虛擬機》第二版 第三章筆記

三.垃圾收集器與內存分配策略 1.1 概述 拋出問題 哪些內存需要回收 什麼時候回收 如何回收 1.2 對象已死嗎? 如何判斷對象已經死亡: 1.2.1 引用計數法(RC  Reference Counting) 原理:每個對象都有一個引

原创 解讀MapReduce中邏輯切片的實現方法getSplits源碼

在書寫任務的run方法時,定義輸入輸出格式中,我們使用了兩段代碼: //2 設置數據讀入與寫出格式 job.setInputFormatClass(TextInputFormat.class); job.setOutputFormatC

原创 爲什麼要堅持寫博客?

聽別人說過,效率最高的學習方法,就是把學的東西教別人一遍。   我是認同這句話的,在教別人的時候,自己會去回憶知識的邏輯,只有自己融會貫通,纔能有邏輯的表述給別人,半懂不懂的情況總是會出現表述不清的感覺把自己繞進去。也就每次督促自己一遍又

原创 解讀ArrayList中的grow(int minCapacity)方法

查看源碼: /** * Increases the capacity to ensure that it can hold at least the * number of elements specifie

原创 解讀ArrayList中的indexOf(Object o)方法

源碼如下: /** * Returns the index of the first occurrence of the specified element * in this list, or -1 if

原创 ArrayList史上最詳細源碼分析

今天電話面試,面試官問到ArrayList中add方法的原理,我一下蒙了,這個用的最多的一種數據結構被我忽視了,沒答上來,有時候用的最多的反而最自信,最自信的東西最容易忽視其中的細節,因此今天決定扒扒源碼。 1 ArrayList是什麼?

原创 hadoop發佈一個任務:遠程jar包部署(備忘)

ps:需要裝好HDFS的環境 此次實驗是統計各ip的訪問次數。 準備工作: 1.運行hdfs: [root@CentOS ~]# start-dfs.sh 2.寫好任務 任務結構: MapperDemo類,規定了如何分析數據。 p

原创 解讀ArrayList中的add和remove方法

1. public boolean add(E e) /** * Appends the specified element to the end of this list. * * @param

原创 YARN環境搭建步驟備忘

PS:搭建前請保證已經搭建好了HDFS的環境。 安裝前後臺進程: [root@CentOS ~]# jps 1427 DataNode 1604 SecondaryNameNode 1716 Jps 1339 NameNode 1.修

原创 Linux中 ls -l 詳解,圖解各字段意義

ls -l //查看文件詳細信息 點擊圖片放大。

原创 並行與併發的區別

首先記住一點: 單核心cpu只能實現併發,不能實現並行。 舉例: cpu比作健身房。 核心數比作跑步機。 運行的程序等於上跑步機跑步的人。一臺跑步機只能一個人跑。 健身房只有一臺跑步機。 現在有10個人需要上跑步機跑。 60分鐘內,每