最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java程序設(shè)計(jì)語言的優(yōu)勢(shì)及特點(diǎn)

 更新時(shí)間:2020年02月17日 17:24:42   作者:angryTom  
在本篇文章里小編給大家分享的是一篇關(guān)于java程序設(shè)計(jì)語言的優(yōu)勢(shì)及特點(diǎn)的內(nèi)容,需要的朋友們可以學(xué)習(xí)參考下。

java語言是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言嗎

java語言是面向?qū)ο蟮某绦蛟O(shè)計(jì)語言

支持部分或絕大部分面向?qū)ο筇匦裕惡蛯?shí)例、封裝性、繼承、多態(tài))的語言即可稱為基于對(duì)象的或面向?qū)ο蟮恼Z言。Java跟C#是目前最流行的兩門面向?qū)ο笳Z言。

面向?qū)ο笳Z言可以歸類為:

1、基于對(duì)象的程序設(shè)計(jì)語言;

2、面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。

面向?qū)ο缶幊叹哂幸韵聝?yōu)點(diǎn):

1、易維護(hù)

采用面向?qū)ο笏枷朐O(shè)計(jì)的結(jié)構(gòu),可讀性高,由于繼承的存在,即使改變需求,那么維護(hù)也只是在局部模塊,所以維護(hù)起來是非常方便和較低成本的。

2、易擴(kuò)展

通過繼承,我們可以大幅減少多余的代碼,并擴(kuò)展現(xiàn)有代碼的用途;

我們可以在標(biāo)準(zhǔn)的模塊上(這里所謂的”標(biāo)準(zhǔn)”指程序員之間彼此達(dá)成的協(xié)議)構(gòu)建我們的程序,而不必一切從頭開始。這可以減少軟件開發(fā)時(shí)間并提高生產(chǎn)效率;

3、模塊化

封裝可以定義對(duì)象的屬性和方法的訪問級(jí)別,通過不同的訪問修飾符對(duì)外暴露安全的接口,防止內(nèi)部數(shù)據(jù)在不安全的情況下被修改。這樣可以使程序具備更高的模塊化程度,方便后期的維護(hù)和修改。

同時(shí),面向?qū)ο笳Z言允許一個(gè)對(duì)象的多個(gè)實(shí)例同時(shí)存在,而且彼此之間不會(huì)相互干擾;

4、建模

雖然面向?qū)ο笳Z言中的對(duì)象與現(xiàn)實(shí)生活中的對(duì)象并不是同個(gè)概念,但很多時(shí)候,往往可以使用現(xiàn)實(shí)生活中對(duì)象的概念抽象后稍作修改來進(jìn)行建模,這大大方便了建模的過程。(但直接使用現(xiàn)實(shí)中的對(duì)象來建模有時(shí)會(huì)適得其反)。

內(nèi)容擴(kuò)充:

1.簡(jiǎn)單

Java最初是為對(duì)家用電器進(jìn)行集成控制而設(shè)計(jì)的一種語言,因此它必須簡(jiǎn)單明了。Java語言的簡(jiǎn)單性主要體現(xiàn)在以下三個(gè)方面:

1) Java的風(fēng)格類似于C++,因而C++程序員是非常熟悉的。從某種意義上講,Java語言是C及C++語言的一個(gè)變種,因此,C++程序員可以很快就掌握J(rèn)ava編程技術(shù)。

2) Java摒棄了C++中容易引發(fā)程序錯(cuò)誤的地方,如指針和內(nèi)存管理。

3) Java提供了豐富的類庫。

2.面向?qū)ο?

面向?qū)ο罂梢哉f是Java最重要的特性。Java語言的設(shè)計(jì)完全是面向?qū)ο蟮模恢С诸愃艭語言那樣的面向過程的程序設(shè)計(jì)技術(shù)。Java支持靜態(tài)和動(dòng)態(tài)風(fēng)格的代碼繼承及重用。單從面向?qū)ο蟮奶匦詠砜?,Java類似于Small Talk,但其它特性、尤其是適用于分布式計(jì)算環(huán)境的特性遠(yuǎn)遠(yuǎn)超越了Small Talk。

