JAVA简性_Java简介
java的核心優(yōu)勢(shì)
Java為消費(fèi)類智能電子產(chǎn)品而設(shè)計(jì),但智能家電產(chǎn)品并沒有像最初想象的那樣擁有大的發(fā)展。然而90年代,Internet卻進(jìn)入了爆發(fā)式發(fā)展階段,一夜之間,大家都在忙著將自己的計(jì)算機(jī)連接到網(wǎng)絡(luò)上。
這個(gè)時(shí)侯,遇到了一個(gè)大的問(wèn)題。人們發(fā)現(xiàn)連接到Internet的計(jì)算機(jī)各式各樣,有IBM PC、蘋果機(jī)、各種服務(wù)器等等,不僅硬件CPU不同,操作系統(tǒng)也不同,整個(gè)的網(wǎng)絡(luò)環(huán)境非常復(fù)雜。
這個(gè)時(shí)候,程序員們希望他們編寫的程序能夠運(yùn)行在不同的機(jī)器,不同的環(huán)境中,這需要一種體系中立的語(yǔ)言(即跨平臺(tái))。Java的研發(fā)小組忽然發(fā)現(xiàn)他們用于小范圍的語(yǔ)言也可以適應(yīng)Internet這個(gè)大環(huán)境。
跨平臺(tái)是Java語(yǔ)言的核心優(yōu)勢(shì),趕上最初互聯(lián)網(wǎng)的發(fā)展,并隨著互聯(lián)網(wǎng)的發(fā)展而發(fā)展,建立了強(qiáng)大的生態(tài)體系,目前已經(jīng)覆蓋IT各行業(yè)的“第一大語(yǔ)言”,是計(jì)算機(jī)界的“英語(yǔ)”。
雖然,目前也有很多跨平臺(tái)的語(yǔ)言,但是已經(jīng)失去先機(jī),無(wú)法和Java強(qiáng)大的生態(tài)體系抗衡。Java仍將在未來(lái)幾十年成為編程語(yǔ)言的主流語(yǔ)言。
JAVA虛擬機(jī)是JAVA實(shí)現(xiàn)跨平臺(tái)的核心
java各個(gè)版本的含義
JavaSE(Java Standard Edition):
標(biāo)準(zhǔn)版,定位在個(gè)人計(jì)算機(jī)上的應(yīng)用。這個(gè)版本是Java平臺(tái)的核心,它提供了非常豐富的API來(lái)開發(fā)一般個(gè)人計(jì)算機(jī)上的應(yīng)用程序,包括用戶界面接口AWT及Swing,網(wǎng)絡(luò)功能與國(guó)際化、圖像處理能力以及輸入輸出支持等。在上世紀(jì)90年代末互聯(lián)網(wǎng)上大放異彩的Applet也屬于這個(gè)版本。Applet后來(lái)為Flash取代,Flash即將被HTML5取代。
JavaEE(Java Enterprise Edition):
企業(yè)版,定位在服務(wù)器端的應(yīng)用。JavaEE是JavaSE的擴(kuò)展,增加了用于服務(wù)器開發(fā)的類庫(kù)。如:JDBC是讓程序員能直接在Java內(nèi)使用的SQL的語(yǔ)法來(lái)訪問(wèn)數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù);Servlet能夠延伸服務(wù)器的功能,通過(guò)請(qǐng)求-響應(yīng)的模式來(lái)處理客戶端的請(qǐng)求;JSP是一種可以將Java程序代碼內(nèi)嵌在網(wǎng)頁(yè)內(nèi)的技術(shù);
JavaME(Java Micro Edition):
微型版,定位在消費(fèi)性電子產(chǎn)品的應(yīng)用上
java特性和優(yōu)勢(shì)
跨平臺(tái)/可移植性
這是Java的核心優(yōu)勢(shì)。Java在設(shè)計(jì)時(shí)就很注重移植和跨平臺(tái)性。比如:Java的int永遠(yuǎn)都是32位。不像C++可能是16,32,可能是根據(jù)編譯器廠商規(guī)定的變化。這樣的話程序的移植就會(huì)非常麻煩。
安全性
Java適合于網(wǎng)絡(luò)/分布式環(huán)境,為了達(dá)到這個(gè)目標(biāo),在安全性方面投入了很大的精力,使Java可以很容易構(gòu)建防病毒,防篡改的系統(tǒng)。
面向?qū)ο?/p>
面向?qū)ο笫且环N程序設(shè)計(jì)技術(shù),非常適合大型軟件的設(shè)計(jì)和開發(fā)。由于C++為了照顧大量C語(yǔ)言使用者而兼容了C,使得自身僅僅成為了帶類的C語(yǔ)言,多少影響了其面向?qū)ο蟮膹氐仔?#xff01;Java則是完全的面向?qū)ο笳Z(yǔ)言。
簡(jiǎn)單性
Java就是C++語(yǔ)法的簡(jiǎn)化版,我們也可以將Java稱之為“C++-”。跟我念“C加加減”,指的就是將C++的一些內(nèi)容去掉;比如:頭文件,指針運(yùn)算,結(jié)構(gòu),聯(lián)合,操作符重載,虛基類等等。同時(shí),由于語(yǔ)法基于C語(yǔ)言,因此學(xué)習(xí)起來(lái)完全不費(fèi)力。
高性能
Java最初發(fā)展階段,總是被人詬病“性能低”;客觀上,高級(jí)語(yǔ)言運(yùn)行效率總是低于低級(jí)語(yǔ)言的,這個(gè)無(wú)法避免。Java語(yǔ)言本身發(fā)展中通過(guò)虛擬機(jī)的優(yōu)化提升了幾十倍運(yùn)行效率。比如,通過(guò)JIT(JUST IN TIME)即時(shí)編譯技術(shù)提高運(yùn)行效率。 將一些“熱點(diǎn)”字節(jié)碼編譯成本地機(jī)器碼,并將結(jié)果緩存起來(lái),在需要的時(shí)候重新調(diào)用。這樣的話,使Java程序的執(zhí)行效率大大提高,某些代碼甚至接待C++的效率。
因此,Java低性能的短腿,已經(jīng)被完全解決了。業(yè)界發(fā)展上,我們也看到很多C++應(yīng)用轉(zhuǎn)到Java開發(fā),很多C++程序員轉(zhuǎn)型為Java程序員。
分布式
Java是為Internet的分布式環(huán)境設(shè)計(jì)的,因?yàn)樗軌蛱幚鞹CP/IP協(xié)議。事實(shí)上,通過(guò)URL訪問(wèn)一個(gè)網(wǎng)絡(luò)資源和訪問(wèn)本地文件是一樣簡(jiǎn)單的。Java還支持遠(yuǎn)程方法調(diào)用(RMI,Remote Method Invocation),使程序能夠通過(guò)網(wǎng)絡(luò)調(diào)用方法。
多線程
多線程的使用可以帶來(lái)更好的交互響應(yīng)和實(shí)時(shí)行為。 Java多線程的簡(jiǎn)單性是Java成為主流服務(wù)器端開發(fā)語(yǔ)言的主要原因之一。
健壯性
Java是一種健壯的語(yǔ)言,吸收了C/C++ 語(yǔ)言的優(yōu)點(diǎn),但去掉了其影響程序健壯性的部分(如:指針、內(nèi)存的申請(qǐng)與釋放等)。Java程序不可能造成計(jì)算機(jī)崩潰。即使Java程序也可能有錯(cuò)誤。如果出現(xiàn)某種出乎意料之事,程序也不會(huì)崩潰,而是把該異常拋出,再通過(guò)異常處理機(jī)制加以處理。
java應(yīng)用程序的運(yùn)行機(jī)制
計(jì)算機(jī)高級(jí)語(yǔ)言的類型主要有編譯型和解釋型兩種,而Java 語(yǔ)言是兩種類型的結(jié)合。
Java首先利用文本編輯器編寫 Java源程序,源文件的后綴名為.java;再利用編譯器(javac)將源程序編譯成字節(jié)碼文件,字節(jié)碼文件的后綴名為.class; 最后利用虛擬機(jī)(解釋器,java)解釋執(zhí)行。
JVM、JRE、JDK
JVM(Java Virtual Machine)就是一個(gè)虛擬的用于執(zhí)行bytecode字節(jié)碼的”虛擬計(jì)算機(jī)”。他也定義了指令集、寄存器集、結(jié)構(gòu)棧、垃圾收集堆、內(nèi)存區(qū)域。JVM負(fù)責(zé)將Java字節(jié)碼解釋運(yùn)行,邊解釋邊運(yùn)行,這樣,速度就會(huì)受到一定的影響。
不同的操作系統(tǒng)有不同的虛擬機(jī)。Java 虛擬機(jī)機(jī)制屏蔽了底層運(yùn)行平臺(tái)的差別,實(shí)現(xiàn)了“一次編譯,隨處運(yùn)行”。 Java虛擬機(jī)是實(shí)現(xiàn)跨平臺(tái)的核心機(jī)制。
Java Runtime Environment (JRE)?:包含庫(kù)函數(shù)、運(yùn)行Java應(yīng)用程序所必須的文件、Java虛擬機(jī)。
Java ?Development Kit (JDK):增加編譯器和調(diào)試器等用于程序開發(fā)的文件、包含JRE。
如果只是要運(yùn)行Java程序,只需要JRE就可以。JRE通常非常小,其中包含了JVM。
如果要開發(fā)Java程序,就需要安裝JDK。
總結(jié)
以上是生活随笔為你收集整理的JAVA简性_Java简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: java操作samba_使用Java和S
- 下一篇: linux java aptget_ap
