【自學(xué)Java】Java概述

大綱

Java概述.png

Java語(yǔ)言發(fā)展

Java語(yǔ)言的誕生

1990 年末,Sun 公司成立了一個(gè)有 James Gosling 領(lǐng)導(dǎo)的 “Green計(jì)劃”,準(zhǔn)備為下一代智能家電編寫(xiě)一個(gè)控制系統(tǒng)。

團(tuán)隊(duì)很多成員發(fā)現(xiàn) C++ 在嵌入式平臺(tái)方面有很大的局限性,例如:太復(fù)雜、系統(tǒng)資源有限、缺少垃圾回收機(jī)制、可移植性、分布式、多線程等。Sun 團(tuán)隊(duì)決定開(kāi)發(fā)一種新的語(yǔ)言,取名 Oak。1992年,Green 團(tuán)隊(duì)完成了新平臺(tái)的部分功能,同年 11 月,Green 計(jì)劃被轉(zhuǎn)化成 “ FirstPerson 有限公司”

FirstPerson 團(tuán)隊(duì)在華納公司發(fā)布電視機(jī)頂盒發(fā)布會(huì)被有限電視界認(rèn)為給用戶(hù)太多權(quán)利而爭(zhēng)標(biāo)失敗,與 3DO 公司另一筆機(jī)頂盒交易也沒(méi)有成功。Green 項(xiàng)目夭折,F(xiàn)irstPerson 團(tuán)隊(duì)一半成員被調(diào)。

1994 年夏天,互聯(lián)網(wǎng)和瀏覽器出現(xiàn),Gosling 意識(shí)到這是個(gè)機(jī)會(huì),將 Oka 進(jìn)行小規(guī)模改造,94 年秋,團(tuán)隊(duì)中 Naughton 與 Jonathan 完成了第一個(gè) Java 語(yǔ)言網(wǎng)頁(yè)瀏覽器,因 Oka 被注冊(cè),改名為 Java。

java 名字由來(lái):java 是爪哇島咖啡名字,據(jù)說(shuō)是程序員在苦思冥想該起什么名字比較好的時(shí)候,下樓點(diǎn)了一杯咖啡,感覺(jué)味道很不錯(cuò),就命名為 java。

1995 年初,Sun 公司發(fā)布 Java 語(yǔ)言,想互聯(lián)網(wǎng)所有用戶(hù)公開(kāi),包括源代碼。幾個(gè)月后,Java 大火。

Java語(yǔ)言的發(fā)展歷程

  • 1995 年發(fā)布第一版 java。
  • 1996 年 1 月,Sun 公司發(fā)布 JDK1.0。
  • 1997 年 2 月,JDK 1.1 面試。
  • 1998 年 12 月 8 日。發(fā)布 JDK1.2。將 Java 分成:J2EE 企業(yè)級(jí) 、J2SE 桌面級(jí)、 J2ME 移動(dòng)端三個(gè)版本,將 API 分成核心 API 可選 API 特殊 API。
  • 1999 年 4 月 27 日。HotSpot 虛擬機(jī)發(fā)布。HotSpot 虛擬機(jī)發(fā)布是作為 JDK 1.2 的附加程序提供的,后來(lái)它成為了 JDK 1.3 及之后所有版本的 Sun JDK 的默認(rèn)虛擬機(jī)。
  • 2002 年 2 月發(fā)布 JDK1.4 涌現(xiàn)眾多基于Java語(yǔ)言開(kāi)發(fā)框架大量企業(yè)級(jí)應(yīng)用服務(wù)器。
  • 2004 年 10 月發(fā)布 JDK1.5,改名為 JavaSE5.0。 Java EE,Java ME 推出了自己的MVC框架規(guī)范。
  • 2005 年 6 月,Sun 公司發(fā)布了 Java SE 6。此時(shí) Java 的各種版本已經(jīng)更名,已取消其中的數(shù)字 2,如 J2EE 更名為 JavaEE,J2SE 更名為 JavaSE,J2ME 更名為 JavaME。
  • 2009 年 4 月 20 日, Oracle 公司每股 7.5 美元收購(gòu) Sun 總價(jià)值 74 億美元。
  • 2017 年 9 月 22 日,Oracle 公司發(fā)布了 Java SE 9。
  • 2018 年 3 月,Java SE 10。
  • 2018 年 9 月,Java SE 11。
  • 2019 年 3 月,Java SE 12。
  • 2019 年 9 月,Java SE 13。

從 JDK9 之后,Oracle 采用了新的發(fā)布周期:每 6 個(gè)月發(fā)布一個(gè)版本,每 3 年發(fā)布一個(gè) LTS(Long Term Support 長(zhǎng)期支持) 版本。JDK14 是繼 JDK9 之后發(fā)布的第四個(gè)版本, 該版本為非 LTS 版本,最新的 LTS 版本為 JDK11。

Java語(yǔ)言特點(diǎn)

Java語(yǔ)言特點(diǎn)教程

簡(jiǎn)單性

Java 看起來(lái)的設(shè)計(jì)很像 c++ ,但是為了使語(yǔ)言小和容易熟悉,設(shè)計(jì)者們把 c++ 語(yǔ)言中的需要可用的特征都去掉了。Java 中沒(méi)有指針。Java 能夠自動(dòng)處理對(duì)象的引用和間接引用,實(shí)現(xiàn)自動(dòng)的無(wú)用單元收集,用戶(hù)不管關(guān)心存儲(chǔ)管理問(wèn)題,能夠更多的時(shí)間和精力都花在研發(fā)上面。

面向?qū)ο?/h3>

