java基礎面試題1

1,hashMap與hashTable區(qū)別

????使用Entry數組來實現(xiàn)hash表

????hashTable是線程安全的婚夫,hashMap不是澄步,但是hashTable已基本廢棄裸违,如果要使用同步的話可以使用concurrenthashmap或者使用其他方法呢岗,這里可以深入探究湃鹊;

????hashMap支持null鍵和null值


2儒喊,JVM啟動過程

一:JVM裝入環(huán)境,JVM提供的方式是操作系統(tǒng)的動態(tài)連接文件.

二:裝載JVM.dll

三:初始化JVM币呵,獲得本地調用接口

四:運行Java程序

這方面需要加深理解



3怀愧,怎么避免死鎖

1,加鎖順序

2余赢,加鎖限時

3芯义,死鎖檢測


4,synchronized同步方法和同步代碼塊的區(qū)別

同步代碼塊獲取一個對象的監(jiān)視器妻柒,更加靈活扛拨;

同步方法相當于在獲取this這個對象的監(jiān)視器;

非靜態(tài)的同步方法是鎖定類的實例举塔,靜態(tài)的同步方法是鎖定類的绑警。



5,java new 一個對象的的過程

分配內存空間央渣;

初始化對象置為0计盒;

設置必要的對象信息(對象頭中的一些信息);

?Java程序執(zhí)行init進行初始化賦值芽丹。


6北启,如何判斷一個單向鏈表是不是循環(huán)鏈表(不能更改鏈表的狀態(tài))

用兩個指針,一個指針一次跳一步,另一個指針一次跳兩步咕村,如果它們能相遇场钉,說明存在環(huán)。


如何將一個單向鏈表反轉懈涛?



8惹悄,排序算法代碼實現(xiàn)過程



9,sleep(),wait(),notify(),notifyAll()

sleep()不會釋放對象鎖,wait()會釋放對象鎖肩钠。

notify()喚醒wait()阻塞住的線程,但并不立即釋放對象鎖暂殖,需要等synchronized代碼塊執(zhí)行完或者wait()方法調用來釋放對象鎖价匠。

notifyAll()喚醒所有等待的線程。


10呛每,StringBuffer和StringBuilder的區(qū)別





12踩窖,如何書寫一個單例模式

public class Singleton4 {//我們通過volatile聲明變量來禁止指令重排序

????private Singleton4(){}

????private static volatile Singleton4 single;

????public static Singleton4 getInstance(){

????????if(single==null){

????????synchronized (Singleton4.class) {

????????if(single==null)

????????single=new Singleton4();

????????}

????}

????????return single;

????}

}

13,ArrayList和LinkedList比較以及適用于什么場景

ArrayList查詢更快晨横,LinkedList插入刪除更快洋腮。

原因:ArrayList是基于索引的數據結構,插入刪除需要更新索引手形,更改數組大小等啥供,盡量給定合適的初始大小,



14,equals()和hashcode()的關系库糠。

? ? ? ?equals()方法未重寫的話伙狐,比較的是兩個對象地址是否相等,即是否是同一個對象瞬欧,和==效果一樣贷屎。

? ? ????一般我們覆蓋equals()方法,來比較兩個對象的內容是否相等艘虎。

? ? ? ? hashCode(),獲取對象hash碼唉侄,確定對象在散列表中的存儲位置,散列表包括hashMap,hashTable,hashSet.

????????hashCode()只有在對象需要存儲在散列表中才起作用野建。

????????如果對象不存儲在散列表的數據結構中属划,equals()和hashcode()沒有任何關系,

????????如果需要存儲在散列表的數據結構中贬墩,重寫equals方法榴嗅,一定也要重寫hashcode方法。

原因:在散列表中陶舞,hashcode相同的兩個對象嗽测,equals不一定相同

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? equals相同,hashcode一定要相同

hashcode相同是equals相同的必要條件,那么在散列表添加的時候先判斷一下hashcode是否相同唠粥,如果hashcode不相同疏魏,equals即使相同也不起作用,例如hashSet中可能存在重復元素晤愧。

? ??????當equals方法被重寫時大莫,通常有必要重寫?hashCode?方法,以維護?hashCode?方法的常規(guī)協(xié)定官份,該協(xié)定聲明相等對象必須具有相等的哈希碼只厘。



15,哪些Java集合不允許具有重復元素

Set < E > 是一個不包含重復元素的 collection舅巷。更確切地講羔味,set 不包含滿足 e1.equals(e2) 的元素對 e1 和 e2,并且最多包含一個 null 元素钠右。



16赋元,字符串常量池,運行時常量池飒房,class文件常量池搁凸,intern()方法,它們之間的關系


????????直接使用雙引號聲明出來的String對象會直接存儲在字符串常量池中.

API中描述如下:

public?String?intern()

????????返回字符串對象的規(guī)范化表示形式狠毯。

????????一個初始為空的字符串池护糖,它由類?String?私有地維護。

????????當調用 intern 方法時垃你,如果池已經包含一個等于此?String?對象的字符串(用?equals(Object)?方法確定)椅文,則返回池中的字符串。否則惜颇,將此?String?對象添加到池中皆刺,并返回此?String?對象的引用。

????????它遵循以下規(guī)則:對于任意兩個字符串?s?和?t凌摄,當且僅當?s.equals(t)?為?true?時羡蛾,s.intern()?==?t.intern()?才為?true。

