国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

[Java入門筆記]Java語言簡(jiǎn)介

2019-11-14 14:58:25
字體:
供稿:網(wǎng)友

前言

學(xué)習(xí)java有一段時(shí)間了,但是一直缺少一個(gè)系統(tǒng)的思想,現(xiàn)在重新通過書籍中、網(wǎng)上的文章,視頻等資料,整理與回顧Java的知識(shí)點(diǎn)。

言歸正傳,讓我們先從了解Java語言開始。

Java語言的由來

Java是由Sun Microsystems公司推出的Java面向?qū)ο蟪绦蛟O(shè)計(jì)語言(以下簡(jiǎn)稱Java語言)和Java平臺(tái)的總稱。由James Gosling和同事們共同研發(fā),并在1995年正式推出。Java最初被稱為Oak,是1991年為消費(fèi)類電子產(chǎn)品的嵌入式芯片而設(shè)計(jì)的。1995年更名為Java,并重新設(shè)計(jì)用于開發(fā)Internet應(yīng)用程序。用Java實(shí)現(xiàn)的HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平臺(tái)、動(dòng)態(tài)Web、Internet計(jì)算。從此,Java被廣泛接受并推動(dòng)了Web的迅速發(fā)展,常用的瀏覽器均支持Javaapplet。另一方面,Java技術(shù)也不斷更新。Java自面世后就非常流行,發(fā)展迅速,對(duì)C++語言形成有力沖擊。在全球云計(jì)算和移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java更具備了顯著優(yōu)勢(shì)和廣闊前景。[引用自百度百科]

Java語言的特點(diǎn)

優(yōu)點(diǎn)

1、簡(jiǎn)單。

Java語言的語法與C語言和C++語言很接近,使得大多數(shù)程序員很容易學(xué)習(xí)和使用Java。另一方面,Java丟棄了C++中很少使用的、很難理解的、令人迷惑的那些特性。去掉了C和C++中許多復(fù)雜功能,如指針、操作符重載、多繼承、自動(dòng)的強(qiáng)制類型轉(zhuǎn)換,沒有g(shù)oto語句,沒有struct和union等。特別地,Java語言不使用指針,并提供了自動(dòng)的廢料收集,使得程序員不必為內(nèi)存管理而擔(dān)憂。

 

2、面向?qū)ο蟆?/p>

面向?qū)ο罂梢哉f是Java最基本的特性。Java語言的設(shè)計(jì)完全是面向?qū)ο蟮模恢С诸愃艭語言那樣的面向過程的程序設(shè)計(jì)技術(shù)。所有的Java程序和applet均是對(duì)象,Java支持靜態(tài)和動(dòng)態(tài)風(fēng)格的代碼繼承及重用。它比C++更徹底,純度更高。Java語言提供類、接口和繼承等原語,為了簡(jiǎn)單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實(shí)現(xiàn)機(jī)制(關(guān)鍵字為implements)。

 

3、跨平臺(tái)性。

與平臺(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)行”

具體表現(xiàn)為:

  • 結(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ā)。
  • 可移植:這種可移植性來源于體系結(jié)構(gòu)中立性,另外,Java還嚴(yán)格規(guī)定了各個(gè)基本數(shù)據(jù)類型的長(zhǎng)度。Java系統(tǒng)本身也具有很強(qiáng)的可移植性,Java編譯器是用Java實(shí)現(xiàn)的,Java的運(yùn)行環(huán)境是用ANSI C實(shí)現(xiàn)的。
  • 解釋型: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)境中。

 

4、健壯的。

Java的強(qiáng)類型機(jī)制、異常處理、廢料的自動(dòng)收集等是Java程序健壯性的重要保證。對(duì)指針的丟棄是Java的明智選擇。Java的安全檢查機(jī)制使得Java更具健壯性。

 

5、安全性。

作為網(wǎng)絡(luò)語言,安全是非常重要的。Java的安全性可從兩個(gè)方面得到保證。一方面,在Java語言里,像指針和釋放內(nèi)存等C++功能被刪除,避免了非法內(nèi)存操作。另一方面,當(dāng)Java用來創(chuàng)建瀏覽器時(shí),語言功能和一類瀏覽器本身提供的功能結(jié)合起來,使它更安全。Java語言在你的機(jī)器上執(zhí)行前,要經(jīng)過很多次的測(cè)試。它經(jīng)過代碼校驗(yàn),檢查代碼段的格式,檢測(cè)指針操作,對(duì)象操作是否過分以及試圖改變一個(gè)對(duì)象的類型。另外,Java擁有多個(gè)層次的互鎖保護(hù)措施,能有效地防止病毒的入侵和破壞行為的發(fā)生。

 

6、多線程。

在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)。

 

7、動(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í)刻的類型檢查。

 

缺點(diǎn)

當(dāng)然,所有的事情都不可能是完美的,有優(yōu)點(diǎn)必然會(huì)有缺點(diǎn)。

1、效率:因?yàn)橐冉?jīng)過編譯和垃圾回收機(jī)制等,所以速度比較慢!不適合大型的程序,網(wǎng)絡(luò)游戲等的編程!

2、復(fù)雜性,正因?yàn)樗墓δ軓?qiáng)大,因此也增加了其復(fù)雜性,像當(dāng)今流行的框架有很多,什么struts,sPRing,jQuery等等,無疑增加了java的復(fù)雜性。

 

