原创 Java命令行工具 -- jmap

功能 jmap命令是一個多功能命令。它既可以生成jvm堆Dump文件,也可以查看堆內對象實例的統計信息,查看ClassLoader的信息以及finalizer隊列。 使用 jmap的使用如下: Usage: jmap [o

原创 Java命令行工具 -- jinfo

功能 jinfo可以查看正在運行的jvm進程的參數,同時也可以修改參數。 使用 它的語法如下: jinfo [option] <pid> optition信息如下: -flag <name> to print

原创 Comparable和Comparator有啥不一樣

1.Comparable和Comparator對比 Comparable是排序接口,若一個類實現了Comparable接口,就意味着“該類支持排序”,這時調用該類的排序方法時就可以實現排序。 Comparable位於java.la

原创 mysql 5.7 忘記root密碼

背景 今天突然手抖了一下,不小心把navicat中mysql的連接刪掉了,當我想再次連接到mysql時才發現密碼不記得了。馬上百度了一下,發現還是有解決辦法的,懸着的心這才放下來。 1.編輯 /etc/my.cnf 文件,在 [m

原创 mysql 的那些常見連接方式

Join介紹 Join是SQL語句中非常重要的一個運算操作,常見的Join操作如下: mysql 官方只提供了內連接,左外連接,右外連接三種方式。通過一定的方法也可以實現其它的連接。 數據準備 a.創建兩張表 create ta

原创 synchronized 使用方法與實現原理

1.概述 在java中synchronized是一個非常重要的關鍵字,它主要用來控制線程同步的,在多線程環境下能實現臨界區資源的互斥訪問。 synchronized關鍵字最主要有以下3種應用方式,下面分別介紹 修飾實例方法,作用

原创 cgroup使用--memory資源限制

同樣,cgroup也可以對memory資源進行限制。下面以一個例子來驗證cgroup對內存限制的使用。 1.編寫程序,循環分配600M內存。 #include<stdio.h> #include<stdlib.h> #includ

原创 Hbase源代碼編譯

軟件版本 hbase版本: 1.2.6 maven版本: 3.5.0 jdk版本: 1.8 編譯步驟 1.下載並解壓源代碼包 tar xf hbase-1.2.6-src.tar.gz 2.將pom.xml中的hadoop-t

原创 算法系列之分治法

分治法 分治算法的核心思想是將原問題劃分爲n個規模較小而結構與原問題相似的子問題;遞歸的解決這些子問題,然後再合併其結果,就得到原問題的解。 分治法分爲三個階段: 分解:將原問題分解爲一系列子問題,如果子問題的規模任不夠小則再繼

原创 Idea如何遠程調試

背景 分佈式系統中日誌是定位各種線上問題的重要手段,但是日誌不能完全反映程序運行時的所有信息。下面介紹一種重量級的手段-遠程調試,JVM遠程調試通過JDWP協議。 JDWP是Java Debug Wire Protocol的縮寫,

原创 Hadoop源代碼編譯

1.編譯環境與依賴 操作系統:centos7 JDK:1.8 maven:3.6.3 apache-ant:1.9.14 cmake:2.8.12 findbugs:3.0.1 protobuf:2.5.0 snappy:1.1.

原创 Spark yarn cluster模式Application提交流程源代碼分析

yarn cluster模式Application提交流程概述 yarn cluster模式Application提交流程如下圖所示。 提交流程: Client 向ResourceManager申請啓動ApplicationM

原创 JVM常見垃圾回收器

1.對象分配與回收策略 1.對象優先在eden分配 2.大對象直接進入老年代 3.長期存活對象進入老年代 4.TLAB對象分配 2.常見垃圾回收器 1.串行回收器 串行回收器是最古老的垃圾回收器,串行回收器的工作特點: a. 單線

原创 java反射中Class.forName和classloader差異對比

1.反射Class.forName和classloader對比 java使用反射時可以通過兩種方式實現類加載,class.forName()和classLoader都可用來對類進行加載。那麼二者有什麼區別嗎? 不同點: 1.cla

原创 String,StringBuilder和StringBuffer有啥不一樣

java中用於字符串處理的常用類有三個: String,StringBuffer和StringBuilder,那麼三者有什麼異同呢? 1.相同點: 都是final類,不允許被繼承。這主要是從安全性上考慮防止繼承後某些參數被修改。