Core Java(一),corejava
一. 緒
1.軟體:按照特定順序組織的電腦資料和指令的集合。
軟體開發:藉助開發工具與電腦語言製作軟體
2.電腦語言:用於人與電腦通訊的語言
分為機器語言,組合語言,進階語言
進階語言分為編譯行語言和解釋型語言
編譯型語言:來源程式編譯成二進位代碼的可運行程式,然後運行 原始碼-->機器碼 執行速度快,效率高,依賴編譯器,跨平台性差
解釋型語言:來源程式翻譯一句執行一句,知道結束 原始碼-->中間代碼(位元組碼檔案)-->機器碼 執行速度慢,效率低,依賴解譯器,跨平台性好
通俗的講,編譯語言是在編譯後可以直接運行,而解釋語言的執行需要一個解釋環境。java很特殊,java程式也需要編譯,但是沒有直接編譯稱為機器語言,而是編譯稱為位元組碼,然後用解釋方式執行位元組碼。
——
常用的
DOS
命令
開啟DOS控制台的方式
1、開始—程式—附件—命令提示字元
2、開始—運行—cmd—斷行符號
3、win+r—cmd—斷行符號
常用的DOS命令
d: 斷行符號 盤符切換
dir(directory):列出目前的目錄下的檔案以及檔案夾
md (make directory) : 建立目錄
rd (remove directory): 刪除目錄
cd (change directory)改變指定目錄(進入指定目錄)
cd.. : 退回到上一級目錄
cd\: 退回到根目錄
del (delete): 刪除檔案,刪除一堆尾碼名一樣的檔案*.txt
exit : 退出dos命令列
cls : (clear screen)清屏
——
Java
語言平台版本
J2SE Java SE(Java 2 Platform Standard Edition)標準版
是為開發普通案頭和商務應用程式提供的解決方案,該技術體系是其他兩者的基礎,可以完成一些傳統型應用程式的開發。
J2ME(Java 2 Platform Micro Edition)小型版
是為開發電子消費產品和嵌入式裝置提供的解決方案。
J2EE(Java 2 Platform Enterprise Edition)企業版
是為開發企業環境下的應用程式提供的一套解決方案,該技術體系中包含的技術如 Servlet、Jsp等,主要針對於Web應用程式開發。
——配置環境變數
我的電腦(右鍵)—>屬性—>進階系統設定—>進階—>環境變數
——JAVA_HOME
系統變數內建是沒有JAVA_HOME這個變數,變數值就是JDK安裝的路徑,需要自己編輯如下:
——PATH
PATH在系統變數中本來就是存在的,在最前面輸入Bin的路徑(用分號隔開其他路徑),編輯如下:
$JAVA_HOME%\bin
C:\java\jdk\bin
——CLASSPATH
系統內建的變數是沒有CLASSPATH的,需要添加
這是 Java 的環境配置,配置完成後,可以啟動 Eclipse 來編寫代碼,它會自動完成java環境的配置。
注意:如果使用1.5以上版本的JDK,不用設定CLASSPATH環境變數,也可以正常編譯和運行Java程式。
——測試JDK是否安裝成功
1、"開始"->"運行",鍵入"cmd";
2、鍵入命令: java -version、java、javac 幾個命令,出現以下資訊,說明環境變數配置成功;
——
Java
語言的主要特性
1.跨平台性
軟體不受電腦硬體和作業系統的約束,而在任意電腦環境下正常運行
在Java語言中, Java內建的虛擬機器很好地實現了跨平台性。
2.物件導向
3.安全性(魯棒性)
4.多線程
多線程是指允許一個應用程式同時存在兩個或兩個以上的線程,用於支援事務並發和多任務處理。 Java除了內建的多線程技術之外,還定義了一些類、方法等來建立和系統管理使用者定義的多線程。
5.簡單易用
——JRE
與
JDK
JRE(Java Runtime Environment Java運行環境)
包括Java虛擬機器(JVM Java Virtual Machine)和Java程式所需的核心類庫等,如果想要運行一個開發好的Java程式,電腦中只需要安裝JRE即可。
JDK(Java Development Kit Java開發套件)
JDK是提供給Java開發人員使用的,其中包含了java的開發工具,也包括了JRE。所以安裝了JDK,就不用在單獨安裝JRE了。
其中的開發工具:編譯工具(javac.exe) 打包工具(jar.exe)等
簡單而言:使用JDK開發完成的java程式,交給JRE去運行。
——Java的跨平台性
因為有了JVM,所以同一個Java程式在三個不同的作業系統中都可以執行。這樣就實現了Java程式的跨平台性。也稱為Java具有良好的可移植性。
Java語言是跨平台的,而JVM不是跨平台的。
——Bytecode(位元組碼檔案)
位元組碼檔案是經過編譯器預先處理過的一種檔案,是JAVA的執行檔案存在形式,它本身是二進位檔案,但是不可以被系統直接執行,而是需要虛擬機器解釋執行,由於被預先處理過,所以比一般的解釋代碼要快,但是仍然會比系統直接執行的慢。
機器碼,完全依附硬體而存在,並且不同硬體由於內嵌指令集不同,即使相同的0 1代碼 意思也可能是不同的~換句話說,根本不存在跨平台性~比如~不同型號的CPU,你給他個指令10001101,他們可能會解析為不同的結果。
我們知道JAVA是跨平台的,為什麼呢?因為他有一個jvm,不論那種硬體,只要你裝有jvm,那麼他就認識這個JAVA位元組碼,至於底層的機器碼,咱不用管,有jvm搞定,他會把位元組碼再翻譯成所在機器認識的機器碼。
——GC 記憶體回收行程
Java的記憶體管理實際上就是對象的管理,其中包括對象的分配和釋放。
對於程式員來說,指派至使用new關鍵字;釋放對象時,只要將對象所有引用賦值為null,讓程式不能夠再訪問到這個對象,我們稱該對象為“不可達的”,GC將負責回收所有“不可達”對象的記憶體空間。
gc會開啟線程清理記憶體,不是及時回收的,根據記憶體效率,如果真的記憶體緊張了,才會回收,或者系統處於空閑狀態,才會回收,所以說gc優先順序較低,為的就是提高運行效率,程式員無法對其控制,由虛擬機器控制,我們只能提出建議,但是人家不一定接受。
System.gc()/Runtime.gc() //代碼作用建議記憶體回收此處進行工作
什麼是跨平台性?
通過Java語言編寫的應用程式在不同的系統平台上都可以運行。
原理是什嗎?
只要在需要運行java應用程式的作業系統上,
先安裝一個Java虛擬機器(JVM Java Virtual Machine)即可。由JVM來負責Java程式在該系統中的運行。
為什麼JDK中包含一個JRE呢?
其一,開發完的程式,總需要運行一下看看效果。
其二,也是最重要的,JDK中的開發工具其實都是java語言編寫的應用程式,為了方便使用才打包成exe檔案,如果沒有JRE,那麼這些工具是運行不了的。