Java
Java是一種廣泛使用的計(jì)算機(jī)編程語言,擁有跨平臺(tái)、面向?qū)ο蟆⒎盒途幊痰奶匦裕瑥V泛應(yīng)用于企業(yè)級(jí)Web應(yīng)用開發(fā)和移動(dòng)應(yīng)用開發(fā)赘被。
Java編程語言的風(fēng)格十分接近C++語言。
- 繼承了C++語言面向?qū)ο蠹夹g(shù)的核心肖揣,舍棄了容易引起錯(cuò)誤的指針民假,以引用取代;
- 移除了C++中的運(yùn)算符重載和多重繼承特性龙优,用接口取代羊异;
- 增加垃圾回收器功能。
- 在Java SE 1.5版本中引入了泛型編程彤断、類型安全的枚舉野舶、不定長(zhǎng)參數(shù)和自動(dòng)裝/拆箱特性。
Sun公司對(duì)Java語言的解釋是:“Java編程語言是個(gè)簡(jiǎn)單宰衙、面向?qū)ο笃降馈⒎植际健⒔忉屝怨┝丁⒔岩晃荨踩c系統(tǒng)無關(guān)窘疮、可移植、高性能冀墨、多線程和動(dòng)態(tài)的語言”
Sun公司(英語:Sun Microsystems)闸衫,是一家曾經(jīng)存在的公司,臺(tái)灣稱昇陽電腦诽嘉,中國(guó)大陸稱太陽計(jì)算機(jī)系統(tǒng)蔚出,創(chuàng)建于1982年2月24日,1986年在美國(guó)納斯達(dá)克上市虫腋,后于2009年被甲骨文公司收購(gòu)骄酗,結(jié)束長(zhǎng)達(dá)27余年的公司歷史。
Java不同于一般的編譯語言或解釋型語言岔乔。它首先將源代碼編譯成字節(jié)碼酥筝,再依賴各種不同平臺(tái)上的虛擬機(jī)來解釋執(zhí)行字節(jié)碼滚躯,從而具有“一次編寫雏门,到處運(yùn)行”的跨平臺(tái)特性。在早期JVM中掸掏,這在一定程度上降低了Java程序的運(yùn)行效率茁影。但在J2SE1.4.2發(fā)布后,Java的運(yùn)行速度有了大幅提升丧凤。
當(dāng)使用十六進(jìn)制編輯器打開由Java源代碼編譯出的二進(jìn)制文件(.class文件)的話募闲,最前面的32位將顯示為CA FE BA BE,即詞組“CAFE BABE”(咖啡屋寶貝)愿待。
語言特點(diǎn)(包括并不限于):
-
面向?qū)ο?/h4>
-
跨平臺(tái)性(分布性)
-
自動(dòng)回收垃圾
語言特性(面向?qū)ο蟮奶卣鳎?/h2>
-
封裝:
封裝:
在抽象中將屬性與方法寫在一個(gè)類中就是封裝浩螺,而封裝就是為了保證抽象出來的特征和方法的安全性,封裝就是包裝的過程仍侥,注意封裝不是絕對(duì)的封裝要出,如果其他程序要獲取已經(jīng)封裝好的數(shù)據(jù),就要通過程序指定的接口或方法才能獲取农渊。
-
繼承:
繼承性是子類自動(dòng)共享父類數(shù)據(jù)結(jié)構(gòu)和方法的機(jī)制患蹂,這是類之間的一種關(guān)系。在定義和實(shí)現(xiàn)一個(gè)類的時(shí)候砸紊,可以在一個(gè)已經(jīng)存在的類的基礎(chǔ)之上來進(jìn)行传于,把這個(gè)已經(jīng)存在的類所定義的內(nèi)容作為自己的內(nèi)容,并加入若干新的內(nèi)容醉顽。
-
多態(tài):
多態(tài)性是指相同的操作或函數(shù)沼溜、過程可作用于多種類型的對(duì)象上并獲得不同的結(jié)果。不同的對(duì)象游添,收到同一消息可以產(chǎn)生不同的結(jié)果系草,這種現(xiàn)象稱為多態(tài)性弹惦。
-
抽象:
抽象性是指將具有一致的數(shù)據(jù)結(jié)構(gòu)(屬性)和行為(操作)的對(duì)象抽象成類。一個(gè)類就是這樣一種抽象悄但,它反映了與應(yīng)用有關(guān)的重要性質(zhì)棠隐,而忽略其他一些無關(guān)內(nèi)容。任何類的劃分都是主觀的檐嚣,但必須與具體的應(yīng)用有關(guān)助泽。
版本歷史:
- 1995年5月23日,Java語言誕生
- 1996年1月嚎京,第一個(gè)JDK誕生
- 1996年4月嗡贺,10個(gè)最主要的操作系統(tǒng)供應(yīng)商申明將在其產(chǎn)品中嵌入JAVA技術(shù)
- 1996年9月,約8.3萬個(gè)網(wǎng)頁應(yīng)用了JAVA技術(shù)來制作
- 1997年2月18日鞍帝,JDK1.1發(fā)布
- 1997年4月2日诫睬,JavaOne會(huì)議召開,參與者逾一萬人帕涌,創(chuàng)當(dāng)時(shí)全球同類會(huì)議規(guī)模之紀(jì)錄
- 1997年9月JavaDeveloperConnection社區(qū)成員超過十萬
- 1998年2月摄凡,JDK1.1被下載超過2,000,000次
- 1998年12月8日,JAVA2企業(yè)平臺(tái)J2EE發(fā)布
- 1999年6月蚓曼,SUN公司發(fā)布Java的三個(gè)版本:標(biāo)準(zhǔn)版(J2SE)亲澡、企業(yè)版(J2EE)和微型版(J2ME)
- 2000年5月8日,JDK1.3發(fā)布
- 2000年5月29日纫版,JDK1.4發(fā)布
- 2001年6月5日床绪,NOKIA宣布,到2003年將出售1億部支持Java的手機(jī)
- 2001年9月24日其弊,J2EE1.3發(fā)布
- 2002年2月26日癞己,J2SE1.4發(fā)布,自此Java的計(jì)算能力有了大幅提升
- 2004年9月30日18:00PM梭伐,J2SE1.5發(fā)布痹雅,成為Java語言發(fā)展史上的又一里程碑。為了表示該版本的重要性籽御,J2SE1.5更名為Java SE 5.0
- 2005年6月练慕,JavaOne大會(huì)召開,SUN公司公開Java SE 6技掏。此時(shí)铃将,Java的各種版本已經(jīng)更名,以取消其中的數(shù)字“2”:J2EE更名為Java EE哑梳,J2SE更名為Java SE劲阎,J2ME更名為Java ME
- 2006年12月,SUN公司發(fā)布JRE6.0
- 2009年12月鸠真,SUN公司發(fā)布Java EE 6
- 2010年11月悯仙,由于Oracle公司對(duì)于Java社群的不友善龄毡,因此Apache揚(yáng)言將退出JCP
- 2011年7月28日,Oracle公司發(fā)布Java SE 7
- 2014年3月18日锡垄,Oracle公司發(fā)表Java SE 8
- 2017年9月21日沦零,Oracle公司發(fā)表Java SE 9
- 2018年3月21日,Oracle公司發(fā)表Java SE 10
- 2018年9月25日货岭,Java SE 11發(fā)布
Java關(guān)鍵字
下面列出了Java關(guān)鍵字路操。這些關(guān)鍵字不能用于常量、變量千贯、和任何標(biāo)識(shí)符的名稱屯仗。
類別 | 關(guān)鍵字 | 說明 |
---|---|---|
訪問控制 | private | 私有的 |
protected | 受保護(hù)的 | |
public | 公共的 | |
類、方法和變量修飾符 | abstract | 聲明抽象 |
class | 類 | |
extends | 擴(kuò)允,繼承 | |
final | 最終值,不可改變的 | |
implements | 實(shí)現(xiàn)(接口) | |
interface | 接口 | |
native | 本地搔谴,原生方法(非Java實(shí)現(xiàn)) | |
new | 新,創(chuàng)建 | |
static | 靜態(tài) | |
strictfp | 嚴(yán)格,精準(zhǔn) | |
synchronized | 線程,同步 | |
transient | 短暫 | |
volatile | 易失 | |
程序控制語句 | break | 跳出循環(huán) |
case | 定義一個(gè)值以供switch選擇 | |
continue | 繼續(xù) | |
default | 默認(rèn) | |
do | 運(yùn)行 | |
else | 否則 | |
for | 循環(huán) | |
if | 如果 | |
instanceof | 實(shí)例 | |
return | 返回 | |
switch | 根據(jù)值選擇執(zhí)行 | |
while | 循環(huán) | |
錯(cuò)誤處理 | assert | 斷言表達(dá)式是否為真 |
catch | 捕捉異常 | |
finally | 有沒有異常都執(zhí)行 | |
throw | 拋出一個(gè)異常對(duì)象 | |
throws | 聲明一個(gè)異晨啵可能被拋出 | |
try | 捕獲異常 | |
包相關(guān) | import | 引入 |
package | 包 | |
基本類型 | boolean | 布爾型 |
byte | 字節(jié)型 | |
char | 字符型 | |
double | 雙精度浮點(diǎn) | |
float | 單精度浮點(diǎn) | |
int | 整型 | |
long | 長(zhǎng)整型 | |
short | 短整型 | |
null | 空 | |
變量引用 | super | 父類,超類 |
this | 本類 | |
void | 無返回值 | |
保留關(guān)鍵字 | goto | 是關(guān)鍵字,但不能使用 |
const | 是關(guān)鍵字敦第,但不能使用 |
Hello World
下面這個(gè)程序顯示“Hello, world!”然后結(jié)束運(yùn)行峰弹,注意java.lang包是自動(dòng)加載的,所以不需要在程序之前加入import java.lang.*;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!"); // Prints the string to the console.
}
}