原创 HashMap原理解析

HashMap在jdk1.8之前和Jdk1.8之後內部實現有所不同:在jdk1.8之前,hashMap底層是數組和鏈表的結構,從jdk1.8開始內部實現使用了數組和鏈表以及紅黑樹 一:jdk1.8之前的HashMap實現原理(以jd

原创 mybatis加載配置文件生成Configuration(上)

mybatis的加載入口: InputStream inputStream = Resources.getResourceAsStream("mybatisConfig.xml"); SqlSessionFactory sqlSess

原创 mybatis加載主配置文件源碼解析

從使用mybatis的這段代碼開始 String resource = "mybatis/mybatisConfig.xml"; InputStream inputStream = Resources.getResourceAsStr

原创 kafka入門基礎

一:基本概念 分佈式消息系統,由linkedin使用scala編寫,用作LinkedIn的活動流(Activity Stream)和運營數據處理管道(Pipeline)的基礎。具有高水平擴展和高吞吐量.當前由apache開源.

原创 字符串常量池簡介

爲什麼Java中的String類是不可變的? String類是Java中的一個不可變類(immutable class)。 簡單來說,不可變類就是實例在被創建之後不可修改。 在《Effective Java》 Item 15

原创 HashMap在併發讀寫過程中形成環狀鏈表(併發問題)

今天研讀Java併發容器和框架時,看到爲什麼要使用ConcurrentHashMap時,其中有一個原因是:線程不安全的HashMap, HashMap在併發執行put操作時會引起死循環,是因爲多線程會導致HashMap的Entry鏈表

原创 eclipse中幾處的jdk設置以及各自的作用

一:jdk和jre的區別 JDK(java development kit):java開發工具,包含java基礎類庫,java工具(常用指令,java,javac等),運行時環境(jre),面向於開發人員 JRE(Java Runti

原创 maven的使用總結

一:maven中常用插件使用簡介 1: 編譯插件(maven-compiler-plugin) 如果不指定代碼要使用什麼樣的jdk版本編譯的話,它就會用maven-compiler-plugin默認的jdk版本來進行處理,這樣就容易出

原创 linux(以ubuntu爲例)上搭建zookeeper集羣

準備工作: (以三臺主機爲例),在vmware上安裝三臺虛擬機ubuntu(並安裝JDK) 獲取zookeeper軟件包(具體方式百度),解壓 步驟一:修改zookeeper配置文件:在$ZK_HOME/conf/下複製一份zoo

原创 linux磁盤分區

Linux下的磁盤分區和邏輯卷 一、硬盤接口類型   硬盤的接口主要有IDE、SATA、SCSI 、SAS和光纖通道等五種類型。其中IDE和SATA接口硬盤多用於家用產品中,也有部分應用於服務器,SATA是一種新生的硬盤接口

原创 jdk的jmap指令使用介紹

jdk的jmap指令使用介紹 1.基本介紹 jmap 主要用於打印指定Java進程(或核心文件、遠程調試服務器)的共享對象內存映射或堆內存細節.jmap命令可以獲得運行中的jvm的堆的快照,從而可以離線分析堆,以檢查內存泄漏,檢查一

原创 ubuntu上RabbitMq安裝指南

此處僅記錄離線安裝步驟: 下載安裝包:http://www.rabbitmq.com/download.html 此處選擇:rabbitmq-server-generic-unix-3.6.10.tar.xz 啓動RabbitMQ服

原创 eclipse中用maven創建web項目

一. 項目環境介紹 - eclipse(STS) - maven3.6.0版本 - JDK1.8 二. maven創建web項目 創建項目 創建完成的項目結構可能是這樣的: 下面需要做些調整,使其符合maven項目的