最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

培訓(xùn)班學(xué)習(xí)Java第一天

2023-06-27 23:35 作者:興趣使然的無名主播  | 我要投稿

測試題講解之查缺補漏

選擇題

一、標識符

標識符例題

標識符的概念:給類、接口、方法變量取名字的字符序列。

組成:大小寫字母、數(shù)字、_、$、中文。

注意事項:

  1. 不能以數(shù)字開頭;

  2. 字母區(qū)分大小寫;

  3. 不能使用除$和_以外的特殊符號。

  4. 不能使用Java關(guān)鍵字

  5. 考慮編碼問題,盡量不使用中文

二、重載

重載例題

重載的概念:方法與方法間的關(guān)系。

條件:

  1. 在同一個類中;

  2. 方法名相同;

  3. 參數(shù)列表的個數(shù)或者類型不一致;

  4. 與返回值無關(guān)

好處:系統(tǒng)會根據(jù)傳入的參數(shù)自動匹配相應(yīng)的重載方法。減少寫多個函數(shù)名的重復(fù)步驟。


三、數(shù)組初始化

分為靜態(tài)初始化和動態(tài)初始化。

  1. 靜態(tài)初始化:數(shù)據(jù)由程序員給定,數(shù)組長度由系統(tǒng)自動分配——String[] name = {"張三","李四","王五"};

  2. 動態(tài)初始化:數(shù)組長度由程序員給定,數(shù)據(jù)由系統(tǒng)自動分配——String[] names = new String[3];

不同類型的數(shù)組內(nèi)數(shù)據(jù)初始值:

  1. 整數(shù)類型---0;2.浮點類型---0.0;字符類型---‘ ’(空格);布爾類型---false;引用類型---null。

四、位運算

位運算例題

位運算:十進制數(shù)據(jù)轉(zhuǎn)換為二進制數(shù)據(jù),再做運算。

&:同位比較,兩者為1,結(jié)果才為1;

|:同位比較,兩者有1,結(jié)果就為1;

^:同位比較,兩者相同為0,不同為1;

<<:整體向左移動n位,就用n個0補位;

>>:整體向右移動n位,就用n個最高位(符號位)補位;

>>>?:整體向右移動n位,就用n個0補位。

(正數(shù)右移'>>',高位用0補,負數(shù)右移,高位用1補,當(dāng)負數(shù)使用無符號右移'>>>'時,用0進行部位(負數(shù)變?yōu)榱苏麛?shù)))


五、能供switch使用的數(shù)據(jù)類型:byte、short、int、char、字符串(JDK1.7)、枚舉(JDK1.5)。

例題


六、構(gòu)造方法的概念:與類名相同且沒有返回項的方法;作用:創(chuàng)建對象、初始化數(shù)據(jù)。

例題

七、final

final例題

final的含義:被稱為最終方法

final修飾類:類不能被繼承;

final修飾方法:方法不能被重寫;

final修飾變量:常量。


簡答題

1.論述面向?qū)ο蟮娜筇卣骷捌涫褂脠鼍埃?/p>

封裝、繼承、多態(tài)

封裝:一般類的屬性都必須封裝(私有化屬性+get/set),保證了屬性的安全性

繼承:多個類有共同的屬性和方法,就抽取出放在父類中,減少代碼的冗余,增加了程序的復(fù)雜度和可維護性

多態(tài):編寫方法,參數(shù)盡可能選擇接口或者父類類型,提高了程序的可擴展性


2.?多態(tài)的優(yōu)缺點?

優(yōu)點:提高了程序的可擴展性,不違反OCP原則

缺點:不能使用子類獨有的屬性和方法(多態(tài)主要作用?:調(diào)用子類重寫父類的方法)


3.?抽象類和接口的區(qū)別?

抽象類:單繼承,抽象類中可以有屬性、構(gòu)造方法、成員方法、靜態(tài)方法、抽象方法

接口:多實現(xiàn),接口中只能有靜態(tài)常量、抽象方法、靜態(tài)方法(JDK1.8)、默認方法(JDK1.8)


4.?Java類加載機制的步驟?

含義:JVM會將該類的class文件加載到方法區(qū)中的過程


什么時候JVM會將該類的class文件加載到方法區(qū)中?

1.?第一次創(chuàng)建該類的對象

2.?第一次調(diào)用該類的靜態(tài)方法

3.?第一次獲取該類的class對象 -- Class<?> clazz = Class.forName("com.qf.test01.A");


class文件加載幾次?

1次

class文件里的內(nèi)容有什么?

class文件中包含了該類所有的信息,屬性、構(gòu)造方法、成員方法、靜態(tài)方法、抽象方法...


class對象的作用是什么?

class對象作為class文件的訪問入口


加載步驟:

1.?加載(獲取類的全限定名生成字節(jié)流,讀取到方法區(qū)中,并在堆中創(chuàng)建該類的class對象)

2.?連接

2.1驗證(驗證class文件是否合法 - 是否符合class文件規(guī)范、語法/數(shù)據(jù)、符號引用是否正確)

2.2 準備(類變量開辟空間,給類變量賦系統(tǒng)初始值,但是靜態(tài)常量直接賦值)

2.3 解析(符號引用,轉(zhuǎn)換為直接引用)

3.?初始化(將代碼中的靜態(tài)值賦值給靜態(tài)變量)

?

5.?Switch的表達式類型,底層原理?

表達式類型:byte、short、int、char、枚舉(JDK1.5)、字符串(JDK1.7)

底層原理:

byte、short自動向上轉(zhuǎn)型成int

char獲取對應(yīng)的Unicode碼

枚舉獲取的是對象編號

字符串獲取的hash碼+equals

總結(jié):表達式的類型最終都會轉(zhuǎn)換為int,去做識別


6.?內(nèi)部類分類及區(qū)別?

成員內(nèi)部類:內(nèi)部類可以調(diào)動外部類所有的屬性

靜態(tài)內(nèi)部類:內(nèi)部類只能調(diào)用外部類的靜態(tài)屬性

接口內(nèi)部類:相當(dāng)于靜態(tài)內(nèi)部類

局部內(nèi)部類:方法中聲明的類,可以調(diào)用外部類的方法中的局部變量,局部變量自動使用final修飾(JDK1.8)

匿名內(nèi)部類:抽象類子類的對象或接口實現(xiàn)類的對象只使用一次,就使用匿名內(nèi)部類去替代


7.?ArrayList與Vector的區(qū)別?

ArrayList:線程不安全,擴容機制(原來的1.5倍)

Vector:線程安全,擴容機制(判斷容量增量,如果容量增量為0,原來長度的2倍;如果容量增量不為0,原來長度+容量增量)


8.?LinkedList刪除元素的過程

1.?判斷元素是否為空,如果為空,判斷條件使用元素==null,如果不為空,判斷條件使用equals,直到找到該元素或者遍歷到最后一個元素

2.?加入A、B、C三個節(jié)點,刪除的是B節(jié)點,通過B節(jié)點找到A節(jié)點,將A節(jié)點下一個位置指向C節(jié)點,通過B節(jié)點找到C節(jié)點,將C節(jié)點上一個位置指向A節(jié)點?-- 斷鏈


9.?什么叫做Hash碰撞

多個元素的hash值一樣造成Hash碰撞(將數(shù)據(jù)存入到HashMap或者ConcurrentHashMap,一般會重寫Key元素所屬類的hashCode()和equals(),從而降低Hash碰撞,因為hash碰撞會損耗性能,因為HashMap或ConcurrentHashMap的數(shù)據(jù)結(jié)構(gòu)為一維數(shù)組+單向鏈表,數(shù)據(jù)直接存在數(shù)組中的效率勝過存在單向鏈表中)

?

10.?JDK1.7 和 1.8下HashMap的區(qū)別?

HashMap - JDK1.7:一維數(shù)組+單向鏈表,頭插法

HashMap - JDK1.8:一維數(shù)組+單向鏈表+紅黑樹,尾插法,計算hash值高16位^低16位

JDK1.8的HashMap什么時候做到一維數(shù)組+單向鏈表 和 一維數(shù)組 + 紅黑樹的轉(zhuǎn)換?

一維數(shù)組+單向鏈表 -->?一維數(shù)組 + 紅黑樹:數(shù)組長度大于64,鏈表長度大于8

一維數(shù)組 + 紅黑樹 --> 一維數(shù)組+單向鏈表:紅黑樹節(jié)店小于6

JDK1.8的HashMap數(shù)據(jù)結(jié)構(gòu)為什么加上了紅黑樹?

提高了查詢效率


11.?論述多線程的生命周期?

?

多線程的生命周期

12.?Java線程安全的幾種方式?

1.?synchronized

2.?lock

?

15.線程池的運行流程?

1. 核心線程

2. 任務(wù)隊列

3.普通線程

4. 拒絕策略

?

16創(chuàng)建自定義線程池的參數(shù)有哪些?

核心線程數(shù)、最大線程數(shù)、任務(wù)隊列、線程工廠、閑置時間、時間單位、拒絕策略

?

17.TCP連接機制和斷連機制是什么?

三次握手

四次揮手

?

18.?異常的處理機制是什么?

1.?程序中出現(xiàn)的異常,會創(chuàng)建異常對象交給JVM -- 拋出異常

2.?JVM會循環(huán)是否有處理異常的代碼

2.1 有 - 就將異常對象交給其處理 -- 捕獲異常+處理異常

2.2 沒有 - 程序就終止運行

?

19.?什么叫做序列化接口?有什么作用?

Serializable為序列化接口

ObjecOutputStream將對象寫入到文件,該對象所屬的類必須實現(xiàn)序列化接口,序列化接口作為寫入文件的憑證

鈍化/序列化:將程序中的對象寫入到文件中

活化/反序列化:將文件中的對象讀取到程序中

?

20.?字節(jié)流和字符流的區(qū)別?

字節(jié)流以字節(jié)為單位去傳輸數(shù)據(jù)

字符流以字符為單位去傳輸數(shù)據(jù),字符流底層由字節(jié)流+編譯器實現(xiàn),編譯器會根據(jù)編碼格式去操作數(shù)據(jù)?



培訓(xùn)班學(xué)習(xí)Java第一天的評論 (共 條)

分享到微博請遵守國家法律
钟祥市| 高雄市| 西乌珠穆沁旗| 临高县| 黄龙县| 中方县| 凯里市| 伊吾县| 阜康市| 吴桥县| 吉首市| 津市市| 宜良县| 广元市| 宁远县| 南澳县| 嘉禾县| 大田县| 昆山市| 子洲县| 望谟县| 林州市| 友谊县| 景谷| 比如县| 嘉禾县| 靖远县| 英山县| 元朗区| 大连市| 庆云县| 海兴县| 五河县| 英吉沙县| 龙陵县| 涟水县| 绥江县| 鄯善县| 汽车| 西和县| 林甸县|