黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專(zhuān)注Java教育14年 全國(guó)咨詢(xún)/投訴熱線(xiàn):400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) 常見(jiàn)的Java面試基礎(chǔ)知識(shí)總結(jié)

常見(jiàn)的Java面試基礎(chǔ)知識(shí)總結(jié)

更新時(shí)間:2020-08-04 16:14:23 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2397次

1. Java中的原始數(shù)據(jù)類(lèi)型都有哪些,它們的大小及對(duì)應(yīng)的封裝類(lèi)是什么?

(1)boolean

boolean數(shù)據(jù)類(lèi)型非true即false。這個(gè)數(shù)據(jù)類(lèi)型表示1 bit的信息,但是它的大小并沒(méi)有精確定義。

《Java虛擬機(jī)規(guī)范》中如是說(shuō):“雖然定義了boolean這種數(shù)據(jù)類(lèi)型,但是只對(duì)它提供了非常有限的支持。在Java虛擬機(jī)中沒(méi)有任何供boolean值專(zhuān)用的字節(jié)碼指令,Java語(yǔ)言表達(dá)式所操作的boolean值,在編譯之后都使用Java虛擬機(jī)中的int數(shù)據(jù)類(lèi)型來(lái)代替,而boolean數(shù)組將會(huì)被編碼成Java虛擬機(jī)的byte數(shù)組,每個(gè)元素boolean元素占8位”。這樣我們可以得出boolean類(lèi)型單獨(dú)使用是4個(gè)字節(jié),在數(shù)組中又是1個(gè)字節(jié)。那虛擬機(jī)為什么要用int來(lái)代替boolean呢?為什么不用byte或short,這樣不是更節(jié)省內(nèi)存空間嗎?實(shí)際上,使用int的原因是,對(duì)于當(dāng)下32位的CPU來(lái)說(shuō),一次進(jìn)行32位的數(shù)據(jù)交換更加高效。

綜上,我們可以知道:官方文檔對(duì)boolean類(lèi)型沒(méi)有給出精確的定義,《Java虛擬機(jī)規(guī)范》給出了“單獨(dú)時(shí)使用4個(gè)字節(jié),boolean數(shù)組時(shí)1個(gè)字節(jié)”的定義,具體還要看虛擬機(jī)實(shí)現(xiàn)是否按照規(guī)范來(lái),所以1個(gè)字節(jié)、4個(gè)字節(jié)都是有可能的。這其實(shí)是一種時(shí)空權(quán)衡。

boolean類(lèi)型的封裝類(lèi)是Boolean。

(2)byte——1 byte——Byte

(3)short——2 bytes——Short

(4)int——4 bytes——Integer

(5)long——8 bytes——Long

(6)float——4 bytes——Float

(7)double——8 bytes——Double

(8)char——2 bytes——Character

2. 談一談”==“與”equals()"的區(qū)別。

《Think in Java》中說(shuō):“關(guān)系操作符生成的是一個(gè)boolean結(jié)果,它們計(jì)算的是操作數(shù)的值之間的關(guān)系”。

"=="判斷的是兩個(gè)對(duì)象的內(nèi)存地址是否一樣,適用于原始數(shù)據(jù)類(lèi)型和枚舉類(lèi)型(它們的變量存儲(chǔ)的是值本身,而引用類(lèi)型變量存儲(chǔ)的是引用);equals是Object類(lèi)的方法,Object對(duì)它的實(shí)現(xiàn)是比較內(nèi)存地址,我們可以重寫(xiě)這個(gè)方法來(lái)自定義“相等”這個(gè)概念。比如類(lèi)庫(kù)中的String、Date等類(lèi)就對(duì)這個(gè)方法進(jìn)行了重寫(xiě)。

綜上,對(duì)于枚舉類(lèi)型和原始數(shù)據(jù)類(lèi)型的相等性比較,應(yīng)該使用"==";對(duì)于引用類(lèi)型的相等性比較,應(yīng)該使用equals方法。

3. Java中的四種引用及其應(yīng)用場(chǎng)景是什么?

強(qiáng)引用: 通常我們使用new操作符創(chuàng)建一個(gè)對(duì)象時(shí)所返回的引用即為強(qiáng)引用

軟引用: 若一個(gè)對(duì)象只能通過(guò)軟引用到達(dá),那么這個(gè)對(duì)象在內(nèi)存不足時(shí)會(huì)被回收,可用于圖片緩存中,內(nèi)存不足時(shí)系統(tǒng)會(huì)自動(dòng)回收不再使用的Bitmap

弱引用: 若一個(gè)對(duì)象只能通過(guò)弱引用到達(dá),那么它就會(huì)被回收(即使內(nèi)存充足),同樣可用于圖片緩存中,這時(shí)候只要Bitmap不再使用就會(huì)被回收

虛引用: 虛引用是Java中最“弱”的引用,通過(guò)它甚至無(wú)法獲取被引用的對(duì)象,它存在的唯一作用就是當(dāng)它指向的對(duì)象回收時(shí),它本身會(huì)被加入到引用隊(duì)列中,這樣我們可以知道它指向的對(duì)象何時(shí)被銷(xiāo)毀。

4. object中定義了哪些方法?

clone(), equals(), hashCode(), toString(), notify(), notifyAll(), wait(), finalize(), getClass()

5. hashCode的作用是什么?

請(qǐng)參見(jiàn)散列表的基本原理與實(shí)現(xiàn)

6. ArrayList, LinkedList, Vector的區(qū)別是什么?

ArrayList: 內(nèi)部采用數(shù)組存儲(chǔ)元素,支持高效隨機(jī)訪(fǎng)問(wèn),支持動(dòng)態(tài)調(diào)整大小

LinkedList: 內(nèi)部采用鏈表來(lái)存儲(chǔ)元素,支持快速插入/刪除元素,但不支持高效地隨機(jī)訪(fǎng)問(wèn)

Vector: 可以看作線(xiàn)程安全版的ArrayList

7. String, StringBuilder, StringBuffer的區(qū)別是什么?

String: 不可變的字符序列,若要向其中添加新字符需要?jiǎng)?chuàng)建一個(gè)新的String對(duì)象

StringBuilder: 可變字符序列,支持向其中添加新字符(無(wú)需創(chuàng)建新對(duì)象)

StringBuffer: 可以看作線(xiàn)程安全版的StringBuilder

8. Map, Set, List, Queue、Stack的特點(diǎn)及用法。

Map: Java中存儲(chǔ)鍵值對(duì)的數(shù)據(jù)類(lèi)型都實(shí)現(xiàn)了這個(gè)接口,表示“映射表”。支持的兩個(gè)核心操作是get(Object key)以及put(K key, V value),分別用來(lái)獲取鍵對(duì)應(yīng)的值以及向映射表中插入鍵值對(duì)。

Set: 實(shí)現(xiàn)了這個(gè)接口的集合類(lèi)型中不允許存在重復(fù)的元素,代表數(shù)學(xué)意義上的“集合”。它所支持的核心操作有add(E e),remove(Object o),contains(Object o),分別用于添加元素,刪除元素以及判斷給定元素是否存在于集中。

List: Java中集合框架中的列表類(lèi)型都實(shí)現(xiàn)了這個(gè)接口,表示一種有序序列。支持get(int index), add(E e)等操作。

Queue: Java集合框架中的隊(duì)列接口,代表了“先進(jìn)先出”隊(duì)列。支持add(E element), remove()等操作。

Stack: Java集合框架中表示堆棧的數(shù)據(jù)類(lèi)型,堆棧是一種“后進(jìn)先出”的數(shù)據(jù)結(jié)構(gòu)。支持push(E item), pop()等操作。

更詳細(xì)的說(shuō)明請(qǐng)參考官方文檔,對(duì)相關(guān)數(shù)據(jù)結(jié)構(gòu)不太熟悉的同學(xué)可以參考《算法導(dǎo)論》或其他相關(guān)書(shū)籍。

9. HashMap和HashTable的區(qū)別

HashTable是線(xiàn)程安全的,而HashMap不是

HashMap中允許存在null鍵和null值,而HashTable中不允許

更加詳細(xì)的分析請(qǐng)參考深入解析HashMap、HashTable

10. HashMap的實(shí)現(xiàn)原理

簡(jiǎn)單的說(shuō),HashMap的底層實(shí)現(xiàn)是“基于拉鏈法的散列表”。詳細(xì)分析請(qǐng)參考深入解析HashMap、HashTable

常見(jiàn)的Java面試基礎(chǔ)知識(shí)總結(jié)

以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“常見(jiàn)的Java面試基礎(chǔ)知識(shí)總結(jié)”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€(xiàn)咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 天天插天天射天天干 | 日韩经典视频 | 皇色在线 | 免费人成大片在线观看播放 | 激情五月俺来也 | 99热自拍| 欧美日韩v| 黄网站色视频免费观看 | 香蕉视频在线观看网站 | 免费成年人在线视频 | 大柠檬导航香蕉导航巨人导航 | 日日摸夜夜添夜夜添成人 | 乱人伦中文视频在线 | 在线亚洲+欧美+日本专区 | 99精品视频在线在线视频观看 | 久色成人 | 日皮黄色| a级毛片免费网站 | 免费观看一区二区 | 日本一区二区三区四区视频 | 日本爽p大片免费观看 | 日本道在线播放 | 日本大片免费一级 | 婷婷综合久久狠狠色99h | 国产一二三四区在线观看 | 欧美一级二级三级视频 | 亚洲不卡影院 | 一级做a免费视频观看网站 一男一女下面一进一出性视频 | 男女一级爽爽快视频 | 播9公社在线精品中文字幕 波少野结衣色在线 | 黄色影视在线 | a毛片在线看片免费 | www一片黄| 三级日韩 | www.黄网站| 一级免费大片 | 手机在线资源 | 国产精品亚洲精品观看不卡 | 亚洲h在线观看 | 欧美午夜在线播放 | 黄色美女免费看 |