更新時(shí)間:2019-02-14 09:22:15 來源:動(dòng)力節(jié)點(diǎn) 瀏覽5942次
Java編程是一種具有簡(jiǎn)單,面向?qū)ο螅€(wěn)定,與平臺(tái)無關(guān),解釋型,多線程,動(dòng)態(tài)等特點(diǎn)的開發(fā)語言,是IT人士必備的工具。那么我們?yōu)槭裁匆獙W(xué)習(xí)Java呢?Java為何這么的吸引人們的關(guān)注?這就需要去追尋Java的根源:
1.Java是目前使用最為廣泛的網(wǎng)絡(luò)編程語言之一,它具有簡(jiǎn)單,面向?qū)ο螅€(wěn)定,與平臺(tái)無關(guān),解釋型,多線程,動(dòng)態(tài)等特點(diǎn)。
2.簡(jiǎn)單:Java語言簡(jiǎn)單是指這門語言既易學(xué)有好用。不要將簡(jiǎn)單誤解為這門語言很干癟。如果你學(xué)習(xí)過C++語言,你會(huì)感覺Java很眼熟,因?yàn)镴ava中許多基本語句的語法和C++一樣,像常用的循環(huán)語句,控制語句等和C++幾乎一樣,但不要誤解為Java是C++的增強(qiáng)版,Java和C++是兩種完全不同的語言,他們各有各的優(yōu)勢(shì),將會(huì)長(zhǎng)期并存下去,Java語言和C++語言已成為軟件開發(fā)者應(yīng)當(dāng)掌握的語言。如果從語言的簡(jiǎn)單性方面看,Java要比C++簡(jiǎn)單,C++中許多容易混淆的概念,或者被Java棄之不用了,或者以一種更清楚更容易理解的方式實(shí)現(xiàn),例如,Java不再有指針的概念。
3.面向?qū)ο螅夯趯?duì)象的編程更符合人的思維模式,使人們更容易編寫程序。在實(shí)際生活中,我們每時(shí)每刻都與對(duì)象在打交道。我們用的鋼筆,騎的自行車,乘的公共汽車等。而我們經(jīng)常見到的卡車,公共汽車,轎車等都會(huì)涉及以下幾個(gè)重要的物理量可乘載的人數(shù),運(yùn)行速度,發(fā)動(dòng)機(jī)的功率,耗油量,自重,輪子數(shù)目等。另外,還有幾個(gè)重要的功能加速功能,減速功能,剎車,轉(zhuǎn)彎功能等。我們也可以把這些功能稱作是他們具有的方法,而物理量是它們的狀態(tài)描述。僅僅用物理量或功能不能很好的描述它們。在現(xiàn)實(shí)生活中,我們用這些共有的屬性和功能給出一個(gè)概念機(jī)動(dòng)車類。一個(gè)具體的轎車就是機(jī)動(dòng)車類的一個(gè)實(shí)例對(duì)象.Java語言與其它面向?qū)ο笳Z言一樣,引入了類的概念,類是用來創(chuàng)建對(duì)象的模板,它包含被創(chuàng)建的對(duì)象的狀態(tài)描述和方法的定義。
4.與平臺(tái)無關(guān):與平臺(tái)無關(guān)是Java語言最大的優(yōu)勢(shì)。其它語言編寫的程序面臨的一個(gè)主要問題是操作系統(tǒng)的變化,處理器升級(jí)以及核心系統(tǒng)資源的變化,都可能導(dǎo)致程序出現(xiàn)錯(cuò)誤或無法運(yùn)行。Java的虛擬機(jī)成功地解決了這個(gè)問題,Java編寫的程序可以在任何安裝了Java虛擬機(jī)JVM的計(jì)算機(jī)上正確的運(yùn)行,Sun公司實(shí)現(xiàn)了自己的目標(biāo)“一次寫成,處處運(yùn)行”。
5.解釋型:我們知道C,C++等語言,都是只能對(duì)特定的CPU芯片進(jìn)行編譯,生成機(jī)器代碼,該代碼的運(yùn)行就和特定的CUP有關(guān)。例如,在C語言中,我們都碰到過類似下面的問題int型變量的值是10,那么下面代碼的輸出結(jié)果是什么呢printf(“%d,%d”,x,x=x+1)如果上述語句的計(jì)算順序是從左到右,結(jié)果是10,11但是,有些機(jī)器會(huì)從右到左計(jì)算,那么結(jié)果就11,Java不像C++,它不針對(duì)特定的CPU芯片進(jìn)行編譯,而是把程序編譯為稱做字節(jié)碼的一個(gè)“中間代碼”。字節(jié)碼是很接近機(jī)器碼的文件,可以在提供了Java虛擬、JVM的任何系統(tǒng)上被解釋執(zhí)行。Java被設(shè)計(jì)成為解釋執(zhí)行的程序,即翻譯一句,執(zhí)行一句,不產(chǎn)生整個(gè)的機(jī)器代碼程序。翻譯過程如果不出現(xiàn)錯(cuò)誤,就一直進(jìn)行到完畢,否則將在錯(cuò)誤處停止執(zhí)行。同一個(gè)程序,如果是解釋執(zhí)行的,那么它的運(yùn)行速度通常比編譯為可執(zhí)行的機(jī)器代碼的運(yùn)行速度慢一些。但是,對(duì)Java來說,二者的差別不太大,Java的字節(jié)碼經(jīng)過仔細(xì)設(shè)計(jì),很容易便能使用JIT即時(shí)編譯方式編譯技術(shù)將字節(jié)碼直接轉(zhuǎn)化成高性能的本地機(jī)器碼,Sun公司在Java2發(fā)行版中提供了這樣一個(gè)字節(jié)碼編譯器——JIT(JustInTime),它是Java虛擬機(jī)的一部分。Java運(yùn)行系統(tǒng)在提供JIT的同時(shí)仍具有平臺(tái)獨(dú)立性,因而“高效且跨平臺(tái)”對(duì)Java來說不再矛盾。如果把Java的程序比做“漢語”的話,字節(jié)碼就相當(dāng)于“世界語”,世界語不和具體的“國(guó)家”關(guān),只要這個(gè)“國(guó)家”提供了“翻譯”,就可以再快速地把世界語翻譯成本地語言。
6.多線程Java的特點(diǎn)之一就是內(nèi)置對(duì)多線程的支持。多線程允許同時(shí)完成多個(gè)任務(wù)。實(shí)際上多線程使人產(chǎn)生多個(gè)任務(wù)在同時(shí)執(zhí)行的錯(cuò)覺,因?yàn)椋壳暗挠?jì)算機(jī)的處理器在同一時(shí)刻只能執(zhí)行一個(gè)線程,但處理器可以在不同的線程之間快速地切換,由于處理器速度非常快,遠(yuǎn)遠(yuǎn)超過了人接收信息的速度,所以給人的感覺好象多個(gè)任務(wù)在同時(shí)執(zhí)行。C++沒有內(nèi)置的多線程機(jī)制,因此必須調(diào)用操作系統(tǒng)的多線程功能來進(jìn)行多線程程序的設(shè)計(jì)。
7.安全當(dāng)你準(zhǔn)備從網(wǎng)絡(luò)上下載一個(gè)程序時(shí),你最大的擔(dān)心是程序中含有惡意的代碼,比如試圖讀取或刪除本地機(jī)上的一些重要文件,甚至該程序是一個(gè)病毒程序等。當(dāng)你使用支持Java的瀏覽器時(shí),你可以放心地運(yùn)行Java的小應(yīng)用程序JavaApplet,不必?fù)?dān)心病毒的感染和惡意的企圖,Java小應(yīng)用程序?qū)⑾拗圃贘ava運(yùn)行環(huán)境中,不允許它訪問計(jì)算機(jī)的其它部分。
8.動(dòng)態(tài)Java程序的基本組成單元就是類,有些類是自己編寫的,有一些是從類庫(kù)中引入的,而類又是運(yùn)行時(shí)動(dòng)態(tài)裝載的,這就使得Java可以在分布環(huán)境中動(dòng)態(tài)地維護(hù)程序及類庫(kù),而不像C++那樣,每當(dāng)其類庫(kù)升級(jí)之后,相應(yīng)的程序都必須重新修改,編譯。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743