Java 是一個(gè)面向?qū)ο蟮恼Z(yǔ)言。使得代碼調(diào)用更加清晰,不需要用過(guò)程來(lái)思考編程。

分布性

Java 語(yǔ)言支持網(wǎng)絡(luò)通信,它可以讓多個(gè)應(yīng)用單獨(dú)部署,互相之間進(jìn)行調(diào)用。

編譯和解釋性

Java 編譯程序生產(chǎn)字節(jié)碼 (byte-code),而不是通常的機(jī)器碼。Java 代碼編譯后不能直接運(yùn)行,它是解釋運(yùn)行在 JVM 的。

穩(wěn)健性

Java 是一個(gè)強(qiáng)類(lèi)型語(yǔ)言,它允許擴(kuò)展編譯時(shí)檢查潛在的類(lèi)型不匹配問(wèn)題的功能。它不支持指針,消除重寫(xiě)存儲(chǔ)數(shù)據(jù)的可能性。異常處理也是它穩(wěn)健性的另一個(gè)特征。

安全性

Java 的存儲(chǔ)分配模型是它防御惡意代碼的主要方法之一。Java 沒(méi)有指針,所以程序員無(wú)法對(duì)存儲(chǔ)器里面的數(shù)據(jù)進(jìn)行直接操作。

可移植性

只要是安裝了 jre 的環(huán)境,都可以運(yùn)行相應(yīng)的 Java 程序。

高性能

Java 是一種先編譯后解釋的語(yǔ)言,所以它不如全編譯性語(yǔ)言快。但是有些情況下性能是很要緊的,為了支持這些情況,Java 設(shè)計(jì)者制作了“及時(shí)”編譯程序,它能在運(yùn)行時(shí)把 Java 字節(jié)碼翻譯成特定 CPU(中央處理器)的機(jī)器代碼,也就是實(shí)現(xiàn)全編譯了。

多線程性

Java 是支持多線程的,在某些場(chǎng)景下合理使用多線程的方法會(huì)讓程序處理效果變快。

動(dòng)態(tài)性

Java 語(yǔ)言是一個(gè)動(dòng)態(tài)的語(yǔ)言,它的類(lèi)加載只要格式正確,可以通過(guò)網(wǎng)絡(luò)獲取也可以在文件中獲取。

Java語(yǔ)言特點(diǎn)總結(jié)

正是由于 Java 有以上的特點(diǎn),才使 Java 在編程語(yǔ)言市場(chǎng)中占有重要的地位。在大型的網(wǎng)站建設(shè)中,Java 充當(dāng)了重要的角色。

Java名詞解釋

Java名詞解釋

JDK

Java Development Kit。Java 開(kāi)發(fā)工具包,是程序員使用 Java 語(yǔ)言編寫(xiě) Java 程序所需的開(kāi)發(fā)工具包,是提供給程序員使用的。

JRE

Java Runtim Environment。Java 運(yùn)行時(shí)環(huán)境,包含了 Java 虛擬機(jī),Java 基礎(chǔ)類(lèi)庫(kù)。是使用 Java 語(yǔ)言編寫(xiě)的程序運(yùn)行所需要的軟件環(huán)境,是提供給想運(yùn)行 Java 程序的用戶(hù)使用的。

包就是我們平時(shí)可以認(rèn)為的那種文件夾,在文件夾里面可以將自己歸置的文件存放在里面,而在 Java里面就不叫文件夾,而叫包,里面存放類(lèi)信息。

類(lèi)

存放在包下面,以 .Java 結(jié)尾的文件。里面包含了一系列共性的屬性和行為。比如貓類(lèi),里面可以有屬性,顏色,品種,也可以有方法比如吃飯。Java 中類(lèi)可以分為普通類(lèi),抽象類(lèi),接口,嵌套類(lèi)。

普通類(lèi)

它的語(yǔ)法是 [訪問(wèn)修飾符] class 類(lèi)名 [implements/extends 類(lèi)名] {},其中有一個(gè)特殊的類(lèi) Object 類(lèi),它是所有類(lèi)的父類(lèi)。

抽象類(lèi)

當(dāng)一個(gè)類(lèi)沒(méi)有足夠的信息描述一個(gè)具體的事物的時(shí)候,就需要一個(gè)抽象類(lèi)。它的語(yǔ)法是 [訪問(wèn)修飾符] abstract class 類(lèi)名 {}。它是不能夠被實(shí)例化對(duì)象的。

接口

接口中提供了一系列方法的定義,沒(méi)有實(shí)現(xiàn),所有實(shí)現(xiàn)了接口的類(lèi)都需要自己實(shí)現(xiàn)里面的方法。它的語(yǔ)法是 public interface InterfaceName{}

方法

實(shí)現(xiàn)某個(gè)功能的代碼塊。

變量

可以用來(lái)存儲(chǔ)數(shù)據(jù)的元素,但是這個(gè)元素是可以變化的,所以稱(chēng)為變量。

常量

一單值已經(jīng)確認(rèn)就不能夠變化。

訪問(wèn)修飾符

訪問(wèn)修飾符用來(lái)控制類(lèi)里面的屬性和方法的訪問(wèn)權(quán)限。Java 中有 public、private、protected修飾符。

參數(shù)

在方法中傳遞的值,比如計(jì)算兩個(gè)數(shù)相加,需要有兩個(gè)數(shù)字,則,這個(gè)時(shí)候傳遞的兩個(gè)數(shù)字就叫參數(shù)。

Java名詞解釋總結(jié)

這些名詞是在學(xué)習(xí) Java 的時(shí)候高頻出現(xiàn)的名詞。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容