- 相關(guān)推薦
Java的類(lèi)常識
JAVA中的類(lèi)是具備某些共同特征的實(shí)體的集合,它是一種抽象的概念。下面小編為大家介紹了
1、Java多線(xiàn)程基本使用
解析:雖然不知道什么是跨平臺也可以使用Java語(yǔ)言進(jìn)行編程,但是對于一個(gè)Java編程員來(lái)說(shuō),理解跨平臺特性能夠更深入掌握Java語(yǔ)言,所以企業(yè)中往往要求應聘者至少理解這個(gè)特性。
參考答案:Java的跨平臺特性也被稱(chēng)為可移植性、平臺無(wú)關(guān)性,或者一次編寫(xiě)處處運行。他的意思就是如果用Java語(yǔ)言編寫(xiě)一個(gè)應用,那么就可以在不同平臺上運行,而不需要為不同平臺單獨運行開(kāi)發(fā)。之所以能實(shí)現跨平臺的特性。主要得益于Java虛擬機(JVM),JVM解釋器在運行Java應用時(shí)根據當前平臺進(jìn)行解釋?zhuān)忉尦煞袭斍捌脚_規范的機器碼,所以可以實(shí)現同樣的應用在不同平臺上都能運行。
2、請列舉JAVA語(yǔ)言的主要特點(diǎn)
解析:了解一門(mén)語(yǔ)言,往往從熟悉該語(yǔ)言的主要特點(diǎn)開(kāi)始入手,所以企業(yè)也常常通過(guò)應聘者對JAVA語(yǔ)言特點(diǎn)的掌握程度而判斷其語(yǔ)言基礎是否扎實(shí)。
參考答案:JAVA語(yǔ)言有很多特點(diǎn),主要包括:
、倏缙脚_性:一個(gè)應用可以不經(jīng)過(guò)修改直接運行到不同的平臺上。
、诿嫦驅ο螅篔AVA語(yǔ)言是一門(mén)面向對面的語(yǔ)言,可以使用對象的屬性和行為,可以使用面向對象的思想進(jìn)行分析設計,并實(shí)現整個(gè)應用。
、劢忉寛绦蠮AVA應用時(shí),JVM中的解釋器將解釋類(lèi)文件,生成符合當前平臺的字節碼。
、茏詣(dòng)回收:JAVA應用中的垃圾回收是自動(dòng)進(jìn)行的,JVM中的后臺線(xiàn)程將監視內存中數據的使用,當內存中的數據不再被引用時(shí),將被作為垃圾回收,而不需要程序員動(dòng)手回收。
3、請說(shuō)明一個(gè)JAVA類(lèi)中主要包含哪幾個(gè)元素?并說(shuō)明每種元素的作用。
解析:無(wú)論簡(jiǎn)單還是復雜的JAVA應用,都是由若干個(gè)類(lèi)組成,所以類(lèi)是JAVA應用的組成單位。了解一個(gè)類(lèi)中包含的主要元素能夠對類(lèi)有一個(gè)清晰的認識。一個(gè)類(lèi)中往往會(huì )有五種元素,即屬性、方法、構造方法、塊以及內部類(lèi)、其實(shí)塊和內部類(lèi)比較少見(jiàn)。
參考答案:JAVA類(lèi)中主要包含屬性、方法、構造方法、塊以及內部類(lèi)。
屬性用來(lái)定義對象的數據;
方法用來(lái)定義對象的行為;
構造方法可以用來(lái)創(chuàng )建對象;
塊能夠用來(lái)在類(lèi)加載時(shí)執行操作或者在每次實(shí)例化前執行通用操作;
內部類(lèi)作為類(lèi)的一個(gè)成員存在,能夠訪(fǎng)問(wèn)外部類(lèi)的屬性和方法。
4、請說(shuō)明構造方法的作用和特征
解析:類(lèi)是對象的模板,使用類(lèi)往往都需要首先對類(lèi)進(jìn)行實(shí)例化,即創(chuàng )建對象。要創(chuàng )建對象必須使用new關(guān)鍵字調用構造方法(constructor)才能完成,構造方法中往往對屬性進(jìn)行實(shí)例化,也可以實(shí)現其他必要的功能,如讀取屬性文件等。
構造方法有獨特的特征:名字必須與類(lèi)名相同且大小寫(xiě)敏感,而且構造方法不能聲明返回值,這兩個(gè)特征缺一不可。使用Eclipse工具時(shí),可以使用菜單Generate Constructor自動(dòng)生成不同的構造方法。
參考答案:構造方法的作用是用來(lái)創(chuàng )建對象,使用new關(guān)鍵字調用。構造方法的名字必須與類(lèi)的名字相同,并且大小寫(xiě)敏感,同時(shí)構造方法不能聲明返回值類(lèi)型,可以使用任意一種訪(fǎng)問(wèn)修飾符,但是不能使用其他修飾符進(jìn)行修飾,如static、final、abstract等修飾符都可以修飾構造方法。
5、什么是方法重載(overload)?
解析:如果一個(gè)類(lèi)的某個(gè)行為,會(huì )有不同的算法和邏輯,例如,Math類(lèi)的計算絕對值的方法,既可以計算int類(lèi)型數值的絕對值,也可以計算double類(lèi)型數值的絕對值。這種情況下,每種類(lèi)型都定義一個(gè)不同的方法名,如abInt、absDouble,那么類(lèi)的可讀性就較差,使用時(shí),必須熟悉處理每種類(lèi)型參數所對應的方法名。然而,如果使用同一個(gè)方法名,而使用不同的形式參數來(lái)區別這些方法,那么就具有很好的可讀性,如abs(int i)、abs(double d)等?勺x性強的代碼是企業(yè)對開(kāi)發(fā)人員的基本要求,方法重載能夠使得代碼有很好的可讀性。
參考答案:方法重載指的是在一個(gè)類(lèi)中可以聲明多個(gè)相同名字的方法,而方法的形式參數有區別。調用這些同名的方法時(shí),JVM會(huì )根據實(shí)際參數的不同綁定到不同的方法。
6、請列舉Java語(yǔ)言中的權限訪(fǎng)問(wèn)修飾符,并說(shuō)明每種權限的含義。
解析:正確使用權限訪(fǎng)問(wèn)修飾符,能夠有效控制類(lèi)以及類(lèi)成員的安全性,Java語(yǔ)言中有四種訪(fǎng)問(wèn)修飾符,包括public、同包、protected以及private,一般情況下,應用中的類(lèi)多是public權限,屬性多是private權限,方法多是public權限。
參考答案:Java語(yǔ)言中有四種權限訪(fǎng)問(wèn)修飾符,即public、protected、同包以及private,public表示公共權限,即任何包中都可以訪(fǎng)問(wèn):protected表示受保護權限,即同包中可以訪(fǎng)問(wèn),同包中的子類(lèi)可以訪(fǎng)問(wèn):同包權限是默認權限,即不顯示指明權限修飾符的時(shí)候就是同包權限,表示只有同包中可以訪(fǎng)問(wèn):private是私有權限,表示只能在本類(lèi)中訪(fǎng)問(wèn)。
7、請列舉Java語(yǔ)言中的八種基本數據類(lèi)型,并說(shuō)明每種數據類(lèi)型的含義及長(cháng)度。
解析:數據類(lèi)型在任何一門(mén)編程語(yǔ)言中都是很重要的知識點(diǎn),屬性、方法參數、方法返回值要指定各自的數據類(lèi)型。Java語(yǔ)言雖然是一門(mén)面向對象的語(yǔ)言。但是也定義了基本數據類(lèi)型,基本數據類(lèi)型可以直接賦值,不需要使用new關(guān)鍵字創(chuàng )建,可以直接使用運算符進(jìn)行運算,編程中經(jīng)常被使用,而且Java語(yǔ)言中的基本數據類(lèi)型的長(cháng)度固定,不會(huì )隨著(zhù)平臺的不同而不同。
參考答案:Java語(yǔ)言的八種基本數據類(lèi)型有:byte字節型,8位長(cháng)度:short短整型,16位長(cháng)度,int整型,32位長(cháng)度:long長(cháng)整型,64位長(cháng)度:float單精度浮點(diǎn)型。32位長(cháng)度:double雙精度浮點(diǎn)型,64位長(cháng)度:char字符型,16位長(cháng)度:boolean型,表示邏輯值,有true和false兩個(gè)值,分別表示真和假。
8、什么叫引用類(lèi)型,引用類(lèi)型和基本數據類(lèi)型有什么區別?
解析:很多初級程序員都能夠理解int i=20;中的int是一種類(lèi)型,稱(chēng)為整型。而對于類(lèi)似Employee e=new Employee();這樣表達式中的Employee卻感覺(jué)無(wú)所適從。其實(shí),任何一個(gè)類(lèi)都是一種類(lèi)型,如Employee就是一種類(lèi)型,可以說(shuō)變量e的類(lèi)型就是Employee。Java語(yǔ)言中將類(lèi)的類(lèi)型稱(chēng)為引用類(lèi)型,即reference type。
可以說(shuō),除了八種基本數據類(lèi)型之外的類(lèi)型都是引用類(lèi)型,包括API中所有的類(lèi)、自定義的所有類(lèi),也包括數組。引用類(lèi)型和基本數據類(lèi)型的直觀(guān)區別就是引用類(lèi)型的變量需要使用new調用構造方法來(lái)賦值,而基本數據類(lèi)型可以直接使用“=”號賦值。但是,引用類(lèi)型中的String比較特殊,既可以使用new關(guān)鍵字賦值,也可以直接使用“=”賦值,一般情況下都使用“=”直接賦值。
參考答案:Java語(yǔ)言中除了基本數據類(lèi)型之外的類(lèi)型,都稱(chēng)為引用類(lèi)型。引用類(lèi)型就是類(lèi)的類(lèi)型,所有的對象都是引用類(lèi)型,包括數組對象。引用類(lèi)型必須使用new調用構造方法進(jìn)行賦值,引用類(lèi)型的變量擁有自己的屬性和方法,可以使用圓點(diǎn)調用自己的屬性和方法;緮祿(lèi)型直接使用=號進(jìn)行賦值,且沒(méi)有自己的屬性和方法,往往都在聲明屬性或方法時(shí)使用。
9、對于String對象,可以使用“=”賦值,也可以使用new關(guān)鍵字賦值,兩種方式有什么區別?
解析:String類(lèi)型是實(shí)際工作中經(jīng)常使用到的類(lèi)型,從數據類(lèi)型上劃分,String是一個(gè)引用類(lèi)型,是API中定義的一個(gè)類(lèi)。所以String類(lèi)型的對象可以使用new創(chuàng )建,例如String name=new String(“ETC”);為變量name進(jìn)行賦值,值為“ETC”。然而,String類(lèi)比起其他類(lèi)有些特殊,可以使用“=”直接賦值,如String name=“ETC”,也是為變量name進(jìn)行賦值,值為“ETC”。
這兩種賦值方式是有差別的,使用new賦值,永遠都是創(chuàng )建一個(gè)新對象,在新的內存空間初始化了字符串的值;而使用“=”賦值,不會(huì )每次都初始化新的字符串,而是從一個(gè)“字符串實(shí)例池”中去查找有沒(méi)有要賦值的字符串,如有則直接引用;如不存在,則初始化一個(gè)字符串,并放入“字符串實(shí)例池”。在實(shí)際編程中,往往使用“=”好對String類(lèi)型變量進(jìn)行賦值。
參考答案:使用“=”賦值不一定每次都創(chuàng )建一個(gè)新的字符串,而是從“字符串實(shí)例池”中查找字符串。使用new進(jìn)行賦值,則每次都創(chuàng )建一個(gè)新的字符串。
10、String類(lèi)是一個(gè)“不可變類(lèi)”,請解釋“不可變類(lèi)”的含義。
解析:String類(lèi)是一個(gè)不可變類(lèi),即immutable類(lèi)。所謂不可變,意思是當一個(gè)字符串被初始化后,它的值就不會(huì )被改變。例如,String s=new String(“hello”)為將初始化一個(gè)值為hello的字符串,如果調用 s.toUpperCase()看起來(lái)是把hello變?yōu)榇髮?xiě)的HELLO,然而事實(shí)上并不會(huì )把已有的hello變?yōu)镠ELLO,而是在新的空間初始化一個(gè)HELLO字符串。也正因為有這種不可變性,所以才能支持“字符串實(shí)例池”的使用。
參考答案:所謂的不可變類(lèi),就是當字符串初始化后,就不能夠被改變。
【Java的類(lèi)常識】相關(guān)文章:
Java的類(lèi)07-19
java類(lèi)的構成08-02
Java import以及Java類(lèi)的搜索路徑09-14
淺談Java類(lèi)與類(lèi)之間的關(guān)系09-03
Java對象和類(lèi)08-27
Java類(lèi)的基本構成09-15
Java類(lèi)的基本構成09-11
java類(lèi)加載器09-12