首頁 >Java >java教程 >Java基礎:Java的類別常識(一)

Java基礎:Java的類別常識(一)

黄舟
黄舟原創
2017-02-06 11:21:481096瀏覽

1

   解析:雖然不知道什麼是跨平台也可以使用Java語言進行編程,但是對於一個Java編程員來說,理解跨平台特性能夠更深入掌握Java語言,所以企業中往往要求應聘者至少理解這個特性。

  參考答案:Java的跨平台特性也稱為可移植性、平台無關性,或一次編寫處處運作。他的意思是如果用Java語言寫一個應用,那麼就可以在不同平台上運行,而不需要單獨為不同平台運行開發。之所以能實現跨平台的特性。主要得益於Java虛擬機器(JVM),JVM解釋器在執行Java應用時依照目前平台進行解釋,解釋成符合目前平台規範的機器碼,所以可以實現相同的應用程式在不同平台上都能運作。

  解析:了解一門語言,往往從熟悉該語言的主要特點開始入手,所以企業也常常透過應徵者對JAVA語言特點的掌握程度而判斷其語言基礎是否紮實。

  參考答案:JAVA語言有許多特點,主要包括:

  ①跨平台性:一個應用可以不經過修改直接運行到不同的平台上。

  ②物件導向:JAVA語言是一門面向對面的語言,可以使用物件的屬性和行為,可以使用物件導向的想法進行分析設計,並實現整個應用。

  ③解釋執行JAVA應用時,JVM中的解釋器將解釋類別文件,產生符合目前平台的字節碼。

  ④自動回收:JAVA應用中的垃圾回收是自動進行的,JVM中的後台執行緒將監視記憶體中資料的使用,當記憶體中的資料不再被引用時,將被當作垃圾回收,而不需要程式設計師動手回收。

請說明JAVA類別中所包含的元素?3        請說明一個JAVA類別中主要包含哪幾個元素?並說明每種元素的作用。

  解析:無論簡單或複雜的JAVA應用,都是由若干個類別組成,所以類別是JAVA應用的組成單位。了解一個類別中包含的主要元素能夠對類別有一個清晰的認識。一個類別中往往會有五種元素,即屬性、方法、構造方法、區塊以及內部類別、其實塊和內部類別比較少見。

  參考答案:JAVA類別中主要包含屬性、方法、建構方法、區塊、內部類別。

  屬性用來定義物件的資料;

  方法用來定義物件的行為;

  建構方法可以用來建立物件;

『  建構方法可以用來建立物件;

『通用操作;

  內部類別作為類別的一個成員存在,能夠存取外部類別的屬性和方法。

請說明建構方法的作用與特徵4  解析:類別是物件的模板,使用類別往往需要先對類別進行實例化,也就是建立物件。要建立物件必須使用new關鍵字呼叫建構方法(constructor)才能完成,建構方法中往往會對屬性進行實例化,也可以實作其他必要的功能,如讀取屬性檔案等。

  構造方法有獨特的特徵:名字必須與類別名稱相同且大小寫敏感,而且建構方法不能宣告回傳值,這兩個特徵缺一不可。使用Eclipse工具時,可以使用選單Generate Constructor自動產生不同的建構方法。

  參考答案:建構方法的作用是用來建立對象,使用new關鍵字呼叫。建構方法的名字必須與類別的名字相同,且大小寫敏感,同時建構方法不能宣告回傳值類型,可以使用任意一種存取修飾符,但不能使用其他修飾符進行修飾,如static、final、abstract等修飾符都可以修飾構造方法。

什麼是方法重載(overload)?5  解析:如果一個類別的某個行為,會有不同的演算法和邏輯,例如,Math類別的計算絕對值的方法,既可以計算int型別數值的絕對值,也可以計算double類型數值的絕對值。在這種情況下,每種類型定義一個不同的方法名,如abInt、absDouble,那麼類別的可讀性就較差,使用時,必須熟悉處理每種類型參數所對應的方法名稱。然而,如果使用同一個方法名,而使用不同的形式參數來區別這些方法,那麼就具有很好的可讀性,如abs(int i)、abs(double d)等。可讀性強的程式碼是企業對開發人員的基本要求,方法重載能夠使得程式碼有很好的可讀性。

  參考答案:方法重載指的是在一個類別中可以宣告多個相同名字的方法,而方法的形式參數有區別。當呼叫這些同名的方法時,JVM會根據實際參數的不同綁定到不同的方法。

