溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java是怎樣產(chǎn)生的

發(fā)布時(shí)間:2022-01-11 15:41:04 來源:億速云 閱讀:125 作者:柒染 欄目:編程語言

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)Java是怎樣產(chǎn)生的,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

Java是由James Gosling,Patrick Naughton,Chris Warth,Ed Frank和Mike Sheridan于1991年在Sun Microsystems公司設(shè)計(jì)出來的。開發(fā)第一個(gè)版本花了18個(gè)月。該語言開始名叫“Oak”,于1995年更名為“Java”。從1992 的秋天Oak問世到1995的春天公開發(fā)布Java
語言,許多人對(duì)Java的設(shè)計(jì)和改進(jìn)做出了貢獻(xiàn)。Bill Joy,Arthur van Hoff,Jonathan Payne,F(xiàn)rank Yellin和Tim Lindholm是主要的貢獻(xiàn)者,正是他們的貢獻(xiàn)使最初原型得以成熟。
說起來多少有些令人吃驚,Java的最初推動(dòng)力并不是因特網(wǎng)!而是源于對(duì)獨(dú)立于平臺(tái)(也就是體系結(jié)構(gòu)中立)語言的需要,這種語言可創(chuàng)建能夠嵌入微波爐、遙控器等各種家用電器設(shè)備的軟件。用作控制器的CPU芯片是多種多樣的,但C和C++以及其他絕大多數(shù)語言的缺點(diǎn)是只能對(duì)特定目標(biāo)進(jìn)行編譯。盡管為任何類型的CPU芯片編譯C++程序是可能的,但這樣做需要一個(gè)完整的以該CPU為目標(biāo)的C++編譯器,而創(chuàng)建編譯器是一項(xiàng)既耗資巨大又耗時(shí)較長(zhǎng)的工作。因此需要一種簡(jiǎn)單且經(jīng)濟(jì)的解決方案。為了找到這樣一種方案,Gosling和其他人開始一起致力于開發(fā)一種可移植、跨平臺(tái)的語言,該語言能夠生成運(yùn)行于不同環(huán)境、不同CPU芯片上的代碼。他們的努力最終促成了Java的誕生。
在Java的一些細(xì)節(jié)被設(shè)計(jì)出來的同時(shí),第二個(gè)并且也是最重要的因素出現(xiàn)了,該因素將對(duì)Java的未來起著至關(guān)重要的作用。這第二個(gè)因素當(dāng)然就是萬維網(wǎng)(WWW)。如果萬維網(wǎng)(WWW)的成型和Java的實(shí)現(xiàn)不是同時(shí)發(fā)生的話,那么Java可能保持它有用、但默默無聞的用于電子消費(fèi)品編程語言的狀態(tài)。然而,隨著萬維網(wǎng)的出現(xiàn),Java被推到計(jì)算機(jī)語言設(shè)計(jì)的最前沿,因?yàn)槿f維網(wǎng)也需要可移植的程序。絕大多數(shù)程序員在涉足編程領(lǐng)域時(shí)就知道可移植的程序像他們的理想一樣難以捉摸。
盡管人們對(duì)高效的、可移植的(獨(dú)立于平臺(tái))編程方式的追尋幾乎和編程歷史一樣久遠(yuǎn),但它總是讓位于其他的更為緊迫的問題。此外,因?yàn)橛?jì)算機(jī)業(yè)被 Intel,Macintosh和UNIX這3個(gè)競(jìng)爭(zhēng)對(duì)手壟斷,大多數(shù)程序員都在其中的某個(gè)領(lǐng)域內(nèi)長(zhǎng)期工作,所以對(duì)可移植語言的需求就不是那么迫切。但是,隨著因特網(wǎng)和Web的出現(xiàn),關(guān)于可移植性語言的舊問題又被提了出來。畢竟,因特網(wǎng)由不同的、分布式的系統(tǒng)組成,其中包括各種類型的計(jì)算機(jī)、操作系統(tǒng)和 CPU。盡管許多類型的平臺(tái)都可以與因特網(wǎng)連接,但用戶仍希望他們能夠運(yùn)行同樣的程序。曾經(jīng)是一個(gè)令人煩惱卻無需優(yōu)先考慮的問題現(xiàn)在變成了急需解決的問題。
1993年,Java設(shè)計(jì)小組的成員發(fā)現(xiàn)他們?cè)诰幹魄度胧娇刂破鞔a時(shí)經(jīng)常遇到的可移植性問題,在編制因特網(wǎng)代碼的過程中也出現(xiàn)了。事實(shí)上,開始被設(shè)計(jì)為解決小范圍問題的Java語言同樣可以被用在大范圍的因特網(wǎng)上。這個(gè)認(rèn)識(shí)使他們將Java的重心由電子消費(fèi)品轉(zhuǎn)移到Internet編程。因此,中立體系結(jié)構(gòu)編程語言的需要是促使Java誕生的源動(dòng)力,而Internet卻最終導(dǎo)致了Java的成功。
正如前面提到的,Java的大部分特性是從C和C++中繼承的。Java設(shè)計(jì)人員之所以故意這么做,主要是因?yàn)樗麄冇X得,在新語言中使用熟悉的C 語法及模仿C++面向?qū)ο蟮奶匦?,將使他們的語言對(duì)經(jīng)驗(yàn)豐富的C/C++程序員有更大的吸引力。除了表面類似外,其他一些促使C和C++成功的因素也幫了 Java的忙。首先,Java的設(shè)計(jì)、測(cè)試、精煉由真正從事編程工作的人員完成,它根植于設(shè)計(jì)它的人員的需要和經(jīng)驗(yàn),因而也是一個(gè)程序員自己的語言。
其次,Java是緊密結(jié)合的且邏輯上是協(xié)調(diào)一致的。最后,除了那些Internet環(huán)境強(qiáng)加的約束以外,Java給了編程人員完全的控制權(quán)。如果你程序編的好,你編寫的程序就能反映出這一點(diǎn)。相反,如果你的編程手法拙劣,也能在你的程序中反映出來。換一種說法,Java并不是訓(xùn)練新手的語言,而是供專業(yè)編程人員使用的語言。
由于Java和C++之間的相似性,容易使人將Java簡(jiǎn)單地想象為“C++的版本”。但其實(shí)這是一種誤解。Java在實(shí)踐和理論上都與C++有重要的不同點(diǎn)。盡管Java受到C++的影響,但它并不是C++的增強(qiáng)版。例如,Java與C++既不向上兼容,也不向下兼容。當(dāng)然,Java與C++的相似之處也是很多的,如果你是一個(gè)C++程序員,你會(huì)感覺到對(duì)Java非常熟悉。另外一點(diǎn)是:Java并不是用來取代C++的,設(shè)計(jì)Java是為了解決某些特定的問題,而設(shè)計(jì)C++是為了解決另外一類完全不同的問題。兩者將長(zhǎng)時(shí)間共存。
計(jì)算機(jī)語言的革新靠?jī)蓚€(gè)因素驅(qū)動(dòng):對(duì)計(jì)算環(huán)境改變的適應(yīng)和編程藝術(shù)的進(jìn)步。環(huán)境的變化促使Java這種獨(dú)立于平臺(tái)的語言注定成為Internet上的分布式編程語言。同時(shí),Java也改變了人們的編程方式,特別是Java對(duì)C++使用的面向?qū)ο蠓独M(jìn)行的增強(qiáng)和完善。所以, Java不是孤立存在的一種語言,而是計(jì)算機(jī)語言多年來的演變結(jié)果。僅這個(gè)事實(shí)就足以證明Java在計(jì)算機(jī)語言歷史上的地位。Java對(duì)Internet 編程的影響就如同C對(duì)系統(tǒng)編程的影響一樣:革命的力量將改變世界。

上述就是小編為大家分享的Java是怎樣產(chǎn)生的了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI