溫故一下,說(shuō)不定有你遺忘了的(一)

前言

很多基礎(chǔ)性的原理等等什么的,不在贅述,網(wǎng)上很多相關(guān)內(nèi)容,這里僅僅是總結(jié)性并且很快能看完的結(jié)論.


java中==和equals和hashCode的區(qū)別

  • ==是對(duì)內(nèi)存地址的比較,對(duì)比兩個(gè)變量是否相同, Object默認(rèn)的equals方法,是對(duì)比對(duì)象的地址,和==的結(jié)果是相同的的.但是在很多Obj的子類上面,很多都是覆寫了equals方法的,比如String 不再是對(duì)比地址,而且對(duì)比具體的值.其他類,在沒(méi)有覆寫equals的話,使用的是obj的equals方法,直接對(duì)比復(fù)合數(shù)據(jù)類型的地址.
  • hashcode 會(huì)有一個(gè)大前提, 因?yàn)閔ashcode生成的是一個(gè)離散的數(shù)字,會(huì)有重復(fù)的概率,會(huì)首先得到兩個(gè)結(jié)論
    (1)如果兩個(gè)復(fù)合數(shù)據(jù)類型調(diào)用equals相同,那么生成的hashcode碼是一定相同的.(2)如果兩個(gè)復(fù)合數(shù)據(jù)類型調(diào)用equals不同,那個(gè)生成的hashcode碼不一定相同.
  • 在Java具體中使用,體現(xiàn)在HashMap上面, HashMap在放入數(shù)據(jù)的時(shí)候首先會(huì)匹配hashcode,如果已經(jīng)不存在相同的hashcode則直接放入,如果有相同的hashcode,會(huì)再去匹配的equals方法,如果不相同則放入其中,否則就不放入其中.同樣,在get的時(shí)候會(huì)根據(jù)key.hashCode()算出數(shù)組下標(biāo),然后再看equels如果相同,就找到目標(biāo)了,具體更多的HashMap數(shù)據(jù)存取的細(xì)節(jié),就不在這里贅述了.

int與integer的區(qū)別

  • int 是基本數(shù)據(jù)類型
  • integer是對(duì)int的裝箱
  • integer的默認(rèn)值是null,int的默認(rèn)值是0
  • integer實(shí)際是對(duì)int的引用,當(dāng)new 一個(gè)Integer對(duì)象的時(shí)候 實(shí)際是生成一個(gè)指針 指向此對(duì)象,而int則是直接儲(chǔ)存對(duì)象.

談?wù)剬?duì)java多態(tài)的理解

  • 首先,多態(tài)存在的幾個(gè)必要條件
    (1).要有繼承 (2).要有重寫 (3).父類引用指向子類引用
  • 實(shí)際使用場(chǎng)景
    例如同樣的父類引用,調(diào)用方法A,但是在不同的場(chǎng)景,執(zhí)行不同的動(dòng)作,例如同樣的F1按鍵,在主界面是幫助,在聊天界面是頭像,在設(shè)置界面是關(guān)于軟件.
  • 多態(tài)的好處
    可替換,可擴(kuò)展,接口性,靈活,簡(jiǎn)化.

String、StringBuffer、StringBuilder區(qū)別

  • 首先從速度上面來(lái)說(shuō):StringBuilder->StringBuffer->String
  • 其次StringBuffer對(duì)比StringBuilder來(lái)說(shuō)StringBuffer是線程安全
    ,里面很多方法是Synchronized
  • 那StringBuilder的原理又是怎么樣的?StringBuilder內(nèi)部有一個(gè)字符數(shù)組,每次組裝, 如果容量不夠,就擴(kuò)大容量,然后往里面添加字符,組裝出想要的字符串.
  • 最后來(lái)說(shuō)這個(gè)String,這個(gè)要分jdk版本來(lái)說(shuō),在1.5以前,String的拼接,其實(shí)每次都是創(chuàng)建一個(gè)新的String對(duì)象來(lái)處理的,但是在1.5以后,每次+的時(shí)候,創(chuàng)建的是StringBuilder去append的,這也是為什么直接使用加號(hào)組裝字符串速度最慢的原因

繼續(xù)更新中...

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 熟練掌握java是很關(guān)鍵的,大公司不僅僅要求你會(huì)使用幾個(gè)api,更多的是要你熟悉源碼實(shí)現(xiàn)原理,甚至要你知道有哪些不...
    勤息嘻嘻嘻閱讀 600評(píng)論 0 3
  • 本文是我自己在秋招復(fù)習(xí)時(shí)的讀書筆記,整理的知識(shí)點(diǎn),也是為了防止忘記,尊重勞動(dòng)成果,轉(zhuǎn)載注明出處哦!如果你也喜歡,那...
    波波波先森閱讀 958評(píng)論 1 6
  • (一)Java部分 1、列舉出JAVA中6個(gè)比較常用的包【天威誠(chéng)信面試題】 【參考答案】 java.lang;ja...
    獨(dú)云閱讀 7,254評(píng)論 0 62
  • 時(shí)間,像一條路 不斷地向后 遠(yuǎn)方的山脈和遠(yuǎn)去的樹(shù)林 都成了風(fēng)景 唯有眼前的景色 模糊略過(guò) 這命運(yùn)的汽車 載著我在人...
    黎埠閱讀 128評(píng)論 0 1
  • 我是清兒,每天一篇文章的。第30天第27篇。謝謝你花時(shí)間看我的文章。 最近育兒感悟越來(lái)越多~同時(shí)自己也越做越好,娃...
    Q清兒閱讀 243評(píng)論 0 0

友情鏈接更多精彩內(nèi)容