原创 Java工程師需要了解的技術和組件

Java基礎:J2EE、spring開發規範、設計模式、數據結構、JVM及內存模型、分佈式鎖 fescar、多線程、shell 通信層:TCP、UDP、HTTP、IO、NIO、NETTY、websockert、spring-websock

原创 面試技能

一:常見模式與工具   學習Java技術體系,設計模式,流行的框架與組件 —— 常見的設計模式,編碼必備, Spring5,做應用必不可少的最新框架,MyBatis,玩數據庫必不可少的組件......   二:工程化與工具 工慾善其

原创 Java技能

1.Java編程必備   Java編程必備技能   多線程:創建與使用、線程同步與鎖、線程池等的掌握 JVM:你只有深入理解虛擬機的內存回收機制,才能正確使用JVM性能調優 掌握NIO,以及對應NIO框架Netty JUC下的工具包:A

原创 JDk9的新特性

(一):jdk和jre的改變   JDK和JRE已經在Java SE 9中進行了模塊化處理。在Java SE 9之前,JDK構建系統用於生成兩種類型的運行時映像 ——Java運行時環境(JRE)和Java開發工具包(JDK)。 JRE是J

原创 JDK9新特性2

1 Java平臺模塊化系統 該特性是Java 9 最大的一個特性,Java 9起初的代號就叫Jigsaw,最近被更改爲Modularity,Modularity提供了類似於OSGI框架的功能,模塊之間存在相互的依賴關係,可以導出一個公共的

原创 JDK 10 的新特性和增強功能

JEP 286 局部變量推斷: var 傳統的 Java 代碼中,聲明一個變量是非常繁瑣的: List<String> list = new ArrayList<String>(); 現在則引入了 var,既保持 Java 對靜態類型安

原创 雙親委派模型

其實,雙親委派模型並不複雜。自定義類加載器也不難!隨便從網上搜一下就能搜出一大把結果,然後copy一下就能用。但是,如果每次想自定義類加載器就必須搜一遍別人的文章,然後複製,這樣顯然不行。可是自定義類加載器又不經常用,時間久了容易忘記。相

原创 從永久代(PermGen)到元空間(Metaspace)

爲什麼要做這個轉換?總結以下幾點原因: 1、字符串存在永久代中,容易出現性能問題和內存溢出。 2、類及方法的信息等比較難確定其大小,因此對於永久代的大小指定比較困難,太小容易出現永久代溢出,太大則容易導致老年代溢出。 3、永久代

原创 JAVA強弱軟虛引用

一. 強引用、軟引用、弱引用、虛引用的概念   在Java中,雖然不需要程序員手動去管理對象的生命週期,但是如果希望某些對象具備一定的生命週期的話(比如內存不足時JVM就會自動回收某些對象從而避免OutOfMemory的錯誤)就需要用到軟

原创 JAVA內存模型入門

概述 jvm 入門篇,想要學習jvm,必須先得了解JVM內存模型,JVM內存模型,JVM內存模型,JVM內存模型,JVM內存模型。重要的事情說多遍。 內存劃分 java虛擬機按照運行時內存使用區域劃分如圖:   Paste_Image.

原创 idea指定pom的profile

1、在Edit Configurations中創建個Maven啓動項 啓動項配置如下(此處我的啓動項名稱爲‘Build’,cmd中配置 install -DskipTests 可跳過測試用例): 2、修改tomcat啓動項下的Befo

原创 nginx + keepalived

1、準備2臺機器,192.168.1.11、192.168.1.12  vip 192.168.1.20 vip 的設置 即在2臺已經分配好靜態IP的機器中做如下配置(2臺機器都要) vim /etc/sysconfig/networ

原创 String 的深入理解

一、String類 想要了解一個類,最好的辦法就是看這個類的實現源代碼,來看一下String類的源碼: public final class String implements java.io.Serializable, Com

原创 nginx模塊

安裝模塊 Nginx 模塊必須在編譯時就進行選擇,目前不支持在運行時進行模塊選擇。在編譯時,可以通過命令 ./configure --help 運行所提供的配置腳本來查看所有支持的編譯選項列表(包含可選模塊)。 Nginx 核心模塊 這些

原创 spark集羣部署

1、下載spark,在這之前需要安裝scala wget https://d3kbcqa49mib13.cloudfront.net/spark-2.2.0-bin-hadoop2.7.tgz  2、配置環境變量 vi /etc/pr