一)JDK簡介
1.JDK Java SE Development kit(JDK) java開發工具包
JDK全稱Java SE Development kit(JDK),即java標準版開發包,是Oracle提供的一套用於開發java應用程序的開發包,它提供編譯,運行java程序所需要的各種工具和資源,包括java編譯器,java運行時環境,以及常用的java類庫等。
(1)JRE Java Runtime Environment(JRE) Java運行環境
Java運行環境,它的全稱Java Runtime Environment(JRE) ,因此也被稱爲JRE,它是運行java的必需條件。
(2)JVM Java Virtual Machine
Java虛擬機,JRE包含JVM。JVM是運行java程序的核心虛擬機,還需要其他的類加載器,字節碼校驗器,以及大量的基礎類庫。JRM除了包含JVM之外,還包含運行java程序的其它環境支持。
a.什麼是JAVA虛擬機
所謂虛擬機,就是一臺虛擬的計算機。他是一款軟件,用來執行一系列虛擬計算機指令。大體上,虛擬機可以分爲系統虛擬機和程序虛擬機。大名鼎鼎的VisualBox、VMware就屬於系統虛擬機。他們完全是對物理計算機的仿真。提供了一個可以運行完整操作系統的軟件平臺。
程序虛擬機的典型代表就是Java虛擬機,它專門爲執行單個計算機程序而設計,在Java虛擬機中執行的指令我們稱爲Java字節碼指令。無論是系統虛擬機還是程序虛擬機,在上面運行的軟件都限制於虛擬機提供的資源中。
c.JAVA 如何做到跨平臺
同一個JAVA程序(JAVA字節碼的集合),通過JAVA虛擬機(JVM)運行於各大主流操作系統平臺比如Windows、CentOS、Ubuntu等。程序以虛擬機爲中介,來實現跨平臺.
(3)
常用虛擬機參數
1、標準參數
2、X 類型參數
3、XX 類型參數
在實際情況中 X 參數和 XX 參數並沒有什麼不同。X 參數的功能是十分穩定的。
用一句話來說明 XX 參數的語法。所有的 XX 參數都以"-XX:"開始,但是隨後的語法不同,取決於參數的類型:
1)對於布爾類型的參數,我們有"+"或"-",然後才設置 JVM 選項的實際名稱。
例如,-XX:+ 用於激活選項,而 -XX:- 用於註銷選項。
Example:
開啓GC日誌的參數: -XX:+PrintGC
2) 對於需要非布爾值的參數,如 string 或者 integer,我們先寫參數的名稱,後面加上"=",最後賦值。
例如: -XX:MaxPermSize=2048m
(4)
常用的JVM參數
跟蹤JAVA虛擬機的垃圾回收
GC日誌:jvm垃圾回收,記錄jvm的運行狀態,oom內存溢出的報錯信息等。
- %t 將會被替代爲時間字符串,格式爲: YYYY-MM-DD_HH-MM-SS
開啓GC日誌:
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/data0/logs/gc-%t.log"
配置JAVA虛擬機的堆空間
-Xms:初始堆大小
-Xmx:最大堆大小
實際生產環境中, 我們通常將初始化堆(-Xms) 和 最大堆(-Xmx) 設置爲一樣大。以避免程序頻繁的申請堆空間。設置爲物理內存的一半。
配置JAVA虛擬機的永久區(方法區)
-XX:PermSize 內存永久保留區域 ://所佔用的內存是堆內存的一部分內存,不能超過堆內存
-XX:MaxPermSize 內存最大永久保留區域
有各種版本的 看自己需要了 這裏我下載8版本的
這裏你需要註冊一個賬號才能下載 點擊它會自動轉到註冊賬號
註冊號後 點擊登錄
然後會自動彈出一個下載界面
點擊下載即可
有些可能會直接進入官網
這裏又進入的剛纔的界面了
這裏你點擊下載然後他會下載
這是沒有登錄的情況下顯示的 是不能直接下載的
下載好之後開始安裝
部署
[root@java-tomcat1 ~]# tar xzf jdk-8u211-linux-x64.tar.gz -C /usr/local/
[root@java-tomcat1 ~]# cd /usr/local/
[root@java-tomcat1 local]# mv jdk1.8.0_191/ java
設置環境變量:
[root@java-tomcat1 local]# vim /etc/profile
export JAVA_HOME=/usr/local/java #指定java安裝目錄
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH #用於指定java系統查找命令的路徑
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar #類的路徑,在編譯運行java程序時,如果有調用到其他類的時候,在classpath中尋找需要的類。
檢測JDK是否安裝成功:
[root@java-tomcat1 local]# source /etc/profile
[root@java-tomcat1 local]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)