搜尋
首頁Javajava教程詳解Java的特點與優點(動力節點整理)

由於Java語言的設計者十分熟悉C++語言,所以在設計時很好地借鑒了C++語言。可以說,Java語言是一種比C++語言「還面向物件」的一種程式語言,以下透過本文說下java的特點和優點

Java的特色

Java語言是一種優秀的程式語言。它最大的優點就是與平台無關,在Windows 9x、Windows NT、Solaris、Linux、MacOS以及其它平台上,都可以使用相同的程式碼。 「一次編寫,到處運行」的特點,使其在網路上廣泛採用。

由於Java語言的設計者十分熟悉C++語言,所以在設計時很好地借鑒了C++語言。可以說,Java語言是一種比C++語言「還面向物件」的一種程式語言。 Java語言的語法結構與C++語言的語法結構十分相似,這使得C++程式設計師學習Java語言更加容易。

當然,如果只是對C++改頭換面,那就不會有今天的Java熱了。 Java語言提供的一些有用的新特性,使得使用Java語言比C++語言更容易寫出「無錯程式碼」。

這些新功能包括:

1) 提供了對記憶體的自動管理,程式設計師無需在程式中進行分配、釋放內存,那些可怕的記憶體分配錯誤不會再打擾你了;

2) 去除了C++語言中的令人費解、容易出錯的“指針”,用其它方法來進行彌補;

3) 避免了賦值語句(如a = 3)與邏輯運算語句(如a = = 3)的混淆;

4) 取消了多重繼承這一複雜的設施。

一些說明:

「多重繼承」是「物件導向」的術語,我們將會在第2章中詳細敘述。這些優點正是Java熱的背景,Java憑藉其強大的移植能力、多執行緒處理和連網能力,風靡全球,現在逐漸成為手持裝置、網路、車內電腦的標準。

一些提示:

Java語言的規範是公開的,你可以在oracle的官網上找到它,閱讀Java語言的規範是提高水平的好方法。

Java語言的關鍵特性

Java語言有許許多多有效的特性,吸引著程式設計師們,最主要的有以下幾個:

1.簡潔有效

Java語言是一種相當簡潔的「物件導向」程式設計語言。 Java語言省略了C++語言中所有的難以理解、容易混淆的特性,例如頭檔、指標、結構、單元、運算子重載、虛擬基礎類別等。它更嚴謹、簡潔。

注意:

有些熟悉Visual Basic語言的讀者會覺得Java語言相對VB而言更複雜,的確使用Java程式設計是比使用VB更費力一些。但大家一定要知道VB是一種整合化開發工具,其憑藉視覺化工具成為開發GUI程式的神器,但並不能算是一種語言。它的基礎是Basic語言,這是一種最簡單的語言,但其功能不如C、C++、Java完整。

Java語言採用了特殊的軟體建構方法,可以在很小的機器上獨立運作。只要40K就可以容下一個最基本的解釋器,即使加上基本標準庫和線程支持,也只需再加上175K就夠的。這也是Java語言的一個成功秘訣。

2.高可移植性

對於一個程式設計師而言,寫出來的程式如果不需修改就能夠同時在Windows、MacOS、LINUX等平台上運行,簡直就是美夢成真的好事!而Java語言就讓這原本遙不可及的事離我們越來越近。使用Java語言編寫的程序,只要做較少的修改,甚至有時根本不需要修改就可以在不同平台上運行了,Java絕對是跨平台的程式語言。

舉個例子,不同平台上對資料型別的大小有不同的規定。在有的平台上,整數(int)是用一個16位元二進位數表示,而有的平台上則是使用一個32位元二進位數表示的。 C/C++語言並沒有屏蔽掉這個由不同平台造成的差異。這樣如果在一個使用16位元二進制數表示整數的平台上開發的C語言原始程序,要在一個使用32位元二進制數表示整數的平台上運行,簡直就是噩耗。

而在Java語言中,就屏蔽掉了這種由平台造成的不同。 Java中的整數數是一定是由32位元二進位表示的,Java虛擬機將這個差異消化了。當我們想將一個使用16位元二進制數表示整數的平台上開發的Java語言原始程序,移植到一個使用32位元二進制數表示整數的平台上運行,就不用修改了。

Java語言具備這種高移植性是一種必然,因為它的設計理念就是「一次編寫,到處運行」嘛。

3.「物件導向」

可以這麼說,「物件導向」是軟體工程學的革命,大大提升了人類的軟體開發能力,是一個偉大的進步,是軟體發展的一個重大的理程碑。

在過去的30年間,「物件導向」有了長足的發展,充分體現了其價值,到現在已經形成了「物件導向的系統分析」、「物件導向的系統設計」、「物件導向的程式設計」一個體系。所以做為一個現代程式語言,是不能夠偏離這個方向的,Java語言也不例外。

注意:

Java語言被喻為比C++還「物件導向」的程式設計語言,不理解「面向對象」的思想就難以很好地運用Java語言。

4.解釋型

大家還記得Basic語言嗎?當我們使用Basic語言進行程式設計時,得先進入Basic語言環境,然後輸入原始程序,再運行它,Basic語言環境一句地解釋、運行,直接得出結果。這種語言就是解釋型語言。

而像C/C++這樣的語言就不是這樣的了,我們先使用編輯軟體或整合開發環境(IDE)編寫原始程序,然後對其進行編譯,產生可執行檔。然後我們再透過作業系統執行這個可執行檔得到結果。這種語言就是編譯型語言。

解釋型語言效率低,速度慢;編譯型語言效率高,速度快。

Java語言是一種解譯型語言。對,沒看錯,它是一種解釋型語言,也就是說,相對於C/C++語言來說,Java語言寫出來的程式效率低,執行速度慢。但它正是透過在不同平台上運行Java解釋器,對Java程式碼進行解釋,來實現「一次編寫,到處運行」的宏偉目標的。為了達到目標,犧牲效率還是值得的,再說,現在的電腦科技日新月異,運算速度也越來越快,使用者不會感到太慢的。

一些提示:

其實Java語言並不是像Basic語言那樣完全的解釋性,它是一種解釋型與編譯型的折中。使用Java語言編寫程序,首先用編輯軟體或整合開發環境(IDE)編寫原始程序,然後使用Java編譯器進行一次偽編譯,將其編譯成為中間碼(也稱為字節碼)。然後再使用Java解釋器進行解釋。

5.適合分散式運算

Java語言具有強大的、易於使用的連網能力,非常適合開發分散式運算的程式。 Java應用程式可以像存取本機檔案系統那樣透過URL存取遠端物件。

使用Java語言編寫Socket通訊程式十分簡單,使用它比使用任何其它語言都簡單。而且它還十分適合開發公共網關介面(CGI)腳本的開發,另外還可以使用Java小型應用程式(Applet)、Java伺服器頁面(Java Server Page,簡稱JSP)、Servlet等方式來建構更豐富的網頁。

6.擁有較好的效能

#如前面說到,由於Java是一種解釋型語言,所以它的執行效率相對就會慢一些,但由於Java語言採用了兩種手段,使得其效能還是不錯的。

1) Java語言原始程式編寫完成後,先使用Java偽編譯器進行偽編譯,將其轉換為中間碼(也稱為字節碼),再解釋;

# 2) 提供了一種「準實時」(Just-in-Time,JIT)編譯器,在需要更快的速度時,可以使用JIT編譯器將字節碼轉換成機器碼,然後將其緩衝下來,這樣速度就會更快。

一些提示:

這種JIT編譯器,顧名思義,Just-In-Time,僅在運行時才進行,將其編譯成為平台相關的機器碼(由於現在已經運行了,無需再考慮可移植性)。這樣處理後,可以帶來10倍甚至20倍的速度提升。而且這個技術不斷地改正,今後JIT編譯器將更加智能,能夠監測出哪些程式碼經常執行,從而對其進行適當的最佳化,進一步加快執行速度。

7.健壯、防患於未然

Java語言在偽編譯時,做了許多早期潛在問題的檢查,並且在運行時來做了很多相應的檢查,可以說是最嚴格的一種「編譯器」。它的這種「防患於未然」的手段將許多程式中的錯誤扼殺在搖藍之中。經常有許多在其它語言中必須透過運行才會暴露出來的錯誤,在編譯階段就被發現了。另外,在Java語言中也提供了許多保證程式穩定、健壯的特性,有效地減少了錯誤,這使得Java應用程式更加健壯。

8.具有多線程處理能力

線程,是一種輕量級進程,是現代程式設計中必不可少的一種特性。多執行緒處理能力使得程式能夠具有更好的互動性、即時性。 Java在多執行緒處理方面表現超群,具有讓你驚喜的強大功能,而且在Java語言中進行多執行緒處理很簡單。

注意:

要注意的是,各主流平台在執行緒的實作上千差萬別,所以Java語言也暫時無法在這方面做到“與平台無關”,所以Java為不同的作業系統各實作了一套多執行緒機制。而對於程式設計師來說,不同的機器上,呼叫多執行緒機制的程式碼還是相同的。

9.具有較高的安全性

由於Java語言在設計時,在安全性方面考慮很仔細,做了許多探究,使得Java語言成為目前最安全的程式設計語言。儘管Sun公司曾經許諾過:“通過Java可以輕鬆構建出防病毒、防黑客的系統”,但“世界上沒有絕對的安全”這一真理是不會因為某人的許諾而失靈驗的。就在JDK (Java Development Kit)1.0發布不久後,美國Princeton(普林斯頓)大學的一組安全專家發現了Java 1.0安全特性中的第一個錯誤。從此,Java安全方面的問題開始被關注。不過至今所發現的安全隱憂都很微不足道,而且Java開發組還宣稱,他們對系統安全方面的Bugs非常重視,會對這些被發現的進行立即修復。而且由於Sun公司開放了Java解釋器的細節,所以有助於透過各界力量,共同發現、防範、制止這些安全隱患。

10.是一種動態語言

Java是一種動態的語言,這表示在以下兩個方面:

1) 在Java語言中,可以簡單、直覺地查詢執行階段資訊;

2) 可以將新程式碼加入到一個正在執行的程式中去。

11.中性的物件語言

「Java編譯器產生的是一種中性的物件檔案格式。」也就是說,Java編譯器透過偽編譯後,將產生一個與任何電腦體系統無關的「中性」的字節碼。這種中性結構其實並不是Java首創的,在Java出現之前UCSD Pascal系統就已在一種商業產品中做到這一點,另外在UCSD Pascal之前還有這種方式的先例,那就是Niklaus Wirth實現的Pascal語言中就採用了這種降低一些效能,換取更好的可移植性和通用性的方法。 Java的這種字節碼經過了許多精心的設計,使得其能夠很好地兼容當今大多數流行的計算機體系統,可以在任何機器上易於解釋,易於動態翻譯成為機器代碼。

以上是詳解Java的特點與優點(動力節點整理)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
带你搞懂Java结构化数据处理开源库SPL带你搞懂Java结构化数据处理开源库SPLMay 24, 2022 pm 01:34 PM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于结构化数据处理开源库SPL的相关问题,下面就一起来看一下java下理想的结构化数据处理类库,希望对大家有帮助。

Java集合框架之PriorityQueue优先级队列Java集合框架之PriorityQueue优先级队列Jun 09, 2022 am 11:47 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于PriorityQueue优先级队列的相关知识,Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,下面一起来看一下,希望对大家有帮助。

完全掌握Java锁(图文解析)完全掌握Java锁(图文解析)Jun 14, 2022 am 11:47 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于java锁的相关问题,包括了独占锁、悲观锁、乐观锁、共享锁等等内容,下面一起来看一下,希望对大家有帮助。

一起聊聊Java多线程之线程安全问题一起聊聊Java多线程之线程安全问题Apr 21, 2022 pm 06:17 PM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于多线程的相关问题,包括了线程安装、线程加锁与线程不安全的原因、线程安全的标准类等等内容,希望对大家有帮助。

Java基础归纳之枚举Java基础归纳之枚举May 26, 2022 am 11:50 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于枚举的相关问题,包括了枚举的基本操作、集合类对枚举的支持等等内容,下面一起来看一下,希望对大家有帮助。

详细解析Java的this和super关键字详细解析Java的this和super关键字Apr 30, 2022 am 09:00 AM

本篇文章给大家带来了关于Java的相关知识,其中主要介绍了关于关键字中this和super的相关问题,以及他们的一些区别,下面一起来看一下,希望对大家有帮助。

Java数据结构之AVL树详解Java数据结构之AVL树详解Jun 01, 2022 am 11:39 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于平衡二叉树(AVL树)的相关知识,AVL树本质上是带了平衡功能的二叉查找树,下面一起来看一下,希望对大家有帮助。

一文掌握Java8新特性Stream流的概念和使用一文掌握Java8新特性Stream流的概念和使用Jun 23, 2022 pm 12:03 PM

本篇文章给大家带来了关于Java的相关知识,其中主要整理了Stream流的概念和使用的相关问题,包括了Stream流的概念、Stream流的获取、Stream流的常用方法等等内容,下面一起来看一下,希望对大家有帮助。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。