Java面試題的基礎內(nèi)容

1坚俗、JDK稿黍、JRE的區(qū)別?
jdk 面向開發(fā)人員使用的SDK是Java開發(fā)工具包肋拔,包含各種工具和類庫镐作;JDK是開發(fā)環(huán)境藏姐。JRE面向程序使用者核心內(nèi)容是JVM及核心類庫。JRE是運行環(huán)境该贾。
2羔杨、== 和 equals 的區(qū)別是什么?
總結(jié)來說:1)對于==杨蛋,如果作用于基本數(shù)據(jù)類型的變量兜材,則直接比較其存儲的 “值”是否相等;
如果作用于引用類型的變量六荒,則比較的是所指向的對象的地址护姆。
2)對于equals方法,注意:equals方法不能作用于基本數(shù)據(jù)類型的變量如果沒有對equals方法進行重寫掏击,則比較的是引用類型的變量所指向的對象的地址卵皂;諸如String、Date等類對equals方法進行了重寫的話砚亭,比較的是所指向的對象的內(nèi)容灯变。

3殴玛、兩個對象的 hashCode()相同,則 equals()也一定為 true添祸,對嗎滚粟?
(1)重寫equals方法,不重寫hashCode方法刃泌,當兩個對象equals相等時凡壤,它們的哈希碼不一定相等;
(2)重寫hashCode方法耙替,不重寫equals方法亚侠,當兩個對象equals相等時,它們的哈希碼不一定相等俗扇;
(3) 重寫equals方法硝烂,同時重寫hashCode方法,當兩個對象equals相等時铜幽,它們的哈希碼一定相等滞谢;
4、.抽象類必須要有抽象方法嗎除抛?
抽象類不一定要有抽象方法狮杨;但是有抽象方法的類一定是抽象類。

5镶殷、普通類和抽象類有哪些區(qū)別禾酱?
a.抽象類不能被實例化。
b.抽象類可以有構(gòu)造函數(shù)绘趋,被繼承時子類必須繼承父類一個構(gòu)造方法,抽象方法不能被聲明為靜態(tài)颗管。
c.抽象方法只需申明陷遮,而無需實現(xiàn),抽象類中可以允許普通方法有主體
d.含有抽象方法的類必須申明為抽象類
e.抽象的子類必須實現(xiàn)抽象類中所有抽象方法垦江,否則這個子類也是抽象類帽馋。

6、接口和抽象類有什么區(qū)別比吭?
a.抽象類和接口都不能直接實例化绽族,如果要實例化,抽象類變量必須指向?qū)崿F(xiàn)所有抽象方法的子類對象衩藤,接口變量必須指向?qū)崿F(xiàn)所有接口方法的類對象吧慢。
b.抽象類要被子類繼承,接口要被類實現(xiàn)赏表。
c.接口只能做方法申明检诗,抽象類中可以做方法申明匈仗,也可以做方法實現(xiàn)
d.接口里定義的變量只能是公共的靜態(tài)的常量,抽象類中的變量是普通變量逢慌。
e.抽象類里的抽象方法必須全部被子類所實現(xiàn)悠轩,如果子類不能全部實現(xiàn)父類抽象方法,那么該子類只能是抽象類攻泼。同樣火架,一個實現(xiàn)接口的時候,如不能全部實現(xiàn)接口方法忙菠,那么該類也只能為抽象類何鸡。
f.抽象方法只能申明,不能實現(xiàn)只搁,接口是設計的結(jié)果 音比,抽象類是重構(gòu)的結(jié)果
g.抽象類里可以沒有抽象方法
h.如果一個類里有抽象方法,那么這個類只能是抽象類
i.抽象方法要被實現(xiàn)氢惋,所以不能是靜態(tài)的洞翩,也不能是私有的。
j.接口可繼承接口焰望,并可多繼承接口骚亿,但類只能單根繼承。

7熊赖、java 中 IO 流分為幾種


fileiol流.jpg

總結(jié):
1.Java IO是采用的是裝飾模式来屠,即采用處理流來包裝節(jié)點流的方式,來達到代碼通用性震鹉。
2.處理流和節(jié)點流的區(qū)分方法俱笛,節(jié)點流在新建時需要一個數(shù)據(jù)源(文件、網(wǎng)絡)作為參數(shù)传趾,而處理流需要一個節(jié)點流作為參數(shù)迎膜。
3.處理流的作用就是提高代碼通用性,編寫代碼的便捷性浆兰,提高性能磕仅。
4.節(jié)點流都是對應抽象基類的實現(xiàn)類,它們都實現(xiàn)了抽象基類的基礎讀寫方法簸呈。其中read()方法如果返回-1榕订,代表已經(jīng)讀到數(shù)據(jù)源末尾。

8蜕便、Collection 和 Collections 有什么區(qū)別
8-1劫恒、java.util.Collection 是一個集合接口。它提供了對集合對象進行基本操作的通用接口方法玩裙。Collection接口在Java 類庫中有很多具體的實現(xiàn)兼贸。Collection接口的意義是為各種具體的集合提供了最大化的統(tǒng)一操作方式段直。
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set

8-2、java.util.Collections 是一個包裝類溶诞。它包含有各種有關(guān)集合操作的靜態(tài)多態(tài)方法鸯檬。他提供一系列靜態(tài)方法實現(xiàn)對各種集合的搜索、排序螺垢、線程安全化等操作喧务。

9、Java中 List枉圃、Set功茴、Map 之間的區(qū)別
List(列表)List的元素以線性方式存儲,可以存放重復對象孽亲,List主要有以下兩個實現(xiàn)類:

ArrayList : 長度可變的數(shù)組坎穿,可以對元素進行隨機的訪問,向ArrayList中插入與刪除元素的速度慢返劲。 JDK8 中ArrayList擴容的實現(xiàn)是通過grow()方法里使用語句newCapacity = oldCapacity + (oldCapacity >> 1)(即1.5倍擴容)計算容量玲昧,然后調(diào)用Arrays.copyof()方法進行對原數(shù)組進行復制。
LinkedList: 采用鏈表數(shù)據(jù)結(jié)構(gòu)篮绿,插入和刪除速度快孵延,但訪問速度慢。
Set(集合)
??Set中的對象不按特定(HashCode)的方式排序亲配,并且沒有重復對象尘应,Set主要有以下兩個實現(xiàn)類:

HashSet: HashSet按照哈希算法來存取集合中的對象,存取速度比較快吼虎。當HashSet中的元素個數(shù)超過數(shù)組大小*loadFactor(默認值為0.75)時犬钢,就會進行近似兩倍擴容(newCapacity = (oldCapacity << 1) + 1)。
TreeSet :TreeSet實現(xiàn)了SortedSet接口思灰,能夠?qū)现械膶ο筮M行排序娜饵。
Map(映射)
??Map是一種把鍵對象和值對象映射的集合,它的每一個元素都包含一個鍵對象和值對象官辈。 Map主要有以下兩個實現(xiàn)類:

HashMap:HashMap基于散列表實現(xiàn),其插入和查詢<K,V>的開銷是固定的遍坟,可以通過構(gòu)造器設置容量和負載因子來調(diào)整容器的性能拳亿。
LinkedHashMap:類似于HashMap,但是迭代遍歷它時愿伴,取得<K,V>的順序是其插入次序肺魁,或者是最近最少使用(LRU)的次序。
TreeMap:TreeMap基于紅黑樹實現(xiàn)隔节。查看<K,V>時鹅经,它們會被排序寂呛。TreeMap是唯一的帶有subMap()方法的Map,subMap()可以返回一個子樹瘾晃。
HashMap
??底層實現(xiàn):HashMap底層整體結(jié)構(gòu)是一個數(shù)組贷痪,數(shù)組中的每個元素又是一個鏈表。每次添加一個對象(put)時會產(chǎn)生一個鏈表對象(Object類型)蹦误,Map中的每個Entry就是數(shù)組中的一個元素(Map.Entry就是一個<Key,Value>)劫拢,它具有由當前元素指向下一個元素的引用,這就構(gòu)成了鏈表强胰。
??存儲原理:當向HsahMap中添加元素的時候舱沧,先根據(jù)HashCode重新計算Key的Hash值,得到數(shù)組下標偶洋,如果數(shù)組該位置已經(jīng)存在其他元素熟吏,那么這個位置的元素將會以鏈表的形式存放,新加入的放在鏈頭玄窝,最先加入的放在鏈尾牵寺,如果數(shù)組該位置元素不存在,那么就直接將該元素放到此數(shù)組中的該位置哆料。
??去重原理:不同的Key算到數(shù)組下標相同的幾率很小缸剪,新建一個<K,V>放入到HashMap的時候,首先會計算Key的數(shù)組下標东亦,如果數(shù)組該位置已經(jīng)存在其他元素杏节,則比較兩個Key,若相同則覆蓋寫入典阵,若不同則形成鏈表奋渔。
??讀取原理:從HashMap中讀取(get)元素時壮啊,首先計算Key的HashCode嫉鲸,找到數(shù)組下標,然后在對應位置的鏈表中找到需要的元素歹啼。
??擴容機制:當HashMap中的元素個數(shù)超過數(shù)組大小*loadFactor(默認值為0.75)時玄渗,就會進行2倍擴容(oldThr << 1)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末狸眼,一起剝皮案震驚了整個濱河市藤树,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拓萌,老刑警劉巖岁钓,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡屡限,警方通過查閱死者的電腦和手機品嚣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钧大,“玉大人翰撑,你說我怎么就攤上這事⊥匦停” “怎么了额嘿?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長劣挫。 經(jīng)常有香客問我册养,道長,這世上最難降的妖魔是什么压固? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任球拦,我火速辦了婚禮,結(jié)果婚禮上帐我,老公的妹妹穿的比我還像新娘坎炼。我一直安慰自己,他們只是感情好拦键,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布谣光。 她就那樣靜靜地躺著,像睡著了一般芬为。 火紅的嫁衣襯著肌膚如雪萄金。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天媚朦,我揣著相機與錄音氧敢,去河邊找鬼。 笑死询张,一個胖子當著我的面吹牛孙乖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播份氧,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼唯袄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蜗帜?” 一聲冷哼從身側(cè)響起越妈,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎钮糖,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡店归,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年阎抒,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片消痛。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡且叁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出秩伞,到底是詐尸還是另有隱情逞带,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布纱新,位于F島的核電站展氓,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏脸爱。R本人自食惡果不足惜遇汞,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望簿废。 院中可真熱鬧空入,春花似錦、人聲如沸族檬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽单料。三九已至埋凯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間看尼,已是汗流浹背递鹉。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留藏斩,地道東北人躏结。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像狰域,于是被迫代替她去往敵國和親媳拴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 接口/抽象類意義規(guī)范兆览、擴展屈溉、回調(diào)為其子類提供一個公共的類型 封裝子類中得重復內(nèi)容 定義抽象方法,子類雖然有不同的實...
    MigrationUK閱讀 2,156評論 1 28
  • java基礎 集合承繼包含圖 Collection vs Collections 首先抬探,"Collection" ...
    onlyHalfSoul閱讀 1,299評論 0 5
  • 面向?qū)ο笾饕槍γ嫦蜻^程子巾。 面向過程的基本單元是函數(shù)帆赢。 什么是對象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,046評論 0 4
  • 1.import static是Java 5增加的功能,就是將Import類中的靜態(tài)方法,可以作為本類的靜態(tài)方法來...
    XLsn0w閱讀 1,214評論 0 2
  • 吃飯的時候 在朋友圈 看到一篇很好的文章 飯后想仔細閱讀 打不開了 顯示 “此內(nèi)容因違規(guī)無法查看” 他奶奶的 語句...
    開心點金石閱讀 2,319評論 59 63