餓了么-Android開發(fā)

電話面

自我介紹

String星立、StringBuffer與StringBuilder之間區(qū)別
Java中字符串常量相加
HashMap和Hashtable的區(qū)別

主要的區(qū)別有:線程安全性,同步(synchronization)葬凳,以及速度。

HashMap幾乎可以等價(jià)于Hashtable室奏,除了HashMap是非synchronized的火焰,并可以接受null(HashMap可以接受為null的鍵值(key)和值(value),而Hashtable則不行)胧沫。
HashMap是非synchronized昌简,而Hashtable是synchronized,這意味著Hashtable是線程安全的绒怨,多個(gè)線程可以共享一個(gè)Hashtable纯赎;而如果沒有正確的同步的話,多個(gè)線程是不能共享HashMap的南蹂。Java 5提供了ConcurrentHashMap犬金,它是HashTable的替代,比HashTable的擴(kuò)展性更好六剥。
另一個(gè)區(qū)別是HashMap的迭代器(Iterator)是fail-fast迭代器晚顷,而Hashtable的enumerator迭代器不是fail-fast的。所以當(dāng)有其它線程改變了HashMap的結(jié)構(gòu)(增加或者移除元素)疗疟,將會(huì)拋出ConcurrentModificationException该默,但迭代器本身的remove()方法移除元素則不會(huì)拋出ConcurrentModificationException異常。但這并不是一個(gè)一定發(fā)生的行為策彤,要看JVM栓袖。這條同樣也是Enumeration和Iterator的區(qū)別。
由于Hashtable是線程安全的也是synchronized店诗,所以在單線程環(huán)境下它比HashMap要慢裹刮。如果你不需要同步,只需要單一線程必搞,那么使用HashMap性能要好過Hashtable必指。
HashMap不能保證隨著時(shí)間的推移Map中的元素次序是不變的。

HashMap的工作原理

HashMap基于hashing原理恕洲,我們通過put()和get()方法儲(chǔ)存和獲取對(duì)象塔橡。當(dāng)我們將鍵值對(duì)傳遞給put()方法時(shí)梅割,它調(diào)用鍵對(duì)象的hashCode()方法來計(jì)算hashcode,讓后找到bucket位置來儲(chǔ)存值對(duì)象葛家。當(dāng)獲取對(duì)象時(shí),通過鍵對(duì)象的equals()方法找到正確的鍵值對(duì)癞谒,然后返回值對(duì)象底燎。HashMap使用鏈表來解決碰撞問題,當(dāng)發(fā)生碰撞了弹砚,對(duì)象將會(huì)儲(chǔ)存在鏈表的下一個(gè)節(jié)點(diǎn)中双仍。 HashMap在每個(gè)鏈表節(jié)點(diǎn)中儲(chǔ)存鍵值對(duì)對(duì)象。HashMap是在bucket中儲(chǔ)存鍵對(duì)象和值對(duì)象桌吃,作為Map.Entry朱沃。

關(guān)于hashMap的key和value的理解
HashMap 負(fù)載因子

HashMap中的數(shù)據(jù)量/HashMap的總?cè)萘?initialCapacity),當(dāng)loadFactor達(dá)到指定值或者0.75時(shí)候,HashMap的總?cè)萘孔詣?dòng)擴(kuò)展一倍茅诱,以此類推逗物。

判斷樹是否為平衡二叉樹

1.遞歸求樹的深度
2.判斷該樹是否為平衡二叉樹
方法一:調(diào)用上述函數(shù)求每個(gè)節(jié)點(diǎn)的左右孩子深度;
方法二:由于上述方法在求該結(jié)點(diǎn)的的左右子樹深度時(shí)遍歷一遍樹瑟俭,再次判斷子樹的平衡性時(shí)又遍歷一遍樹結(jié)構(gòu)翎卓,造成遍歷多次。因此方法二是一邊遍歷樹一邊判斷每個(gè)結(jié)點(diǎn)是否具有平衡性摆寄。

樹的遍歷
image.png
統(tǒng)計(jì)一個(gè)無序數(shù)組中出現(xiàn)次數(shù)最多的元素

方法一:先對(duì)數(shù)組排序失暴,所有相同的元素都會(huì)集中到一起,再進(jìn)行一次遍歷就能解決問題椭迎。
方法二:用哈希表統(tǒng)計(jì)出各個(gè)元素出現(xiàn)次數(shù) - count()锐帜,用容量為K的最小堆找出最大的K個(gè)數(shù) - topK()

Java的接口和抽象類

1.語法層面上的區(qū)別
  1)抽象類可以提供成員方法的實(shí)現(xiàn)細(xì)節(jié),而接口中只能存在public abstract 方法畜号;
  2)抽象類中的成員變量可以是各種類型的缴阎,而接口中的成員變量只能是public static final類型的;
  3)接口中不能含有靜態(tài)代碼塊以及靜態(tài)方法简软,而抽象類可以有靜態(tài)代碼塊和靜態(tài)方法蛮拔;
  4)一個(gè)類只能繼承一個(gè)抽象類,而一個(gè)類卻可以實(shí)現(xiàn)多個(gè)接口痹升。
