當前位置:才華齋>計算機>java語言>

Java的類常識

java語言 閱讀(2.4W)

JAVA中的類是具備某些共同特徵的實體的集合,它是一種抽象的概念。下面小編為大家介紹了

Java的類常識

1、Java多執行緒基本使用

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

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

2、請列舉JAVA語言的主要特點

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

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

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

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

③解釋執行JAVA應用時,JVM中的直譯器將解釋類檔案,生成符合當前平臺的位元組碼。

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

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

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

參考答案:JAVA類中主要包含屬性、方法、構造方法、塊以及內部類。

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

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

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

塊能夠用來在類載入時執行操作或者在每次例項化前執行通用操作;

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

4、請說明構造方法的作用和特徵

解析:類是物件的模板,使用類往往都需要首先對類進行例項化,即建立物件。要建立物件必須使用new關鍵字呼叫構造方法(constructor)才能完成,構造方法中往往對屬性進行例項化,也可以實現其他必要的功能,如讀取屬性檔案等。

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

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

5、什麼是方法過載(overload)?

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

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

6、請列舉Java語言中的'許可權訪問修飾符,並說明每種許可權的含義。

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

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

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

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

參考答案:Java語言的八種基本資料型別有:byte位元組型,8位長度:short短整型,16位長度,int整型,32位長度:long長整型,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呼叫構造方法進行賦值,引用型別的變數擁有自己的屬性和方法,可以使用圓點呼叫自己的屬性和方法。基本資料型別直接使用=號進行賦值,且沒有自己的屬性和方法,往往都在宣告屬性或方法時使用。

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

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

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

參考答案:使用“=”賦值不一定每次都建立一個新的字串,而是從“字串例項池”中查詢字串。使用new進行賦值,則每次都建立一個新的字串。

10、String類是一個“不可變類”,請解釋“不可變類”的含義。

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

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