摘要:流行的編程語言是一項(xiàng)用于開發(fā)應(yīng)用程序的技術(shù),可以讓變得更有意思和更實(shí)用。年月,由于甲骨文對(duì)于社區(qū)的不友善,因此揚(yáng)言將退出。在運(yùn)行時(shí),平臺(tái)中的解釋器對(duì)這些字節(jié)碼進(jìn)行解釋執(zhí)行,執(zhí)行過程中需要的類在聯(lián)接階段被載入到運(yùn)行環(huán)境中。
流行的編程語言Java
Java 是一項(xiàng)用于開發(fā)應(yīng)用程序的技術(shù),可以讓 Web 變得更有意思和更實(shí)用。 Java 與 javascript 并不相同,后者是一種用于創(chuàng)建 Web 頁的簡單技術(shù),只能在瀏覽器中運(yùn)行。一.Java語言的發(fā)展歷史
使用 Java 可以玩游戲、上載照片、聯(lián)機(jī)聊天以及參與虛擬體驗(yàn),并能夠使用聯(lián)機(jī)培訓(xùn)、網(wǎng)上銀行和互動(dòng)地圖等服務(wù)。如果沒有安裝 Java,則許多應(yīng)用程序和網(wǎng)站都無法工作。
默認(rèn)情況下,Java 將自動(dòng)通知您有新的更新可供安裝。 為確保軟件最新和計(jì)算機(jī)安全,請(qǐng)您務(wù)必接受并安裝更新。 如果您在 Windows 計(jì)算機(jī)上收到了更新 Java 的通知但您記得從未下載或安裝它,則有可能是 Java 已經(jīng)隨您的新計(jì)算機(jī)預(yù)先加載。
1995年5月23日,Java語言誕生
1996年1月,第一個(gè)JDK-JDK1.0誕生
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)版(JavaSE,以前是J2SE)、企業(yè)版(JavaEE以前是J2EE)和微型版(JavaME,以前是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年04月20日,甲骨文74億美元收購Sun。取得java的版權(quán)。
2010年11月,由于甲骨文對(duì)于Java社區(qū)的不友善,因此Apache揚(yáng)言將退出JCP[4]。
2011年7月28日,甲骨文發(fā)布java7.0的正式版。
2014年3月18日,Oracle公司發(fā)表Java SE 8。
Java語言的語法與C語言和C++語言很接近,使得大多數(shù)程序員很容易學(xué)習(xí)和使用。另一方面,Java丟棄了C++中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動(dòng)的強(qiáng)制類型轉(zhuǎn)換。特別地,Java語言不使用指針,而是引用。并提供了自動(dòng)的廢料收集,使得程序員不必為內(nèi)存管理而擔(dān)憂。
02.面向?qū)ο?/b>Java語言提供類、接口和繼承等面向?qū)ο蟮奶匦?,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實(shí)現(xiàn)機(jī)制(關(guān)鍵字為implements)。Java語言全面支持動(dòng)態(tài)綁定,而C++語言只對(duì)虛函數(shù)使用動(dòng)態(tài)綁定。總之,Java語言是一個(gè)純的面向?qū)ο蟪绦蛟O(shè)計(jì)語言。
03.分布式Java語言支持Internet應(yīng)用的開發(fā),在基本的Java應(yīng)用編程接口中有一個(gè)網(wǎng)絡(luò)應(yīng)用編程接口(java net),它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠(yuǎn)程方法激活)機(jī)制也是開發(fā)分布式應(yīng)用的重要手段。
04.健壯Java的強(qiáng)類型機(jī)制、異常處理、垃圾的自動(dòng)收集等是Java程序健壯性的重要保證。對(duì)指針的丟棄是Java的明智選擇。Java的安全檢查機(jī)制使得Java更具健壯性。
05.安全Java通常被用在網(wǎng)絡(luò)環(huán)境中,為此,Java提供了一個(gè)安全機(jī)制以防惡意代碼的攻擊。除了Java語言具有的許多安全特性以外,Java對(duì)通過網(wǎng)絡(luò)下載的類具有一個(gè)安全防范機(jī)制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、字節(jié)代碼檢查,并提供安全管理機(jī)制(類SecurityManager)讓Java應(yīng)用設(shè)置安全哨兵。
06.體系結(jié)構(gòu)中立Java程序(后綴為java的文件)在Java平臺(tái)上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為class的文件),然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。這種途徑適合于異構(gòu)的網(wǎng)絡(luò)環(huán)境和軟件的分發(fā)。
07.可移植這種可移植性來源于體系結(jié)構(gòu)中立性,另外,Java還嚴(yán)格規(guī)定了各個(gè)基本數(shù)據(jù)類型的長度。Java系統(tǒng)本身也具有很強(qiáng)的可移植性,Java編譯器是用Java實(shí)現(xiàn)的,Java的運(yùn)行環(huán)境是用ANSI C實(shí)現(xiàn)的。
08.解釋型如前所述,Java程序在Java平臺(tái)上被編譯為字節(jié)碼格式,然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。在運(yùn)行時(shí),Java平臺(tái)中的Java解釋器對(duì)這些字節(jié)碼進(jìn)行解釋執(zhí)行,執(zhí)行過程中需要的類在聯(lián)接階段被載入到運(yùn)行環(huán)境中。
09.高性能與那些解釋型的高級(jí)腳本語言相比,Java的確是高性能的。事實(shí)上,Java的運(yùn)行速度隨著JIT(Just-In-Time)編譯器技術(shù)的發(fā)展越來越接近于C++。
10.多線程在Java語言中,線程是一種特殊的對(duì)象,它必須由Thread類或其子(孫)類來創(chuàng)建。通常有兩種方法來創(chuàng)建線程:其一,使用型構(gòu)為Thread(Runnable)的構(gòu)造子將一個(gè)實(shí)現(xiàn)了Runnable接口的對(duì)象包裝成一個(gè)線程,其二,從Thread類派生出子類并重寫run方法,使用該子類創(chuàng)建的對(duì)象即為線程。值得注意的是Thread類已經(jīng)實(shí)現(xiàn)了Runnable接口,因此,任何一個(gè)線程均有它的run方法,而run方法中包含了線程所要運(yùn)行的代碼。線程的活動(dòng)由一組方法來控制。Java語言支持多個(gè)線程的同時(shí)執(zhí)行,并提供多線程之間的同步機(jī)制(關(guān)鍵字為synchronized)。
11.動(dòng)態(tài)Java語言的設(shè)計(jì)目標(biāo)之一是適應(yīng)于動(dòng)態(tài)變化的環(huán)境。Java程序需要的類能夠動(dòng)態(tài)地被載入到運(yùn)行環(huán)境,也可以通過網(wǎng)絡(luò)來載入所需要的類。這也有利于軟件的升級(jí)。另外,Java中的類有一個(gè)運(yùn)行時(shí)刻的表示,能進(jìn)行運(yùn)行時(shí)刻的類型檢查。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/73196.html
摘要:請(qǐng)你說說這門語言的優(yōu)點(diǎn)這是看你對(duì)的理解程序。是一門面向?qū)ο蟮木幊陶Z言,使用它編寫出來的程序易讀且更為容易。自帶了很好的安全機(jī)制,如強(qiáng)類型轉(zhuǎn)換垃圾回收器異常處理安全檢查等等。是由改進(jìn)重新設(shè)計(jì)而來的,且去除了中部分復(fù)雜的習(xí)慣。 本博客 貓叔的博客,轉(zhuǎn)載請(qǐng)申明出處 前言 本系列為貓叔綜合整理的Java面試題系列,如有雷同不勝榮幸。 001、請(qǐng)你說說Java這門語言的優(yōu)點(diǎn)? PS:這是看你對(duì)J...
摘要:為表示只有一個(gè)實(shí)例。不會(huì)有數(shù)據(jù)丟失,所以搜索結(jié)果依然是完整的。高可用會(huì)弱化把想象成一個(gè)需要及時(shí)調(diào)查的警告。項(xiàng)目運(yùn)行起來后,可以發(fā)送寫入和查詢的請(qǐng)求來測(cè)試功能的正確性。 這篇教程主要是對(duì)在入門的elasticsearch的一個(gè)記錄。 ES 集群安裝 安裝環(huán)境 基于 Dokcer ,單機(jī)安裝 Docker 版集群。使用版本如下: Elasticsearch 5.3.2 Kibana 5....
摘要:一圖讀懂線程與進(jìn)程一個(gè)進(jìn)程可以包含一個(gè)或多個(gè)線程。棧幀中保存了該函數(shù)的返回地址和局部變量。公眾號(hào)貓說現(xiàn)架構(gòu)設(shè)計(jì)碼農(nóng)兼創(chuàng)業(yè)技術(shù)顧問,不羈平庸,熱愛開源,雜談程序人生與不定期干貨。 本博客 貓叔的博客,轉(zhuǎn)載請(qǐng)申明出處 前言 本系列將由淺入深,學(xué)習(xí)Java并發(fā)多線程。 一圖讀懂線程與進(jìn)程 showImg(https://segmentfault.com/img/remote/14600000...
摘要:單一職責(zé)原則可以看做是低耦合高內(nèi)聚在面向?qū)ο笤瓌t上的引申,將職責(zé)定義為引起變化的原因,以提高內(nèi)聚性來減少引起變化的原因。抽象的穩(wěn)定性決定了系統(tǒng)的穩(wěn)定性,因?yàn)槌橄笫遣蛔兊?,依賴于抽象是面向?qū)ο笤O(shè)計(jì)的精髓,也是依賴倒置原則的核心。 Java-面向?qū)ο?什么是面過程 把題分解成一個(gè)一個(gè)步驟,每個(gè)步驟用函數(shù)實(shí)現(xiàn),依次調(diào)用即可。就是說,在進(jìn)行面向過程 編程的時(shí)候,不需要考慮那么多,上來先定義一個(gè)...
閱讀 4526·2022-09-16 13:49
閱讀 1471·2021-11-22 15:12
閱讀 1592·2021-09-09 09:33
閱讀 1110·2019-08-30 13:15
閱讀 1805·2019-08-29 15:30
閱讀 751·2019-08-27 10:52
閱讀 2696·2019-08-26 17:41
閱讀 1962·2019-08-26 12:11