摘要:在單個外圍類中,可以讓多個內(nèi)部類以不同的方式實現(xiàn)同一個接口,或者繼承同一個類。創(chuàng)建內(nèi)部類對象的時刻并不依賴于外圍類對象的創(chuàng)建。內(nèi)部類并沒有令人迷惑的關(guān)系,他就是一個獨立的實體。
接口的意義
規(guī)范,可拓展,回調(diào)
抽象類的意義
為其子類提供一個公共的類型,封裝子類中重復(fù)的內(nèi)容,定義抽象方法,子類雖然有不同的實現(xiàn),但是定義是一致的
內(nèi)部類的作用
內(nèi)部類可以用多個實例,每個實例都有自己的狀態(tài)信息,并且與其他外圍對象的信息相互獨立。
在單個外圍類中,可以讓多個內(nèi)部類以不同的方式實現(xiàn)同一個接口,或者繼承同一個類。
創(chuàng)建內(nèi)部類對象的時刻并不依賴于外圍類對象的創(chuàng)建。
內(nèi)部類并沒有令人迷惑的“is-a”關(guān)系,他就是一個獨立的實體。
內(nèi)部類提供了更好的封裝,除了該外圍類,其他類都不能訪問
父類的靜態(tài)方法是否可以被子類重寫
static靜態(tài)的方法是屬于類的,而繼承和重寫是相對于對象來說的。
如果子類中有父類中的靜態(tài)方法,只能說是隱藏父類的靜態(tài)方法
java虛擬機(jī)的特性
一般的高級語言如果要在不同的平臺上運行,至少需要編譯成不同的目標(biāo)代碼的,而引入了java虛擬機(jī)后,java代碼在不同的
平臺上運行不需要重新編譯
哪些情況下的對象會被垃圾回收機(jī)制處理掉
Java垃圾回收機(jī)制最基本的做法是分代回收,內(nèi)存中的區(qū)域被劃分成成不同的世代,年輕,年老,永久,當(dāng)一個對象存活時間足夠久的時候
就會被復(fù)制到年老代中,對于不同的世代可以使用不同的垃圾回收算法。進(jìn)行世代劃分的出發(fā)點是對應(yīng)用中對象存活時間進(jìn)行研究之后得出的統(tǒng)計規(guī)律。一般來說,一個應(yīng)用中的大部分對象的存活時間都很短。比如局部變量的存活時間就只在方法的執(zhí)行過程中。基于這一點,對于年輕世代的垃圾回收算法就可以很有針對性。
== 和 equals 的區(qū)別
== 是一個操作符 而equals是一個方法,并且這個方法是Object中的方法,我們可以通過重寫來equals方法來實現(xiàn)我們自己的比較邏輯
為什么說對象的equals方法比較為true,那么他們的hashcode方法返回的int值也要相同?
如果兩個對象根據(jù)equals()方法比較是相等的,那么調(diào)用這兩個對象中任意一個對象的hashCode方法都必須產(chǎn)生同樣的整數(shù)結(jié)果。
如果兩個對象根據(jù)equals()方法比較是不相等的,那么調(diào)用這兩個對象中任意一個對象的hashCode方法,則不一定要產(chǎn)生相同的整數(shù)結(jié)果
從而在集合操作的時候有如下規(guī)則:
將對象放入到集合中時,首先判斷要放入對象的hashcode值與集合中的任意一個元素的hashcode值是否相等,如果不相等直接將該對象放入集合中。如果hashcode值相等,然后再通過equals方法判斷要放入對象與集合中的任意一個對象是否相等,如果equals判斷不相等,直接將該元素放入到集合中,否則不放入。
回過來說get的時候,HashMap也先調(diào)key.hashCode()算出數(shù)組下標(biāo),然后看equals如果是true就是找到了,所以就涉及equals
String , StringBuffer , StringBuilder
String : 字符串常量
StringBuffer , StringBuilder :字符串變量
Java多態(tài)的理解
多態(tài)存在的三個必要條件:
1. 要有繼承 2. 要有重寫 3. 父類引用指向子類對象
線程的阻塞
里氏替換原則
子類不能重寫父類已經(jīng)實現(xiàn)的方法
子類重寫父類的方法時,返回值必須比父類更嚴(yán)格
try...finally try中有return時的執(zhí)行順序
首先finally代碼塊里的代碼是一定會執(zhí)行的
1. 如果try中有return語句,會先將return的結(jié)果保存起來,然后執(zhí)行finally中的代碼,如果在finally中改變了要return 的數(shù)據(jù)的值,也不會影響到return的值 2. 如果在finally中寫了return語句,那么就會返回return的值
常見的異常
ArithmeticException(算術(shù)異常)
ClassCastException (類轉(zhuǎn)換異常)
IllegalArgumentException (非法參數(shù)異常)
IndexOutOfBoundsException (下標(biāo)越界異常)
NullPointerException (空指針異常)
面向?qū)ο?原則一法則
單一職責(zé)原則 : 說的就是高內(nèi)聚,一個類只應(yīng)該做一件事
開閉原則 : 對拓展開發(fā),對修改關(guān)閉 ,想要表達(dá)的意思是:把可能會修改的地方抽象出來(接口),具體的實現(xiàn)是可以改變和拓展的
里氏替換原則 : 在用到父類的地方一定可用其子類代替,想要表達(dá)的是:同一個繼承體系中的對象應(yīng)該具有共同的行為特征
依賴注入原則 :要依賴抽象,不要依賴具體的實現(xiàn),為了實現(xiàn)這個原則,就要求我們在編程的時候針對抽象類或者接口編程
接口分離:不應(yīng)該強(qiáng)迫程序依賴他們不需要的接口 一個接口不需要提供太多的行為,一個接口應(yīng)該只提供一種對外的功能,不應(yīng)該把所有的操作都封裝到一個接口中。
迪米特法則 :一個對象應(yīng)該對象其他對象盡量少的了解,意思是要我們降低程序的耦合度
sleep() 和 wait()的區(qū)別
sleep()會讓出cpu的執(zhí)行時間一段時間,但是不會釋放鎖,如果在同步的環(huán)境中,有可能出現(xiàn)死鎖
wait是指在一個已經(jīng)進(jìn)入了同步鎖的線程內(nèi),讓自己暫時讓出同步鎖,以便其他正在等待此鎖的線程可以得到同步鎖并運行
什么時候使用同步
當(dāng)多個線程使用一個共享資源時,使用同步
什么時候使用異步
當(dāng)一個操作需要會費很長的時間去做,并且不希望讓程序等待方法的返回時,采用異步,這樣效率更高
什么是內(nèi)存泄漏
程序員創(chuàng)建了一個對象,以后一直不使用這個對象了,但是這個對象一直被引用,即這個對象無用但是卻無法被垃圾回收器回收
例如:長生命周期的對象持有短生命周期對象的引用可能會發(fā)生內(nèi)存泄漏,
一個外部類對象返回了一個內(nèi)部類的對象,這個內(nèi)部類對象一直被引用了,即使那個外部類實例對象不再被使用,但由于內(nèi)部類持久外部類的實例對象,這個外部類對象將不會被垃圾回收,這也會造成內(nèi)存泄露
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/70541.html
摘要:作者鏈接來源牛客網(wǎng)今天剛剛收到的電話,開心,簡單記錄一下美團(tuán)的面經(jīng)。當(dāng)時面試官評價基礎(chǔ)不是很好,其他還行。的三次握手四次揮手。整體感覺美團(tuán)的面試比較基礎(chǔ),但是各個方面都有涉及到。 作者:icysnowgx鏈接:https://www.nowcoder.com/disc...來源:牛客網(wǎng) 今天剛剛收到hr的電話,開心,簡單記錄一下美團(tuán)的面經(jīng)。時間隔的比較久了,簡單回憶下,最后會給出我之前...
摘要:正如我標(biāo)題所說,簡歷被拒。看了我簡歷之后說頭條競爭激烈,我背景不夠,點到為止。。三準(zhǔn)備面試其實從三月份投遞簡歷開始準(zhǔn)備面試到四月份收,也不過個月的時間,但這都是建立在我過去一年的積累啊。 本文是 無精瘋 同學(xué)投稿的面試經(jīng)歷 關(guān)注微信公眾號:進(jìn)擊的java程序員K,即可獲取最新BAT面試資料一份 在此感謝 無精瘋 同學(xué)的分享 目錄: 印象中的頭條 面試背景 準(zhǔn)備面試 ...
摘要:正如我標(biāo)題所說,簡歷被拒。看了我簡歷之后說頭條競爭激烈,我背景不夠,點到為止。。三準(zhǔn)備面試其實從三月份投遞簡歷開始準(zhǔn)備面試到四月份收,也不過個月的時間,但這都是建立在我過去一年的積累啊。 本文是 無精瘋 同學(xué)投稿的面試經(jīng)歷 關(guān)注微信公眾號:進(jìn)擊的java程序員K,即可獲取最新BAT面試資料一份 在此感謝 無精瘋 同學(xué)的分享目錄:印象中的頭條面試背景準(zhǔn)備面試頭條一面(Java+項目)頭條...
摘要:此專欄文章是對力扣上算法題目各種方法的總結(jié)和歸納整理出最重要的思路和知識重點并以思維導(dǎo)圖形式呈現(xiàn)當(dāng)然也會加上我對導(dǎo)圖的詳解目的是為了更方便快捷的記憶和回憶算法重點不用每次都重復(fù)看題解畢竟算法不是做了一遍就能完全記住的所 ...
此專欄文章是對力扣上算法題目各種方法的總結(jié)和歸納, 整理出最重要的思路和知識重點并以思維導(dǎo)圖形式呈現(xiàn), 當(dāng)然也會加上我對導(dǎo)圖的詳解. 目的是為了更方便快捷的記憶和回憶算法重點(不用每次都重復(fù)看題解), 畢竟算法不是做了一遍就能完全記住的. 所以本文適合已經(jīng)知道解題思路和方法, 想進(jìn)一步加強(qiáng)理解和記憶的朋友, 并不適合第一次接觸此題的朋友(可以根據(jù)題號先去力扣看看官方題解, 然后再看本文內(nèi)容). 關(guān)...
閱讀 2721·2023-04-26 02:28
閱讀 2551·2021-09-27 13:36
閱讀 3123·2021-09-03 10:29
閱讀 2751·2021-08-26 14:14
閱讀 2101·2019-08-30 15:56
閱讀 830·2019-08-29 13:46
閱讀 2609·2019-08-29 13:15
閱讀 454·2019-08-29 11:29