一、JAVA的形成歷史
早期在20世紀90年代,SUN公司爲了搶佔智能電視的市場,在1991年成立了一個Green的研發小組,專攻計算機在家電產品上的嵌入應用;但是由於消費電子產品所採用的嵌入式處理器芯片的種類繁雜,如何讓編寫的程序跨平臺運行也是個難題,所以後來開發了一種稱爲Oak的面嚮對象語言。1995年,更名爲java,據說是在Java島(爪哇島)上曾喝過一種美味的咖啡,於是便命名爲java;開始向互聯網進發,開啓了java的輝煌之旅。
二、java的主要技術
- java程序設計語言
- java API
- java class
- JVM:java virtual machine
三、JAVA應用領域上分類
- JAVA SE:java standard edition 標準版
- JAVA EE:java enterprise edition 企業版
- JAVA ME:java mobile edition 移動版(基本不用來移動端開發)
四、JVM的實現方式
- 一次性解釋器,解釋字節碼並執行
- 即時編譯器(just-in-time complier)依賴於更多內存緩存解釋後的結果
- 自適應編譯器,緩存20%左右代碼,提高80%左右的速度
五、JVM分類----SUM自有的Hotspot JVM;開源的Open JDK
JRE:java運行時環境
JRE=JVM+java SE API
JDK:java開發環境(開發編譯+運行)
JDK=java+api+JVM
六、JVM內存模型
- 純種私有內存區:程序計數器、java虛擬機棧
- 線程共享內存區:方法區、堆(幾乎是JVM所佔內存的最大比);堆----java中可自動進行內存回收
- java垃圾回收算法:1.標記-清除;2.複製(可以避免碎片,但浪費空間);3.標記-整理
七、JDK安裝
2.安裝JDK
[root@localhost ~]# rpm -ivh jdk-8u221-linux-x64.rpm
warning: jdk-8u221-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:jdk1.8-2000:1.8.0_221-fcs ################################# [100%]
Unpacking JAR files...
tools.jar...
plugin.jar...
javaws.jar...
deploy.jar...
rt.jar...
jsse.jar...
charsets.jar...
localedata.jar...
#安裝後,默認的安裝在/usr/java;使用java -version命令,能顯示信息,表示成功
[root@localhost jdk1.8.0_221-amd64]# java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
#設置環境變量
vim /etc/profile.d/java.sh
#建入以下內容
export JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
export PATH=$PATH:$JAVA_HOME/bin
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/java/jdk1.8.0_221-amd64/bin
3.java配置參數
- java -XX:+OptionName #表示開啓此參數指定的功能
- java -XX:-OptionName #表示關閉此參數指定的功能
- java -XX:OptionName=value #表示給指定的參數賦值
- java -XX:+PrintFlagsFinal #顯示支持的所有參數及默認值
八、Sun JDK監控和故障處理工具
- jps:JVM Process Status Tool #顯示指定系統內所有的HotSpot虛擬機進程的列表信息
- jstat:JVM Statistics Monitoring Tool #收集並顯示HotSpot虛擬機各方面的運行數據
- jinfo #顯示HotSpot虛擬機配置信息
- jmap #生成某HotSpot虛擬機的內存轉儲快照
- 可視化工具:jconsole
九、JAVA web相關技術
1.Servlet 是Java Servlet的簡稱,能夠使得java開發動態頁面,通過CGI技術與web前端進行通信;但是這種技術是硬編碼,編碼不方便,每一次改動都得重新編譯,即使html的改變,也得重新編譯
2.JSP是JAVA Server Pages的簡稱,是一種實現普通靜態HTML 和動態 HTML 混合編碼的技術;jsp技術主要功能是讓java能以標籤的形式嵌入到html中,使得java程序員不在需要深入瞭解html。