1. java的特點有哪些
Java是一種優秀的程序設計語言,它具有令人賞心悅目的語法和易於理解的語義。不僅如此,Java還是一個由一系列計算機軟體和規范形成的技術體系,這個技術體系提供了完整的用於軟體開發和跨平台部署的支持環境,並廣泛應用於嵌入式系統、移動終端、企業伺服器、大型機等各種場合。順便說一下,JavaScript和Java沒有任何關系,最開始JavaScript叫liveScript,當時Java太火了,於是乎 liveScript更名為JavaScript借勢宣傳了一波。
隨便搜搜近幾年的編程類語言排行榜,Java絕對都是當之無愧的老大哥。那麼,Java究竟有什麼特性能獲得 廣大程序員的一致青睞呢? 在此列出java的11個特性:
1.簡單性
Java語法是C++語法的一個「純凈版本」。這里沒有頭文件,指針運算(甚至指針語法),結構,聯合,操作符重載,虛基類等等。不僅如此,Java開發環境遠遠超出大多數其他編程語言的開發環境。
2.面向對象
什麼是面向對象?用木匠打一個比方,一個「面向對象」的木匠始終關注的是所製作的椅子,第二位才是所使用的工具;而一個「非面向對象」木匠首先考慮的是所使用的工具。
在Java的世界裡,一切皆對象。
Java的面向對象特性與C++旗鼓相當,與C++不同的點在於多重繼承。在Java中,取而代之的是更簡單的介面概念。而且與C++想比,Java提供了更豐富非運行時自省功能。
3.分布式(微服務)
Java有豐富的常式庫,用於處理HTTP和FTP之類的TCP/IP協議。Java應用程序能夠通過URL打開和訪問網路上的對象,其便捷程度就好像訪問本地文件一樣。
4.健壯性
Java與C++最大的不同在於Java使用的指針模型可以消除重寫內存和損壞數據的可能性(對於曾經花費幾個小時來檢查由於指針bug而引起內存沖突的人來說,一定很喜歡Java的這一特性)。不僅如此,Java編譯器能夠檢測許多在其他語言中僅在運行時才能夠檢測出來的問題。
5.安全性
Java適用於網路/分式式環境。為了達到這個目標,在安全性方面投入了大量的精力。使用Java可以構建防病毒,防篡改的系統。
從一開始,Java就設計出能夠防範常見的各種攻擊:
(1)運行時堆棧溢出。蠕蟲和病毒常用的攻擊手段。(2)破壞自己進程空間之外的內存。(3)未經授權讀寫文件。
6.體系結構中立
編譯器生成一個體系結構中立的目標文件格式,這是一種編譯過的代碼,只要有Java運行時系統,這些編譯後的代碼就可以在許多處理器上運行。Java編譯器通過生成與特定計算機體系結構無關的位元組碼指令來實現這一特性。精心設計的位元組碼不僅可以很容易的在任何機器上解釋執行,而且還可以動態地翻譯成本地機器代碼。
7.可移植性
與C/C++不同,Java規范中沒有「依賴具體實現的地方」。基本數據類型的大小以及有關運算都做了明確的說明。例如,Java中的int永遠是32位的整數,二在C/C++中,int可能是16位整數,32位整數,也可能是編譯器提供商指定的其他大小。在Java中,數據類型具有固定的大小,這消除了代碼代碼移植時令人頭疼的主要問題。
8.解釋型
Java解釋器可以再任何移植了解解釋器的機器上執行Java位元組碼。由於鏈接是一個增量式且輕量級的過程。所以開發過程也變得更加快捷,更加具有探索性。
9.高能性
盡管對解釋後的位元組碼性能已經比較滿意,但是在某些場合下可能需要更加高效的性能。位元組碼可以(在運行時刻)動態的翻譯成對應運行這個應用的特定CPU的機器碼。
10.多線程
Java在當時很超前,他是第一個支持並發程序設計的主流語言,多線程可以帶來更好的交互影響和實時行為。並發程序設計絕非易事,但是Java在這方面表現出色,可以很好的管理這個工作。
11.動態性
Java與C/C++相比更具有動態性。它能夠適應不斷發展的環境。庫中可以自由的添加新方法和實例變數,而對客戶端沒有任何影響。在Java中找出運行時類型信息十分簡單。
2. Java的動態特性有哪些
Java的動態特性有兩種,一是隱式的;另一種是顯示的。隱式的(implicit)方法就是當程式設計師用到new 這個Java 關鍵字時,會讓類別載入器依需求載入您所需要的類別,這種方式使用了隱式的(implicit)方法。顯式的方法,又分成兩種方式,一種是藉由java.lang.Class 里的fo
Name()方法,另一種則
是藉由java.lang.ClassLoade里的loadClass()方法。
3. Java語言的特點
Java語言的主要特點:
1. 跨平台性
所謂的跨平台性,是指軟體可以不受計算機硬體和操作系統的約束而在任意計算機環境下正常運行。這是軟體發展的趨勢和編程人員追求的目標。之所以這樣說,是因為計算機硬體的種類繁多,操作系統也各不相同,不同的用戶和公司有自己不同的計算機環境偏好,而軟體為了能在這些不同的環境里正常運行,就需要獨立於這些平台。
而在Java語言中, Java自帶的虛擬機很好地實現了跨平台性。 Java源程序代碼經過編譯後生成二進制的位元組碼是與平台無關的,但是可被Java虛擬機識別的一種機器碼指令。 Java虛擬機提供了一個位元組碼到底層硬體平台及操作系統的屏障,使得Java語言具備跨平台性。
2. 面向對象
面向對象是指以對象為基本粒度,其下包含屬性和方法。對象的說明用屬性表達,而通過使用方法來操作這個對象。面向對象技術使得應用程序的開發變得簡單易用,節省代碼。Java是一種面向對象的語言,也繼承了面向對象的諸多好處,如代碼擴展、代碼復用等。
3. 安全性
安全性可以分為四個層面,即語言級安全性、編譯時安全性、運行時安全性、可執行代碼安全性。語言級安全性指Java的數據結構是完整的對象,這些封裝過的數據類型具有安全性。編譯時要進行Java語言和語義的檢查,保證每個變數對應一個相應的值,編譯後生成Java類。運行時Java類需要類載入器載入,並經由位元組碼校驗器校驗之後才可以運行。 Java類在網路上使用時,對它的許可權進行了設置,保證了被訪問用戶的安全性。
4. 多線程
多線程在操作系統中已得到了最成功的應用。多線程是指允許一個應用程序同時存在兩個或兩個以上的線程,用於支持事務並發和多任務處理。 Java除了內置的多線程技術之外,還定義了一些類、方法等來建立和管理用戶定義的多線程。
5. 簡單易用
Java源代碼的書寫不拘泥於特定的環境,可以用記事本、文本編輯器等編輯軟體來實現,然後將源文件進行編譯,編譯通過後可直接運行,通過調試則可得到想要的結果。
4. 問題1 Java語言有哪些特性
**1. Java語言是易學的。**Java語言的語法與C語言和C++語言很接近,使得大多數程序員很容易學習和使用Java。
**2. Java語言是強制面向對象的。**Java語言提供類、介面和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持介面之間的多繼承,並支持類與介面之間的實現機制(關鍵字為implements)。
**3. Java語言是分布式的。**Java語言支持Internet應用的開發,在基本的Java應用編程介面中有一個網路應用編程介面(java net),它提供了用於網路應用編程的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠程方法激活)機制也是開發分布式應用的重要手段。
**4. Java語言是健壯的。**Java的強類型機制、異常處理、垃圾的自動收集等是Java程序健壯性的重要保證。對指針的丟棄是Java的明智選擇。
**5. Java語言是安全的。**Java通常被用在網路環境中,為此,Java提供了一個安全機制以防惡意代碼的攻擊。如:安全防範機制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、位元組代碼檢查。
**6. Java語言是體系結構中立的。**Java程序(後綴為java的文件)在Java平台上被編譯為體系結構中立的位元組碼格式(後綴為class的文件),然後可以在實現這個Java平台的任何系統中運行。
**7. Java語言是解釋型的。**如前所述,Java程序在Java平台上被編譯為位元組碼格式,然後可以在實現這個Java平台的任何系統的解釋器中運行。
**8. Java是性能略高的。**與那些解釋型的高級腳本語言相比,Java的性能還是較優的。
**9. Java語言是原生支持多線程的。**在Java語言中,線程是一種特殊的對象,它必須由Thread類或其子(孫)類來創建。
希望對您有所幫助!~
5. java三大特徵
面向對象的分析與設計(OOA&D)方法是一種非常成熟的技術。也是當前商業公司經常使用的一種技術,因為JAVA語言本身就是一種面向對象的語言,所以掌握面向對象這種技術對於JAVA語言的應用具有重要意義。
繼承(inheritance)
繼承是使用已存在的類的定義作為基礎建立新類的技術,新類的定義可以增加新的數據或新的功能,也可以用父類的功能,但不能選擇性地繼承父類。這種技術使得復用以前的代碼非常容易,能夠大大縮短開發周期,降低開發費用。比如可以先定義一個類叫車,車有以下屬性:車體大小,顏色,方向盤,論壇,而又由車這個類派生出教程和卡車兩個類,為轎車添加一個小後備箱,而為卡車添加一個大貨箱。
封裝(encapsulation)
類使得數據和對數據的操作集成在一起,從而對使用該類的其他人來說,可以不管它的實現方法,而只管用它的功能,從而實現所謂的信息隱藏。
多態(polymorphism)
多態又分為設計時多態和運行時多態,例如重載又被稱為設計時多態,而對於覆蓋或繼承的方法,JAVA運行時系統根據調用該方法的實例的類型來決定選擇調用哪個方法則被稱為運行時多態。總而言之,面向對象的設計的典型特點就是繼承,封裝和多態,這些特點也是面向對象之所以能如此盛行的關鍵所在。
單繼承與多繼承
JAVA不支持多重繼承,單繼承使JAVA的繼承關系很簡單,一個類只能有一個父類,易於管理程序,同時一個類可以實現多個介面,從而克服單繼承的缺點。
介面的定義和類的定義很相似,只是關鍵字不同,關鍵字為interface。生命格式如下:
interface 介面名
{
}
上面的大括弧中為介面體。介面體中包含成員變數定義和方法定義兩部分。
介面體中只進行方法的聲明,不允許提供方法的實現。所以在格式上只存在方法聲明,實際上沒有方法體,而方法體要在實現的類中再去具體定義。
還有一點需要說明的是:如果一個類使用了某個介面,就必須要實現這個介面的所有方法,即使實在沒有內容只是一個空的方法體也不許要寫。而且每個方法都默認是public的,所以實現時代碼一定要用public做修飾,參數個數,類型以及返回值的類型都必須與介面中的聲明相一致。
例如:
interface Runable
{
}
當某個類要實現這個介面時,就用 imlements 來聲明。
例如,我們相做一個多線程的例子,那麼就可有兩種實現方式,一種是通過定義一個Thread類的子類來實現,另一種是通過實現Runable介面來實現。代碼如下(這里的PrintHello類就是通過實現Runable介面來實現的,而不是擴展Thread稱為他的子類):
import java.lang.*;
class TestThread
{
public static void main(String args[])
{
try{
printHello ph = new PrintHello();
Thread Tph = new Thread(ph);
for(;;){
System.out.println("I'm main");
Thread.sleep(100);
}
}
catch(Exception e){
e.printStackTrace();
}
}
}
class PrintHello implements Runnable
{
public void run(){
try{
for(;;){
System.out.println("I'm hello");
}
}
catch(Exception e){
e.printStackTrace();
}
}
}