原创 Scala篇:整合springboot

項目結構 pom文件 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-pa

原创 Java虛擬機:內存模型

一、內存模型   Java內存模型(Java Memory Model ,JMM)就是一種複覈人內存模型規範的,屏蔽了各種硬件和操作系統的訪問差異的,保證了Java程序在各種平臺下對內存的訪問都能保證效果一致的機制及規範。   J

原创 Java虛擬機:垃圾收集器與內存分配策略

一、對象   堆中幾乎存放着Java世界中所有的對象實例,垃圾收集器在對堆進行回收前,第一件事情就是要確定這些對象有哪些還“存貨”着,哪些已經“死去”(即不可能再被任何途徑使用的對象)。 1.1 引用計數算法   判斷對象是否存活

原创 synchronized鎖的優化過程

    在java併發中synchronized一直是一個重要的角色,有人稱它爲重量級鎖,但在jdk1.6之後synchronized得到了優化,引入了偏向鎖和輕量級鎖,避免線程上下文切換帶來的耗時,所以看起來就沒有那麼重了。 對

原创 Java虛擬機:類加載器

一、類加載器 JVM規範允許類加載器在預料某個類將要被使用時就預先加載它,如果在預先加載的過程中遇到了.class文件缺失或者存在錯誤,類加載器必須在程序首次主動使用該類時才報告錯誤(LinkageError錯誤),如果這個類一直

原创 Java8:HashMap源碼分析(實現原理)

HashMap是Java開發中常用的數據結構,瞭解它的內部實現有助於更好的使用它,Java8中的HashMap由三種數據結構組成:數組、鏈表、紅黑樹 內部存儲 HashMap的內部存儲是一個數組(bucket),數組的元素Node

原创 Java多線程:線程池的使用

以下摘自阿里開發手冊原話 線程池不允許使用Executors去創建,而是通過ThreadPoolExecutor的方式,這樣的處理方式讓寫的同學更加明確線程池的運行規則,規避資源耗盡的風險。 說明:Executors各個方法的弊端

原创 SpringBoot學習:接口鑑權JWT

JWT 全稱Json Web Token,是爲了在應用間傳遞聲明的基於json的開放式標準,用於雙方之間以json的形式傳遞安全信息,因爲數字簽名的存在,這些信息是可信的,JWT可以使用HMAC算法或者是RSA的公私祕鑰對進行簽名

原创 Java內存模型與volatile不得不說的祕密

    java內存模型(Java Memory Model,JMM)是java虛擬機規範定義的,用來屏蔽掉java程序在各種不同的硬件和操作系統對內存的訪問的差異,這樣就可以實現java程序在各種不同的平臺上都能達到內存訪問的一

原创 SpringBoot學習:整合redis配置

yaml文件配置 spring: redis: database: 0 # 數據儲存的分片位置 cluster: max-redirects: 3

原创 Jest scroll查詢

@Test public void testSerialScroll() throws IOException { BoolQueryBuilder builder = QueryBuilders.boolQuery();

原创 Spark:spark初探wordCount

一、準備工作 scala-sdk安裝 下載地址:scala-2.11.2,下載完成配置SCALA_HOME maven座標 <properties> <spark.version>2.4.3</spark.ve

原创 SpringBoot學習:整合Hbase

所需pom依賴 <!--hbase依賴--> <hbase-client.version>2.0.0</hbase-client.version> <lombak.version>1.16.10</lombak.version

原创 Java虛擬機:實戰OutOfMemoryError異常

  在Java虛擬機規範的描述中,除了程序計數器外,虛擬機內存的其它幾個運行時數據區域都有發生OutOfMemoryError(OOM) 一、Java堆溢出 /** * @author: hs * @Date: 2019/12

原创 Java多線程:深入理解synchronized

一、概述 synchronized關鍵字是java應用中解決線程安全必不可少的,線程安全是併發編程中的重要關注點,造成線程不安全的誘因實質就是共享數據,以及多線程操作共享數據,爲了解決多線程操作共享數據的問題,需要保證在同一時刻只