3.分布式

Java包括一個(gè)支持HTTP和FTP等基于TCP/IP協(xié)議的子庫。因此,Java應(yīng)用程序可憑借URL打開并訪問網(wǎng)絡(luò)上的對(duì)象,其訪問方式與訪問本地文件系統(tǒng)幾乎完全相同。為分布環(huán)境尤其是Internet提供的動(dòng)態(tài)內(nèi)容無疑是一項(xiàng)非常宏偉的任務(wù),但Java的語法特性卻使我們很容易地實(shí)現(xiàn)這項(xiàng)目標(biāo)。

4.健壯

Java致力于檢查程序在編譯和運(yùn)行時(shí)的錯(cuò)誤。類型檢查幫助檢查出許多開發(fā)早期出現(xiàn)的錯(cuò)誤。Java自已操縱內(nèi)存減少了內(nèi)存出錯(cuò)的可能性。Java還實(shí)現(xiàn)了真數(shù)組,避免了覆蓋數(shù)據(jù)的可能。這些功能特征大大縮短了開發(fā)Java應(yīng)用程序的周期。Java提供Null指針檢測(cè)數(shù)組邊界檢測(cè)異常出口字節(jié)代碼校驗(yàn)。

5.結(jié)構(gòu)中立

另外,為了建立Java作為網(wǎng)絡(luò)的一個(gè)整體,Java將它的程序編譯成一種結(jié)構(gòu)中立的中間文件格式。只要有Java運(yùn)行系統(tǒng)的機(jī)器都能執(zhí)行這種中間代碼。現(xiàn)在,Java運(yùn)行系統(tǒng)有Solaris2.4(SPARC),Win32系統(tǒng)(Windows95和WindowsNT)等.Java源程序被編譯成一種高層次的與機(jī)器無關(guān)的byte-code格式語言,這種語言被設(shè)計(jì)在虛擬機(jī)上運(yùn)行,由機(jī)器相關(guān)的運(yùn)行調(diào)試器實(shí)現(xiàn)執(zhí)行。

6.安全

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ì)象的類型。

7.可移植的

這句話一直是Java程序設(shè)計(jì)師們的精神指標(biāo),也是Java之所以能夠受到程序設(shè)計(jì)師們喜愛的原因之一,最大的功臣就是JVM的技術(shù)。大多數(shù)編譯器產(chǎn)生的目標(biāo)代碼只能運(yùn)行在一 種CPU上(如Intel的x86系列),即使那些能支持多種CPU的編譯器也不能同時(shí)產(chǎn)生適合多 種CPU的目標(biāo)代碼。如果你需要在三種CPU( 如x86、SPARC 和MIPS)上運(yùn)行同一程序, 就必須編譯三次。

但JAVA編譯器就不同了。JAVA編譯器產(chǎn)生的目標(biāo)代碼(J-Code) 是針對(duì)一種并不 存在的CPU--JAVA虛擬機(jī)(JAVA Virtual Machine),而不是某一實(shí)際的CPU。JAVA虛擬機(jī)能掩蓋不同CPU之間的差別,使J-Code能運(yùn)行于任何具有JAVA虛擬機(jī)的機(jī)器上。

虛擬機(jī)的概念并不AVA 所 特 有 的:加州大學(xué)幾年前就提出了PASCAL虛擬機(jī)的概念;廣泛用于Unix服務(wù)器的Perl腳本也是產(chǎn)生與機(jī)器無關(guān)的中間代碼用于執(zhí)行。但針對(duì)Internet應(yīng)用而設(shè)計(jì)的JAVA虛擬機(jī)的特別之處在于它能產(chǎn)生安全的不受病毒威脅的目標(biāo)代碼。正是由于Internet對(duì)安全特性的特別要求才使得JVM能夠迅速被人們接受。 當(dāng)今主 流的操作系統(tǒng)如OS/2、MacOS、Windows95/NT都已經(jīng)或很快提供對(duì)J-Code的支持。

作為一種虛擬的CPU,JAVA 虛擬機(jī)對(duì)于源代碼(Source Code) 來說是獨(dú)立的。我們不僅可以用JAVA語言來生成J-Code,也可以用Ada95來生成。事實(shí)上,已經(jīng)有了針對(duì)若干種源代碼的J-Code 編譯器,包括Basic、Lisp 和Forth。源代碼一經(jīng)轉(zhuǎn)換成J-Code以后,JAVA虛擬機(jī)就能夠執(zhí)行而不區(qū)分它是由哪種源代碼生成的。這樣做的結(jié)果就是CPU可移植性。 將源程序編譯為J-Code的好處在于可運(yùn)行于各種機(jī)器上,而缺點(diǎn)是它不如本機(jī)代碼運(yùn)行的速度快。

同體系結(jié)構(gòu)無關(guān)的特性使得Java應(yīng)用程序可以在配備了Java解釋器和運(yùn)行環(huán)境的任何計(jì)算機(jī)系統(tǒng)上運(yùn)行,這成為Java應(yīng)用軟件便于移植的良好基礎(chǔ)。但僅僅如此還不夠。如果基本數(shù)據(jù)類型設(shè)計(jì)依賴于具體實(shí)現(xiàn),也將為程序的移植帶來很大不便。例如在Windows3.1中整數(shù)(Integer)為16bits,在Windows95中整數(shù)為32bits,在DECAlpha中整數(shù)為64bits,在Intel486中為32bits。通過定義獨(dú)立于平臺(tái)的基本數(shù)據(jù)類型及其運(yùn)算,Java數(shù)據(jù)得以在任何硬件平臺(tái)上保持一致。Java語言的基本數(shù)據(jù)類型及其表示方式如下:byte8-bit二進(jìn)制補(bǔ)碼short16-bit二進(jìn)制補(bǔ)碼int32-bit二進(jìn)制補(bǔ)碼long64-bit二進(jìn)制補(bǔ)碼float32-bitIEEE754浮點(diǎn)數(shù)double32-bitIEEE754浮點(diǎn)數(shù)char16-bitUnicode字符在任何Java解釋器中,數(shù)據(jù)類型都是依據(jù)以上標(biāo)準(zhǔn)具體實(shí)現(xiàn)的。因?yàn)閹缀跄壳笆褂玫乃蠧PU都能支持以上數(shù)據(jù)類型、8~64位整數(shù)格式的補(bǔ)碼運(yùn)算和單/雙精度浮點(diǎn)運(yùn)算。Java編譯器本身就是用Java語言編寫的。Java運(yùn)算系統(tǒng)的編制依據(jù)POSIX方便移植的限制,用ANSIC語言寫成。Java語言規(guī)范中也沒有任何"同具體實(shí)現(xiàn)相關(guān)"的內(nèi)容。

8.解釋的

Java解釋器(運(yùn)行系統(tǒng))能直接運(yùn)行目標(biāo)代碼指令。鏈接程序通常比編譯程序所需資源少,所以程序員可以在創(chuàng)建源程序上花上更多的時(shí)間。

9.高性能

如果解釋器速度不慢,Java可以在運(yùn)行時(shí)直接將目標(biāo)代碼翻譯成機(jī)器指令。Sun用直接解釋器一秒鐘內(nèi)可調(diào)用300,000個(gè)過程。翻譯目標(biāo)代碼的速度與C/C++的性能沒什么區(qū)別。

10.多線程

多線程功能使得在一個(gè)程序里可同時(shí)執(zhí)行多個(gè)小任務(wù)。線程--有時(shí)也稱小進(jìn)程--是一個(gè)大進(jìn)程里分出來的小的獨(dú)立的進(jìn)程。因?yàn)镴ava實(shí)現(xiàn)的多線程技術(shù),所以比C和C++更鍵壯。多線程帶來的更大的好處是更好的交互性能和實(shí)時(shí)控制性能。當(dāng)然實(shí)時(shí)控制性能還取決于系統(tǒng)本身(UNIX,Windows,Macintosh等),在開發(fā)難易程度和性能上都比單線程要好。任何用過當(dāng)前瀏覽器的人,都感覺為調(diào)一副圖片而等待是一件很煩惱的事情。在Java里,你可用一個(gè)單線程來調(diào)一副圖片,而你可以訪問HTML里的其它信息而不必等它。