????????所有字面值字符串和字符串賦值常量表達式都使用 intern 方法進行操作锨亏。字符串字面值在?Java Language Specification?的 §3.10.5 定義痴怨。

返回:

????????一個字符串,內容與此字符串相同器予,但一定取自具有唯一字符串的池浪藻。

注意:jdk7 以后字符常量池不在Perm區(qū)域了,這塊做了調整乾翔。字符串常量池中不需要再存儲一份對象了爱葵,可以直接存儲堆中的引用施戴。


18,java異常分類萌丈,RuntimeException和Exception關系


runtimeException(運行時異常):是未檢查異常赞哗,程序員的錯,不需要try..catch...或者throws處理辆雾。


19,final關鍵字的作用及用法

? ? ? ? 修飾類:該類不能被繼承

? ? ? ? 修飾方法:明確禁止該方法在子類中被覆蓋

? ? ? ? 修飾變量:對于一個final變量肪笋,如果是基本數據類型的變量,則其數值一旦在初始化之后便不能更改度迂;如果是引用類型的變量藤乙,則在對其初始化之后便不能再讓其指向另一個對象。

20惭墓,靜態(tài)代碼塊湾盒,構造代碼塊,構造函數诅妹。

靜態(tài)代碼塊在類加載時被執(zhí)行,只執(zhí)行一次毅人;構造代碼塊依托構造函數吭狡,但先于構造函數執(zhí)行。


單個類時:靜態(tài)代碼塊>構造代碼塊>構造函數


?父子類使用時:1丈莺,new一個父類對象(代碼在子類中執(zhí)行划煮,會加載子類),父類靜態(tài)代碼塊缔俄,子類靜態(tài)代碼塊弛秋,父類構造代碼塊俐载,父類構造函數

? ? ? ? ? ? ? ? ? ? ? ? 2蟹略,new一個子類對象遏佣,父類靜態(tài)代碼塊,子類靜態(tài)代碼塊状婶,父類構造代碼塊意敛,父類構造函數,子類構造代碼塊膛虫,子類構造函數。

? ? ? ? ? ? ? ? ? ? 3稍刀,new一個父類對象,接著new一個子類對象。父類靜態(tài)代碼塊跌榔,子類靜態(tài)代碼塊异雁,父類構造代碼塊,父類構造函數僧须,父類構造代碼塊,父類構造函數担平,子類構造代碼塊,子類構造函數

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末面褐,一起剝皮案震驚了整個濱河市取胎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌闻蛀,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件役衡,死亡現(xiàn)場離奇詭異薪棒,居然都是意外死亡,警方通過查閱死者的電腦和手機俐芯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門吧史,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人扣蜻,你說我怎么就攤上這事∪窦” “怎么了芳肌?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵肋层,是天一觀的道長翎迁。 經常有香客問我,道長汪榔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任雌团,我火速辦了婚禮士聪,結果婚禮上,老公的妹妹穿的比我還像新娘剥悟。我一直安慰自己,他們只是感情好替久,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布躏尉。 她就那樣靜靜地躺著后众,像睡著了一般。 火紅的嫁衣襯著肌膚如雪教藻。 梳的紋絲不亂的頭發(fā)上右锨,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天,我揣著相機與錄音绍移,去河邊找鬼。 笑死轧抗,一個胖子當著我的面吹牛瞬测,可吹牛的內容都是我干的纠炮。 我是一名探鬼主播灯蝴,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼耕肩!你這毒婦竟也來了折砸?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤睦授,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后怖辆,有當地人在樹林里發(fā)現(xiàn)了一具尸體删顶,經...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年特咆,在試婚紗的時候發(fā)現(xiàn)自己被綠了录粱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡菜职,死狀恐怖旗闽,靈堂內的尸體忽然破棺而出酬核,到底是詐尸還是另有隱情适室,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布鹅很,位于F島的核電站罪帖,受9級特大地震影響邮屁,放射性物質發(fā)生泄漏菠齿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一芋忿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧疾棵,春花似錦、人聲如沸是尔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恩溅。三九已至,卻和暖如春脚乡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背奶稠。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工窒典, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留稽莉,地道東北人瀑志。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓劈猪,卻偏偏與公主長得像良拼,于是被迫代替她去往敵國和親战得。 傳聞我的和親對象是個殘疾皇子庸推,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內容

  • 標簽:【每日一題】 到目前為止,整理了Android四大組件聋亡、Android基本常識、還有這個Java基礎面試題漂佩,...
    草帽團長閱讀 1,277評論 3 15
  • JAVA面試題相關基礎知識 1请契、面向對象的特征有哪些方面 ①抽象: 抽象是忽略一個主題中與當前目標無關的那些方面,...
    小宇java閱讀 893評論 0 6
  • 你有過鬼迷心竅的感覺嗎涌韩? 右京有過氯夷,在大學軍訓的時候。 右京有個小小的心愿腮考,準備在大學里寫一本書,書的內容沒想好踩蔚,...
    魚條小一閱讀 401評論 9 6
  • 帶著懈R玻徽逛河工 ?大學的四年 我們在這里度過 這枚校徽 這片土地 承載著我們的喜怒哀樂 致遠廣場 非淡泊無以明志暴凑,...
    擺渡小魯閱讀 380評論 1 2
  • 復盤Day98 Horizon 記錄:昨天代課回到宿舍后,打開抖音忧风,一坐就是三小時球凰,抖音有毒狮腿,我是真信了呕诉。20秒的...
    Horizon_小小閱讀 280評論 0 0