請列舉Java中權限存取修飾符6

        請列舉Java語言中的權限存取修飾符,並說明每種權限的意義。

  解析:正確使用權限存取修飾符,能夠有效控制類別以及類別成員的安全性,Java語言中有四種存取修飾符,包括public、同套件、protected以及private,一般情況下,應用程式中的類別多是public權限,屬性多是private權限,方法多是public權限。

  參考答案:Java語言中有四種權限存取修飾符,即public、protected、同包以及private,public表示公共權限,即任何包中都可以存取:protected表示受保護權限,即同包中可以訪問,同包中的子類可以訪問:同包權限是預設權限,即不顯示指明權限修飾符的時候就是同包權限,表示只有同包中可以訪問:private是私有權限,表示只能在本類中訪問。

請列舉Java中基本資料類型7

       請列舉Java語言中的八種基本資料類型,並說明每種資料類型的意義及長度。

  解析:資料型別在任何一門程式語言中都是很重要的知識點,屬性、方法參數、方法回傳值要指定各自的資料型別。 Java語言雖然是一門物件導向的語言。但是也定義了基本資料類型,基本資料型別可以直接賦值,不需要使用new關鍵字創建,可以直接使用運算子進行運算,程式設計中經常被使用,而且Java語言中的基本資料類型的長度固定,不會隨著平台的不同而不同。

  參考答案:Java語言的八種基本資料型別有:byte位元組型,8位元長度:short短整型,16位元長度,int整型,32位元長度:長型,64位元長度: float單精度浮點型。 32位元長度:double雙精確度浮點型,64位元長度:char字元型,16位元長度:boolean型,表示邏輯值,有true和false兩個值,分別表示真和假。

什麼叫引用型別8        什麼叫引用型,引用型別和基本資料型別有什麼差別?

  解析:許多初級程式設計師都能夠理解int i=20;中的int是一種型,稱為整數型。而對於類似Employee e=new Employee();這樣表達式中的Employee卻感覺無所適從。其實,任何一個類別都是一種類型,如Employee就是一種類型,可以說變數e的型別就是Employee。 Java語言中將類別的類型稱為引用類型,即reference type。

  可以說,除了八種基本資料類型之外的類型都是引用類型,包括API中所有的類別、自訂的所有類,也包括數組。引用型別和基本資料型別的直覺差異就是引用型別的變數需要使用new呼叫建構法來賦值,而基本資料型別可以直接使用「=」號賦值。但是,引用型別中的String比較特殊,既可以使用new關鍵字賦值,也可以直接使用「=」賦值,一般情況下都使用「=」直接賦值。

  參考答案:Java語言中除了基本資料型別之外的型別,都稱為引用型別。引用類型就是類別的類型,所有的物件都是引用類型,包括陣列物件。引用型別必須使用new呼叫建構方法來賦值,引用型別的變數擁有自己的屬性和方法,可以使用圓點來呼叫自己的屬性和方法。基本資料型別直接使用=號進行賦值,且沒有自己的屬性和方法,往往都在宣告屬性或方法時使用。

對於String物件9       對於String對象,可以使用「=」賦值,也可以使用new關鍵字賦值,兩種方式有什麼區別?

  解析:String類型是實際工作中經常使用到的類型,從資料類型上劃分,String是一個引用類型,是API中定義的一個類別。所以String類型的物件可以使用new創建,例如String name=new String(“ETC”);為變數name進行賦值,值為「ETC」。然而,String類比比起其他類別有些特殊,可以使用“=”直接賦值,如String name=“ETC”,也是為變數name進行賦值,值為“ETC”。

  這兩種賦值方式是有差別的,使用new賦值,永遠創建一個新對象,在新的內存空間初始化了字符串的值;而使用“=”賦值,不會每次都初始化新的字串,而是從一個“字串實例池”中去查找有沒有要賦值的字串,如有則直接引用;如不存在,則初始化一個字串,並放入“字串實例池” 。在實際程式設計中,往往使用“=”好對String類型變數進行賦值。

  參考答案:使用「=」賦值不一定每次都會建立新的字串,而是從「字串實例池」中尋找字串。使用new進行賦值,則每次都會建立新的字串。

String類別10

       String類別是一個“不可變類別”,請解釋“不可變類別”的意思。

  解析:String類別是一個不可變類,即immutable類別。所謂不可變,意思是當一個字串被初始化後,它的值就不會被改變。例如,String s=new String(“hello”)為將初始化一個值為hello的字串,如果呼叫s.toUpperCase()看起來是把hello變成大寫的HELLO,然而事實上並不會把已有的hello變成HELLO,而是在新的空間初始化一個HELLO字串。也因為有這種不可變性,所以才能支援「字串實例池」的使用。

  參考答案:所謂的不可變類,就是當字串初始化後,就不能夠被改變。

以上就是Java基礎:Java的類別常識(一)的內容,更多相關內容請關注PHP中文網(www.php.cn)!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn