java歷史:
?? ?java語言由C++發(fā)展而來逢艘。于1991年Sun公司的James Gosling等人開發(fā)丈牢,當(dāng)時名稱為 Oak?祭钉,后來才改名為JAVA。
java特性:
?? ?Java是一門面向?qū)ο缶幊陶Z言己沛,不僅吸收了C++語言的各種優(yōu)點(diǎn)慌核,還摒棄了C++里難以理解的多繼承、指針等概念泛粹,因此Java語言具有功能強(qiáng)大和簡單易用兩個特征遂铡。Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實現(xiàn)了面向?qū)ο罄碚摼фⅲ试S程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程 扒接。Java具有簡單性、面向?qū)ο竺茄谩⒎植际郊卣⒔研浴踩悦商簟⑵脚_獨(dú)立與可移植性宗侦、多線程、動態(tài)性等特點(diǎn)忆蚀。Java可以編寫桌面應(yīng)用程序(JAVA SE)矾利、Web應(yīng)用程序( JAVA EE)、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序(JAVA SE)等馋袜。
java兩大機(jī)制:
???? 一男旗、JAVA虛擬機(jī)機(jī)制JVM。
??? JAVA它是跨平臺性的欣鳖,每一個操作系統(tǒng)都有其相對應(yīng)的JVM察皇,就像我們可以在WINDOS上下載一個安卓模擬器來玩安卓游戲。
???? 二泽台、JAVA的垃圾回收機(jī)制
?? ?在C++中什荣,對象所占的內(nèi)存在程序結(jié)束運(yùn)行之前一直被占用,在明確釋放之前不能分配給其它對象稻爬;而在Java中,當(dāng)沒有對象引用指向原先分配給某個對象的內(nèi)存時因篇,該內(nèi)存便成為垃圾笔横。JVM的一個系統(tǒng)級線程會自動釋放該內(nèi)存塊竞滓。垃圾回收意味著程序不再需要的對象是"無用信息",這些信息將被丟棄吹缔。
java的JDK,JRE,JVM:
??? JDK為JAVA開發(fā)工具,包括JAVA運(yùn)行環(huán)境(JRE)厢塘,一些開發(fā)的類庫等等。
??? JRE為JAVA的運(yùn)行環(huán)境
??? JVM為JAVA虛擬機(jī)晚碾,包含在JRE里邊抓半。
??? 我們開發(fā)的實際情況是:我們利用JDK(調(diào)用JAVA API)開發(fā)了屬于我們自己的JAVA程序后,通過JDK中的編譯程序(javac)將我們的文本java文件編譯成JAVA字節(jié)碼格嘁,在JRE上運(yùn)行這些JAVA字節(jié)碼笛求,JVM解析這些字節(jié)碼糕簿,映射到CPU指令集或OS的系統(tǒng)調(diào)用。
為什么要配置JAVA的環(huán)境變量:
1. PATH環(huán)境變量懂诗。作用是指定命令搜索路徑,在shell下面執(zhí)行命令時殃恒,它會到PATH變量所指定的路徑中查找看是否能找到相應(yīng)的命令程序。我們需要把 jdk安裝目錄下的bin目錄增加到現(xiàn)有的PATH變量中病附,bin目錄中包含經(jīng)常要用到的可執(zhí)行文件如javac/java/javadoc等待,設(shè)置好 PATH變量后胖喳,就可以在任何目錄下執(zhí)行javac/java等工具了贮竟。
2. CLASSPATH環(huán)境變量较剃。作用是指定類搜索路徑,要使用已經(jīng)編寫好的類写穴,前提當(dāng)然是能夠找到它們了雌贱,JVM就是通過CLASSPTH來尋找類的。我們 需要把jdk安裝目錄下的lib子目錄中的dt.jar和tools.jar設(shè)置到CLASSPATH中欣孤,當(dāng)然,當(dāng)前目錄“.”也必須加入到該變量中降传。在JAVA1.5之后就不需要再配置CLASSPATH了.
3. JAVA_HOME環(huán)境變量。它指向jdk的安裝目錄声旺,Eclipse/NetBeans/Tomcat等軟件就是通過搜索JAVA_HOME變量來找到并使用安裝好的jdk段只。
第一個HELLO WORLD程序:
public class HelloWorld {
public static void main(String[]agrs){
System.out.println("HelloWorld!");
}
}
執(zhí)行入口為MAIN函數(shù)。