Java的運(yùn)行機(jī)制

其他高級(jí)語言的運(yùn)行機(jī)制

計(jì)算機(jī)高級(jí)語言按照程序執(zhí)行方式可以分為編譯型解釋型

編譯型語言是指在程序執(zhí)行之前,首先會(huì)有一個(gè)單獨(dú)的編譯過程,針對(duì)特定的平臺(tái)(操作系統(tǒng)),將高級(jí)語言翻譯成機(jī)器語言,以后執(zhí)行這個(gè)程序的時(shí)候,便可以直接運(yùn)行,這樣編譯后可以脫離開發(fā)環(huán)境獨(dú)立運(yùn)行,效率也可以高一些。但也有一個(gè)缺點(diǎn),那就是編譯語言被編譯成特定平臺(tái)上的機(jī)器碼,通常無法直接轉(zhuǎn)移到其他平臺(tái)運(yùn)行,如果有需求,需要重新將源代碼轉(zhuǎn)移到特定平臺(tái),針對(duì)部分平臺(tái)進(jìn)行修改之后,重新編譯。C/C++ 等都是編譯型語言。

解釋型語言是指在運(yùn)行時(shí)才將程序翻譯成機(jī)器語言,跨平臺(tái)性較好,但不足之處就是每次執(zhí)行都需要進(jìn)行一次編譯。相當(dāng)于把編譯型語言中的編譯和解釋的過程混合到一起同時(shí)完成。Ruby,Python等都是解釋型語言。

Java程序的運(yùn)行機(jī)制

 Java語言比較特殊,Java語言編寫的程序也需要經(jīng)過編譯步驟,只不過它并不是編譯成特定語言的機(jī)器碼,而是生產(chǎn)與機(jī)器無關(guān)的字節(jié)碼(*.class文件)。這種字節(jié)碼不能直接運(yùn)行,需要經(jīng)過Java解釋器(JVM Java虛擬機(jī))來運(yùn)行。因此,Java語言是先編譯,后解釋,將這兩個(gè)步驟分開。

JVM虛擬機(jī)

上面介紹到,Java程序?qū)⒆止?jié)碼運(yùn)行需要JVM虛擬機(jī),下面我們來認(rèn)識(shí)一下它。

Java虛擬機(jī),即JVM(Java%20Virtual%20Machine)。當(dāng)Java編譯器編譯Java代碼的時(shí)候,生成的是面向JVM的字節(jié)碼,再由JVM面向各操作系統(tǒng),因此使用Java語言編寫的程序,實(shí)際上是運(yùn)行在JVM之上,而不是運(yùn)行在操作系統(tǒng)上。

它有一個(gè)解釋器組件,可以實(shí)現(xiàn)Java字節(jié)碼和計(jì)算機(jī)操作系統(tǒng)之間的通信。

 JVM類似于一個(gè)抽象的計(jì)算機(jī),和實(shí)際的計(jì)算機(jī)一樣,它具有指令集并使用不同的存儲(chǔ)區(qū)域。復(fù)雜執(zhí)行指令,管理數(shù)據(jù)、內(nèi)存和寄存器。

 JAVA開發(fā)工具包JDK(Java%20Development%20Kit)

JDK是JAVA開發(fā)工具包的簡(jiǎn)稱,是Sun提供的一套用于開發(fā)Java程序的開發(fā)包。它提供了編譯,運(yùn)行Java程序所需的各種工具和資源。包含Java編譯器,Java運(yùn)行時(shí)環(huán)境,常用Java類庫等。

Java運(yùn)行時(shí)環(huán)境Jre(Java Runtime Environment)

Jre是運(yùn)行Java程序的必備條件,Jre包含JVM,JVM是運(yùn)行Java程序的核心虛擬機(jī),而運(yùn)行Java程序不僅需要核心虛擬機(jī),還需要類加載器,字節(jié)碼校驗(yàn)器以及大量基礎(chǔ)類庫,而JDK還包含了開發(fā)工具,因此如果只需要運(yùn)行Java程序,只需要安裝Jre即可。

Sun把Java分為Java SE、Java EE、Java ME。

  • J2SE(Standard Edition):標(biāo)準(zhǔn)版,適用于普通應(yīng)用程序的開發(fā);
  • J2EE(Enterprise Edition):企業(yè)版,適用于大型企業(yè)級(jí)應(yīng)用程序的開發(fā);
  • J2ME(Mirco Edition):微型版,適用于移動(dòng)設(shè)備或嵌入式設(shè)備的程序開發(fā)。

 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 南陵县| 龙里县| 太谷县| 浠水县| 微山县| 巢湖市| 海盐县| 蓝山县| 福海县| 元氏县| 乌拉特前旗| 健康| 高淳县| 弋阳县| 淮南市| 同仁县| 龙川县| 湖州市| 遂宁市| 孟州市| 北京市| 罗源县| 墨脱县| 乌兰浩特市| 十堰市| 高雄县| 虞城县| 申扎县| 霸州市| 全椒县| 华安县| 花垣县| 庆阳市| 花莲县| 昭觉县| 濮阳市| 贵港市| 洞头县| 武威市| 淮南市| 武隆县|