騰訊面試回顧

一修壕、寫一個單例
現(xiàn)在有很經(jīng)典的五種創(chuàng)建方式爽待,這里不再贅述损同,當(dāng)時我寫的一個靜態(tài)內(nèi)部類形式。

     public static class Singleton{
         private Singleton(){};
         public static getInstance(){
              return Holder.singleton;
         }
         private static class Holder{
             private static final Singleton singleton = new Singleton();
         }
     }

寫完就后悔了鸟款,還是應(yīng)該寫經(jīng)常用的雙重檢驗(yàn)鎖模式膏燃,恩...果然面試官就問了這樣寫能保證線程安全嗎?答案是肯定的何什!但是他叫我分析一下组哩,當(dāng)時就懵逼了。接下來就開始懷疑人生了处渣,沒有一個鎖是如何保證線程安全的...感覺是不是自己寫錯了伶贰,還是不應(yīng)該裝逼,老老實(shí)實(shí)寫DCL模式罐栈。
其實(shí)當(dāng)時我是想講靜態(tài)變量是屬于程序本身黍衙,第一次加載該類時才會為其分配內(nèi)存空間初始化。但當(dāng)時在腦海中盤旋的是當(dāng)兩個線程同時調(diào)用getInstance()方法時該怎么辦荠诬?當(dāng)時腦海中反駁自己的理由是創(chuàng)建一個對象并非是原子操作...最后給面試官老老實(shí)實(shí)說了因?yàn)樽约浩綍r不常用靜態(tài)內(nèi)部類的緣故琅翻。
還是感覺自己太緊張了,我把它理解為

     public static class Singleton{
         private static final Singleton singleton;
         private Singleton(){};
         public static getInstance(){
              if(singleton==null)
                    singleton = new Singleton;
              return singleton;
         }
     }

這里也需要惡補(bǔ)一下實(shí)例變量類變量的初始化時機(jī)柑贞,類變量是當(dāng)我們程序第一次加載到內(nèi)存的時候初始化望迎,并且初始化時在靜態(tài)代碼塊中(javap命令查看編譯后的字節(jié)碼可以發(fā)現(xiàn)初始化是在靜態(tài)代碼塊中,而實(shí)例變量初始化是在構(gòu)造方法中)凌外,所以創(chuàng)建靜態(tài)變量是在第一次加載到內(nèi)容的時候創(chuàng)建的,并且保證只創(chuàng)建過一次涛浙,無論哪個線程調(diào)用的時候都是調(diào)用的一個已經(jīng)實(shí)例化的對象康辑,都是線程安全的。只不過靜態(tài)內(nèi)部類采用的延時創(chuàng)建對象的策略轿亮,只有我們調(diào)用getInstance()方法的時候才把靜態(tài)內(nèi)部類加載到內(nèi)存中疮薇,從而實(shí)例化我們的對象。
二我注、向容量為100的int型數(shù)組中隨機(jī)插入0~99
當(dāng)時我的第一反應(yīng)是去隨機(jī)數(shù)按咒,插入數(shù)組中,如果檢測到當(dāng)前下標(biāo)位置發(fā)生碰撞則向前或向后移動但骨,但是感覺這樣時間復(fù)雜度太大了励七,可能會達(dá)到n^2智袭,所以能否將數(shù)組類似于希爾排序一樣分為10個組,又想了一下能否在010中取隨機(jī)數(shù)掠抬,并且額外增加一個長度為10的數(shù)組記錄每組容量的多少吼野。如果當(dāng)前組滿了則向前或向后移動。就這樣胡思亂想了十分鐘两波,最后給面試官說了一下思路瞳步,面試官建議我下次按照最自己最原始的做法完成,再去想優(yōu)化腰奋,就這樣GG了单起。最后還是得多去看看算法,大公司還是很注意這方面的內(nèi)容劣坊。最后一個朋友提醒了我嘀倒,應(yīng)該使用類似洗牌的算法~果然是刷了劍指offer和程序之美的老鳥!

void shuffle(int counts[]){
        Random random = new Random();
        int temp;
        for(int i = 0;i < counts.length;i++){
            //這樣做保證了每次交換的都大于i讼稚,防止與已經(jīng)交換過的數(shù)再交換一次括儒,保證打亂的順序
            int j = i+random.nextInt(counts.length-i);
            //i,j進(jìn)行順序交換
            temp = counts[i];
            counts[i] = counts[j];
            counts[j] = temp;
        }
    }

三、邏輯問題:取100個小球锐想,每次只能去一個或者兩個帮寻,假設(shè)你先取,如何保證你能贏赠摇。
這個問題自己有點(diǎn)略傻固逗,當(dāng)時想的是100個太多,嘗試一下逆推藕帜,最后想出最后剩3個的時候自己肯定會贏的烫罩。面試官說思路是對的,讓我回去再想一想洽故,真蠢贝攒,每次自己取完后保證是3的倍數(shù)最后肯定會剩3個的。

其他的問題都是基礎(chǔ)的java面試題时甚,唯一的遺憾就是沒有問到android的面試題隘弊。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市荒适,隨后出現(xiàn)的幾起案子梨熙,更是在濱河造成了極大的恐慌,老刑警劉巖刀诬,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件咽扇,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)质欲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門树埠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人把敞,你說我怎么就攤上這事弥奸。” “怎么了奋早?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵盛霎,是天一觀的道長。 經(jīng)常有香客問我耽装,道長愤炸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任掉奄,我火速辦了婚禮规个,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘姓建。我一直安慰自己诞仓,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布速兔。 她就那樣靜靜地躺著墅拭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪涣狗。 梳的紋絲不亂的頭發(fā)上谍婉,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天爷绘,我揣著相機(jī)與錄音熟吏,去河邊找鬼波俄。 笑死闹瞧,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的快毛。 我是一名探鬼主播有送,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼柳沙,長吁一口氣:“原來是場噩夢啊……” “哼窟赏!你這毒婦竟也來了措译?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤饰序,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后规哪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體求豫,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蝠嘉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片最疆。...
    茶點(diǎn)故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蚤告,靈堂內(nèi)的尸體忽然破棺而出努酸,到底是詐尸還是另有隱情,我是刑警寧澤杜恰,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布获诈,位于F島的核電站,受9級特大地震影響心褐,放射性物質(zhì)發(fā)生泄漏舔涎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一逗爹、第九天 我趴在偏房一處隱蔽的房頂上張望亡嫌。 院中可真熱鬧,春花似錦掘而、人聲如沸挟冠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽知染。三九已至,卻和暖如春女蜈,著一層夾襖步出監(jiān)牢的瞬間持舆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工伪窖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留逸寓,地道東北人。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓覆山,卻偏偏與公主長得像竹伸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子簇宽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評論 2 349

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

  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時...
    歐辰_OSR閱讀 29,339評論 8 265
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,092評論 1 32
  • 在一個方法內(nèi)部定義的變量都存儲在棧中勋篓,當(dāng)這個函數(shù)運(yùn)行結(jié)束后,其對應(yīng)的棧就會被回收魏割,此時譬嚣,在其方法體中定義的變量將不...
    Y了個J閱讀 4,413評論 1 14
  • 我是皈依居士。一個打醬油的皈依居士钞它。很多時候拜银,無意間告訴別人皈依居士的身份殊鞭,大多數(shù)人的反應(yīng)是好奇,依如我對出家法師...
    一盞燈閱讀 715評論 2 48
  • 文/時間細(xì)流 傍晚尼桶,回到家操灿,打開房門,屋子里空蕩蕩泵督,老婆不在家趾盐。拿起手機(jī)發(fā)了條微信給妻子問:“你去超市了嗎?”她遲...
    時間細(xì)流閱讀 1,093評論 29 15