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