11.動(dòng)態(tài)

Java的動(dòng)態(tài)特性是其面向?qū)ο笤O(shè)計(jì)方法的發(fā)展。它允許程序動(dòng)態(tài)地裝入運(yùn)行過程中所需要的類,這是C++語言進(jìn)行面向?qū)ο蟪绦蛟O(shè)計(jì)所無法實(shí)現(xiàn)的。在C++程序設(shè)計(jì)過程中,每當(dāng)在類中增加一個(gè)實(shí)例變量或一種成員函數(shù)后,引用該類的所有子類都必須重新編譯,否則將導(dǎo)致程序崩潰。Java從如下幾方面采取措來解決這個(gè)問題。Java編譯器不是將對(duì)實(shí)例變量和成員函數(shù)的引用編譯為數(shù)值引用,而是將符號(hào)引用信息在字節(jié)碼中保存下傳遞給解釋器,再由解釋器在完成動(dòng)態(tài)連接類后,將符號(hào)引用信息轉(zhuǎn)換為數(shù)值偏移量。這樣,一個(gè)在存儲(chǔ)器生成的對(duì)象不在編譯過程中決定,而是延遲到運(yùn)行時(shí)由解釋器確定的。這樣,對(duì)類中的變量和方法進(jìn)行更新時(shí)就不至于影響現(xiàn)存的代碼。解釋執(zhí)行字節(jié)碼時(shí),這種符號(hào)信息的查找和轉(zhuǎn)換過程僅在一個(gè)新的名字出現(xiàn)時(shí)才進(jìn)行一次,隨后代碼便可以全速執(zhí)行。在運(yùn)行時(shí)確定引用的好處是可以使用已被更新的類,而不必?fù)?dān)心會(huì)影響原有的代碼。如果程序連接了網(wǎng)絡(luò)中另一系統(tǒng)中的某一類,該類的所有者也可以自由地對(duì)該類進(jìn)行更新,而不會(huì)使任何引用該類的程序崩潰。Java還簡(jiǎn)化了使用一個(gè)升級(jí)的或全新的協(xié)議的方法。如果你的系統(tǒng)運(yùn)行Java程序時(shí)遇到了不知怎樣處理的程序,沒關(guān)系,Java能自動(dòng)下載你所需要的功能程序。四.與C和C++語言的異同 Java提供了一個(gè)功能強(qiáng)大語言的所有功能,但幾乎沒有一點(diǎn)含混特征。C++安全性不好,但C和C++還是被大家所接受,所以Java設(shè)計(jì)成C++形式,讓大家很容易學(xué)習(xí)。Java去掉了C++語言的許多功能,讓Java的語言功能很精煉,并增加了一個(gè)很有用的功能,Java去掉了以下幾個(gè)C和C++功能和特征:指針運(yùn)算結(jié)構(gòu)typedefs#define需要釋放內(nèi)存全局變量的定義這個(gè)功能都是很容易引起錯(cuò)誤的地方。

12. Unicode

Java使用Unicode作為它的標(biāo)準(zhǔn)字符,這項(xiàng)特性使得Java的程序能在不同語言的平臺(tái)上都能撰寫和執(zhí)行。簡(jiǎn)單的說,你可以把程序中的變量、類別名稱使用中文來表示<注>,當(dāng)你的程序移植到其它語言平臺(tái)時(shí),還是可以正常的執(zhí)行。Java也是目前所有計(jì)算機(jī)語言當(dāng)中,唯一天生使用Unicode的語言。以上就是java語言是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言嗎的詳細(xì)內(nèi)容

以上就是腳本之家結(jié)合多篇整理的相關(guān)內(nèi)容,感謝大家的學(xué)習(xí)和支持。

相關(guān)文章

  • 舉例講解Java中synchronized關(guān)鍵字的用法

    舉例講解Java中synchronized關(guān)鍵字的用法

    這篇文章主要介紹了Java中synchronized關(guān)鍵字的用法,針對(duì)synchronized修飾方法的使用作出了簡(jiǎn)單講解和演示,需要的朋友可以參考下
    2016-04-04
  • 工作中禁止使用Executors快捷創(chuàng)建線程池原理詳解

    工作中禁止使用Executors快捷創(chuàng)建線程池原理詳解

    這篇文章主要為大家介紹了工作中禁止使用Executors快捷創(chuàng)建線程池原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 基于IntBuffer類的基本用法(詳解)

    基于IntBuffer類的基本用法(詳解)

    下面小編就為大家?guī)硪黄贗ntBuffer類的基本用法(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • java字符串與日期類型轉(zhuǎn)換的工具類

    java字符串與日期類型轉(zhuǎn)換的工具類

    這篇文章主要為大家詳細(xì)介紹了java字符串與日期類型轉(zhuǎn)換的工具類,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • springboot 注冊(cè)服務(wù)注冊(cè)中心(zk)的兩種方式詳解

    springboot 注冊(cè)服務(wù)注冊(cè)中心(zk)的兩種方式詳解

    本文通過一個(gè)demo講述一下這兩種注冊(cè)方式,使用的是傳統(tǒng)的向zk注冊(cè)的方案。對(duì)springboot 注冊(cè)zk的相關(guān)知識(shí)感興趣的朋友一起看看吧
    2018-01-01
  • 詳解java中的四種代碼塊

    詳解java中的四種代碼塊

    這篇文章主要介紹了詳解java中的四種代碼塊,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • 詳解全局事務(wù)注解@GlobalTransactional的識(shí)別

    詳解全局事務(wù)注解@GlobalTransactional的識(shí)別

    這篇文章主要為大家介紹了詳解全局事務(wù)注解@GlobalTransactional的識(shí)別源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • SpringBoot項(xiàng)目啟動(dòng)時(shí)提示程序包不存在和找不到符號(hào)的處理方法

    SpringBoot項(xiàng)目啟動(dòng)時(shí)提示程序包不存在和找不到符號(hào)的處理方法

    最近接手同事開發(fā)的一個(gè)Springboot工作項(xiàng)目,從svn上整體拉取下來后,構(gòu)建完成后,啟動(dòng)的時(shí)候遇到了程序包找不到的情況,所以本文記錄了SpringBoot項(xiàng)目啟動(dòng)時(shí)提示程序包不存在和找不到符號(hào)的處理方法,需要的朋友可以參考下
    2024-05-05
  • RocketMQ消息重試機(jī)制原理分析講解

    RocketMQ消息重試機(jī)制原理分析講解

    這篇文章主要介紹了RocketMQ消息重試機(jī)制,消息的發(fā)送和消費(fèi)并不是百分百成功的,在出現(xiàn)消息推送失敗時(shí),RocketMQ有何補(bǔ)償方式來進(jìn)行消息重試呢?這是我們今天要一起學(xué)習(xí)的點(diǎn)
    2023-02-02
  • 詳解Java Web如何限制訪問的IP的兩種方法

    詳解Java Web如何限制訪問的IP的兩種方法

    這篇文章主要介紹了詳解Java Web如何限制訪問的IP的兩種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10

最新評(píng)論

离岛区| 辉县市| 噶尔县| 于都县| 密云县| 莲花县| 南京市| 公主岭市| 威宁| 庄河市| 赤水市| 合作市| 沙洋县| 永修县| 武汉市| 高尔夫| 安仁县| 缙云县| 恭城| 太湖县| 章丘市| 循化| 永康市| 天等县| 万源市| 青铜峡市| 志丹县| 策勒县| 韶关市| 白山市| 武鸣县| 台东市| 酉阳| 始兴县| 峡江县| 辽阳市| 广灵县| 富川| 明光市| 资源县| 久治县|