原创 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