Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(19)
1、Which is not Java primitive types?(哪一個(gè)不是Java原始類型?)
正確答案: B
short
Boolean
byte
float
題解:
Boolean 是封裝類不是原始類
java規(guī)定類名首字母必須大寫,這里可以直觀的看出來(lái)Boolean是一個(gè)引用類型,不是基本數(shù)據(jù)類型。
java中的基本數(shù)據(jù)類型都對(duì)應(yīng)一個(gè)引用類型,如Float是float的引用類型,Integer是int的引用類型
Java數(shù)據(jù)類型分為兩大類:基本數(shù)據(jù)類型和引用數(shù)據(jù)類型(抽象數(shù)據(jù)類型)
基本數(shù)據(jù)類型(8種 ):
整型:
byte 1字節(jié) 8位(0000 0000)
short 2字節(jié)
int 4字節(jié)
long 8字節(jié)
浮點(diǎn)型:
float 4字節(jié)
double 8字節(jié)
字符型:
char 2字節(jié)
布爾型:
boolean 長(zhǎng)度有爭(zhēng)議(true,false)
基本數(shù)據(jù)類型對(duì)應(yīng)的包裝類型首字符大寫,除過(guò)int 和 char
int----->Integer
char---->Character
引用數(shù)據(jù)類型:(內(nèi)存中的地址)
類,接口,數(shù)組
2、下列類定義中哪些是合法的抽象類的定義?()
正確答案: C
abstract Animal{abstract void growl();}
class abstract Animal{abstract void growl();}
abstract class Animal{abstract void growl();}
abstract class Animal{abstract void growl(){System.out.println( “growl”);};}
題解:
1.首先,類的修飾符,都應(yīng)該在class關(guān)鍵字之前,AB錯(cuò);
2.抽象方法不能有方法體,D錯(cuò)。
3、以下的變量定義語(yǔ)句中,合法的是()
正確答案: C
byte=128
boolean=null
long a=123L
double=0.9239d
題解:
4、表達(dá)式(short)10/10.2*2運(yùn)算后結(jié)果是什么類型?
正確答案: C
short
int
double
float
題解:
首先,要注意是(short)10/10.2*2,而不是(short) (10/10.2 * 2),前者只是把10強(qiáng)轉(zhuǎn)為short,又由于式子中存在浮點(diǎn)數(shù),所以會(huì)對(duì)結(jié)果值進(jìn)行一個(gè)自動(dòng)類型的提升,浮點(diǎn)數(shù)默認(rèn)為double,所以答案是double;后者是把計(jì)算完之后值強(qiáng)轉(zhuǎn)short。
5、在各自最優(yōu)條件下,對(duì)N個(gè)數(shù)進(jìn)行排序,哪個(gè)算法復(fù)雜度最低的是? ()
正確答案: A
插入排序
快速排序
堆排序
歸并排序
題解:
對(duì)于插入排序,最優(yōu)條件就是本身有序,所以循環(huán)一遍就好了。
6、將下列(A、B、C、D)哪個(gè)代碼替換下列程序中的【代碼】不會(huì)導(dǎo)致編譯錯(cuò)誤?
interface Com{
int M=200;
int f();
}
class ImpCom implements Com{
【代碼】
}
正確答案: A
public int f(){return 100+M;}
int f(){return 100;}
public double f(){return 2.6;}
public abstract int f();
題解:
此題兩個(gè)考點(diǎn):
1、實(shí)現(xiàn)類可以獲取接口中的屬性。
2、實(shí)現(xiàn)需要是public方法
7、下面哪幾個(gè)函數(shù) public void example(){…} 的重載函數(shù)?()
正確答案: A D
public void example(int m){…}
public int example(){…}
public void example2(){…}
public int example(int m,float f){…}
題解:
重載只要求參數(shù)列表不同,返回值無(wú)關(guān)。
java重載的時(shí)候以參數(shù)個(gè)數(shù)和類型作為區(qū)分,方法名相同,返回類型可以相同也可以不同,但不以返回類型作為區(qū)分,所以b也是錯(cuò)的,因?yàn)閎的參數(shù)列表和原來(lái)的一樣
8、抽象類和接口的區(qū)別,以下說(shuō)法錯(cuò)誤的是
正確答案: A C D
A:接口是公開的,里面不能有私有的方法或變量,是用于讓別人使用的,而抽象類是可以有私有方法或私有變量的。
B:abstract class 在 Java 語(yǔ)言中表示的是一種繼承關(guān)系,一個(gè)類只能使用一次繼承關(guān)系。但是,一個(gè)類卻可以實(shí)現(xiàn)多個(gè)
interface,實(shí)現(xiàn)多重繼承。接口還有標(biāo)識(shí)(里面沒(méi)有任何方法,如Remote接口)和數(shù)據(jù)共享(里面的變量全是常量)的作用。
C:在abstract class 中可以有自己的數(shù)據(jù)成員,也可以有非abstarct的成員方法,而在interface中,只能夠有靜態(tài)的不能被修改的數(shù)據(jù)成員(也就是必須是 static final的,不過(guò)在 interface中一般不定義數(shù)據(jù)成員),所有的成員方法默認(rèn)都是 public abstract 類型的。
D:abstract class和interface所反映出的設(shè)計(jì)理念不同。其實(shí)abstract class表示的是"has-a"關(guān)系,interface表示的是"is-a"關(guān)系。
題解:
抽象類:在Java中被abstract關(guān)鍵字修飾的類稱為抽象類,被abstract關(guān)鍵字修飾的方法稱為抽象方法,抽象方法只有方法的聲明,沒(méi)有方法體。抽象類的特點(diǎn):
a、抽象類不能被實(shí)例化只能被繼承;
b、包含抽象方法的一定是抽象類,但是抽象類不一定含有抽象方法;
c、抽象類中的抽象方法的修飾符只能為public或者protected,默認(rèn)為public;
d、一個(gè)子類繼承一個(gè)抽象類,則子類必須實(shí)現(xiàn)父類抽象方法,否則子類也必須定義為抽象類;
e、抽象類可以包含屬性、方法、構(gòu)造方法,但是構(gòu)造方法不能用于實(shí)例化,主要用途是被子類調(diào)用。
接口:Java中接口使用interface關(guān)鍵字修飾,特點(diǎn)為:
a、接口可以包含變量、方法;變量被隱士指定為public static final,方法被隱士指定為public abstract(JDK1.8之前);
b、接口支持多繼承,即一個(gè)接口可以extends多個(gè)接口,間接的解決了Java中類的單繼承問(wèn)題;
c、一個(gè)類可以實(shí)現(xiàn)多個(gè)接口;
d、JDK1.8中對(duì)接口增加了新的特性:
(1)、默認(rèn)方法(default method):JDK 1.8允許給接口添加非抽象的方法實(shí)現(xiàn),但必須使用default關(guān)鍵字修飾;定義了default的方法可以不被實(shí)現(xiàn)子類所實(shí)現(xiàn),但只能被實(shí)現(xiàn)子類的對(duì)象調(diào)用;如果子類實(shí)現(xiàn)了多個(gè)接口,并且這些接口包含一樣的默認(rèn)方法,則子類必須重寫默認(rèn)方法;
(2)、靜態(tài)方法(static method):JDK 1.8中允許使用static關(guān)鍵字修飾一個(gè)方法,并提供實(shí)現(xiàn),稱為接口靜態(tài)方法。接口靜態(tài)方法只能通過(guò)接口調(diào)用(接口名.靜態(tài)方法名)。
注意:jdk1.9是允許接口中出現(xiàn)private修飾的默認(rèn)方法和靜態(tài)方法。
解析:
A:jdk1.9是允許接口中出現(xiàn)private修飾的默認(rèn)方法和靜態(tài)方法,A錯(cuò)誤;抽象類可以有私有的變量和方法。
B:正確
C:抽象類可以有抽象和非抽象的方法;jdk1.8接口中可以有默認(rèn)方法和靜態(tài)方法,C錯(cuò)誤。
D:強(qiáng)調(diào)繼承關(guān)系,is-a,如果A is-a B,那么B就是A的父類;
代表組合關(guān)系,like-a,接口,如果A like a B,那么B就是A的接口。 ;
強(qiáng)調(diào)從屬關(guān)系,has-a,如果A has a B,那么B就是A的組成部分。
D項(xiàng)錯(cuò)誤。
9、下列有關(guān)java構(gòu)造函數(shù)敘述正確的是()
正確答案: C D
構(gòu)造器的返回值為void類型
如果一個(gè)源文件中有多個(gè)類,那么構(gòu)造器必須與公共類同名
構(gòu)造器可以有0個(gè),1個(gè)或一個(gè)以上的參數(shù)
每個(gè)類可以有一個(gè)以上的構(gòu)造器
題解:
(1)A構(gòu)造函數(shù)無(wú)返回值,錯(cuò)誤;
(2)B中多個(gè)類時(shí)構(gòu)造函數(shù)不一定與公共類同名,因?yàn)槊總€(gè)類都可以有構(gòu)造函數(shù),函數(shù)名同所屬類,錯(cuò)誤;
(3)C構(gòu)造器可以有任意個(gè)參數(shù),對(duì)的;
(4)D每個(gè)類都默認(rèn)有一個(gè)構(gòu)造函數(shù),選項(xiàng)中“一個(gè)以上”的描述,讓人誤解至少要兩個(gè),所以錯(cuò)誤。
10、以下關(guān)于final關(guān)鍵字說(shuō)法錯(cuò)誤的是
正確答案: A C
final是java中的修飾符,可以修飾類、接口、抽象類、方法和屬性
final修飾的類肯定不能被繼承
final修飾的方法不能被重載
final修飾的變量不允許被再次賦值
題解:
final修飾類、方法、屬性!不能修飾抽象類,因?yàn)槌橄箢愐话愣际切枰焕^承的,final修飾后就不能繼承了。
final修飾的方法不能被重寫而不是重載!
final修飾屬性,此屬性就是一個(gè)常量,不能被再次賦值!
答案匯總:
1、正確答案: B
2、正確答案: C
3、正確答案: C
4、正確答案: C
5、正確答案: A
6、正確答案: A
7、正確答案: A D
8、正確答案: A C D
9、正確答案: C D
10、正確答案: A C
總結(jié)
本篇文章就到這里了,希望能給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
maven配置阿里云倉(cāng)庫(kù)的實(shí)現(xiàn)方法(2022年)
本文主要介紹了maven配置阿里云倉(cāng)庫(kù)的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03使用maven運(yùn)行Java Main的三種方法解析
這篇文章主要介紹了使用maven運(yùn)行Java Main的三種方式的相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。2017-10-10詳解Java阻塞隊(duì)列(BlockingQueue)的實(shí)現(xiàn)原理
這篇文章主要介紹了詳解Java阻塞隊(duì)列(BlockingQueue)的實(shí)現(xiàn)原理,阻塞隊(duì)列是Java util.concurrent包下重要的數(shù)據(jù)結(jié)構(gòu),有興趣的可以了解一下2017-06-06SpringCloud灰度發(fā)布的設(shè)計(jì)與實(shí)現(xiàn)詳解
這篇文章主要介紹了SpringCloud灰度發(fā)布的設(shè)計(jì)與實(shí)現(xiàn)詳解,灰度從字面意思理解就是存在于黑與白之間的一個(gè)平滑過(guò)渡的區(qū)域,所以說(shuō)對(duì)于互聯(lián)網(wǎng)產(chǎn)品來(lái)說(shuō),上線和未上線就是黑與白之分,而實(shí)現(xiàn)未上線功能平穩(wěn)過(guò)渡的一種方式就叫做灰度發(fā)布,需要的朋友可以參考下2023-09-09Java生產(chǎn)者和消費(fèi)者例子_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
生產(chǎn)者-消費(fèi)者(producer-consumer)問(wèn)題,也稱作有界緩沖區(qū)(bounded-buffer)問(wèn)題,兩個(gè)進(jìn)程共享一個(gè)公共的固定大小的緩沖區(qū)。下文通過(guò)實(shí)例給大家介紹java生產(chǎn)者和消費(fèi)者,感興趣的朋友一起學(xué)習(xí)吧2017-05-05