2.設(shè)計(jì)層面上的區(qū)別
  1)抽象類是對(duì)一種事物的抽象建炫,即對(duì)類抽象,而接口是對(duì)行為的抽象疼蛾。
  2)設(shè)計(jì)層面不同肛跌,抽象類作為很多子類的父類,它是一種模板式設(shè)計(jì)。而接口是一種行為規(guī)范衍慎,它是一種輻射式設(shè)計(jì)转唉。

JAVA多線程實(shí)現(xiàn)的三種方式

1.繼承Thread類實(shí)現(xiàn)多線程
2.實(shí)現(xiàn)Runnable接口方式實(shí)現(xiàn)多線程
3.使用ExecutorService、Callable稳捆、Future實(shí)現(xiàn)有返回結(jié)果的多線程

Activity的四種啟動(dòng)模式及區(qū)別

standard
默認(rèn)模式赠法,可以不用寫配置。在這個(gè)模式下乔夯,都會(huì)默認(rèn)創(chuàng)建一個(gè)新的實(shí)例砖织。因此,在這種模式下末荐,可以有多個(gè)相同的實(shí)例侧纯,也允許多個(gè)相同Activity疊加。
singleTop
可以有多個(gè)實(shí)例鞠评,但是不允許多個(gè)相同Activity疊加茂蚓。即,如果Activity在棧頂?shù)臅r(shí)候剃幌,啟動(dòng)相同的Activity,不會(huì)創(chuàng)建新的實(shí)例晾浴,而會(huì)調(diào)用其onNewIntent方法负乡。
singleTask
只有一個(gè)實(shí)例。在同一個(gè)應(yīng)用程序中啟動(dòng)他的時(shí)候脊凰,若Activity不存在抖棘,則會(huì)在當(dāng)前task創(chuàng)建一個(gè)新的實(shí)例,若存在狸涌,則會(huì)把task中在其之上的其它Activity destory掉并調(diào)用它的onNewIntent方法切省。
如果是在別的應(yīng)用程序中啟動(dòng)它,則會(huì)新建一個(gè)task帕胆,并在該task中啟動(dòng)這個(gè)Activity朝捆,singleTask允許別的Activity與其在一個(gè)task中共存,也就是說懒豹,如果我在這個(gè)singleTask的實(shí)例中再打開新的Activity芙盘,這個(gè)新的Activity還是會(huì)在singleTask的實(shí)例的task中。
singleInstance
只有一個(gè)實(shí)例脸秽,并且這個(gè)實(shí)例獨(dú)立運(yùn)行在一個(gè)task中儒老,這個(gè)task只有這個(gè)實(shí)例,不允許有別的Activity存在记餐。

HTTP請(qǐng)求過程

1.域名解析
2.發(fā)起TCP的3次握手
3.建立TCP連接后發(fā)起http請(qǐng)求
http://www.cnblogs.com/engeng/articles/5959335.html

HTTP請(qǐng)求報(bào)文和響應(yīng)報(bào)文是什么格式

起始行:如 GET / HTTP/1.0 (請(qǐng)求的方法 請(qǐng)求的URL 請(qǐng)求所使用的協(xié)議)
頭部信息:User-Agent Host等成對(duì)出現(xiàn)的值
主體
http://www.cnblogs.com/engeng/articles/5959335.html

HTTP協(xié)議的8種請(qǐng)求類型在請(qǐng)求報(bào)文和響應(yīng)報(bào)文時(shí)都會(huì)存在么
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末驮樊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌囚衔,老刑警劉巖挖腰,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異佳魔,居然都是意外死亡曙聂,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門鞠鲜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宁脊,“玉大人,你說我怎么就攤上這事贤姆∮馨” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵霞捡,是天一觀的道長(zhǎng)坐漏。 經(jīng)常有香客問我,道長(zhǎng)碧信,這世上最難降的妖魔是什么赊琳? 我笑而不...
    開封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮砰碴,結(jié)果婚禮上躏筏,老公的妹妹穿的比我還像新娘。我一直安慰自己呈枉,他們只是感情好趁尼,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著猖辫,像睡著了一般酥泞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上啃憎,一...
    開封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天芝囤,我揣著相機(jī)與錄音,去河邊找鬼荧飞。 笑死凡人,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的叹阔。 我是一名探鬼主播挠轴,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼耳幢!你這毒婦竟也來了岸晦?” 一聲冷哼從身側(cè)響起欧啤,我...
    開封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎启上,沒想到半個(gè)月后邢隧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡冈在,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年倒慧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片包券。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡纫谅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出溅固,到底是詐尸還是另有隱情付秕,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布侍郭,位于F島的核電站询吴,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏亮元。R本人自食惡果不足惜猛计,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望爆捞。 院中可真熱鬧有滑,春花似錦、人聲如沸嵌削。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽苛秕。三九已至,卻和暖如春找默,著一層夾襖步出監(jiān)牢的瞬間艇劫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人碟婆。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓仓洼,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親赃阀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

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