成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

記一次慘痛的面試經(jīng)歷

CoorChice / 2569人閱讀

摘要:把內(nèi)存分成兩種,一種叫做棧內(nèi)存,一種叫做堆內(nèi)存在函數(shù)中定義的一些基本類型的變量和對(duì)象的引用變量都是在函數(shù)的棧內(nèi)存中分配。堆內(nèi)存用于存放由創(chuàng)建的對(duì)象和數(shù)組。

一次慘痛的阿里技術(shù)面

就在昨天,有幸接到了阿里的面試通知,本來我以為自己的簡歷應(yīng)該不會(huì)的到面試的機(jī)會(huì)了,然而機(jī)會(huì)卻這么來了,我卻沒有做好準(zhǔn)備,被面試官大大一通血虐。因此,我想寫點(diǎn)東西紀(jì)念一下這次的經(jīng)歷,也當(dāng)一次教訓(xùn)了。其實(shí)面試官大大問的問題我也都聽說過,卻知其然不知其所以然。在這里就整理一下了。

1. JAVA中的容器用過那些?

  本人不才,用過的也就ArrayList、LinkedList、HaseSet、HashMap這幾個(gè)。然后面試官大大就問了,ArrayList和LinkedList的區(qū)別是啥呀,我心想不就是數(shù)組和鏈表的區(qū)別嗎,自己還手寫過這玩意,就簡單說了一說,發(fā)現(xiàn)還真的不知道說啥,特此整理一下。
  ArrayList和LinkedList的區(qū)別大致來源于內(nèi)部的實(shí)現(xiàn):
  前者是基于可變長數(shù)組的,數(shù)組的特性就是連續(xù)存儲(chǔ)的,可以方便的根據(jù)下標(biāo)去查詢數(shù)據(jù),根據(jù)下標(biāo)去修改數(shù)據(jù),而如果插入數(shù)據(jù)的話,插入到中間的話,這條數(shù)據(jù)之后的數(shù)據(jù)都需要后移,因此效率比較低,而且數(shù)組增長的時(shí)候,需要?jiǎng)?chuàng)建新的一個(gè)數(shù)組,并將數(shù)據(jù)拷貝一份,也會(huì)影響性能。
  后者是基于雙向鏈表的,鏈表的特性就是不連續(xù)的,根據(jù)下標(biāo)去查詢的話,需要移動(dòng)鏈表的指針,必然會(huì)導(dǎo)致效率的降低,而數(shù)據(jù)的插入?yún)s方便了很多,只需要修改那條數(shù)據(jù)的指針即可實(shí)現(xiàn)數(shù)據(jù)的插入。
  除了這一個(gè),還問了HashSet和HashTable的區(qū)別(ps:what?什么是HashTable,沒見過呀,當(dāng)時(shí)就沒答上來),后面查了一些東西才知道,HashTable就是和HashMap類似的東西,而且這玩意幾乎是面試必考的東西(ps:后悔沒有好好準(zhǔn)備了),這里就記錄下HashSet、HashMap以及HashTable的區(qū)別。
  * HashSet:set的實(shí)現(xiàn)類,內(nèi)部使用HashMap存放數(shù)據(jù),數(shù)據(jù)不允許重復(fù),這玩意就是他添加元素的實(shí)現(xiàn)啦

public boolean add(Object o) {
    return map.put(o, PRESENT)==null;
}

  * HashMap:map的一個(gè)實(shí)現(xiàn)類,內(nèi)部的方法在默認(rèn)情況下是非同步的。HashMap可以視為數(shù)組和鏈表的結(jié)合體,而他的內(nèi)部可以分為三部分:key的Set,value的Collection,Entry的Set,HashMap的存儲(chǔ)就是根據(jù)key的hash值找到元素的位置,統(tǒng)一位置的數(shù)據(jù)按鏈表的形式存儲(chǔ),新加入的在鏈頭,后加入的在鏈尾。
  * HashTable:繼承自Dictionary,同樣實(shí)現(xiàn)了Map的接口,HaseTable的方法是同步的,而且HashTable中的key和value都不允許null值。在HashMap中可以出現(xiàn)一個(gè)唯一的null主鍵,因此HashMap中g(shù)et()返回空時(shí)不代表不存在,需要使用containsKey()方法判斷。HashMap和HashTable都使用了iterator,同時(shí)HashTable也使用了Enumeration的方式。HashTable中直接使用了對(duì)象的hashcode,HashMap重新計(jì)算了hash值。

Java中集合的整理
是否有序 是否可重復(fù) 線程安全性
Vector 安全(同步集合類)
List 不安全
CopyOnWriteArrayList 讀寫分離,并發(fā)集合,數(shù)據(jù)最終一致,沒有實(shí)時(shí)一致性
AbstractSet 不安全
HashSet 不安全
TreeSet 是(二叉樹) 不安全
CopyOnWriteHashSet 讀寫分離,并發(fā)集合,數(shù)據(jù)最終一致,沒有實(shí)時(shí)一致性
AbstractMap 使用key-value來映射和存儲(chǔ)數(shù)據(jù),Key必須惟一,value可以重復(fù) 不安全
HashMap 同上 不安全
TreeMap 是(二叉樹) 同上 不安全
HashTable 同上 安全(同步集合類)
ConcurrentHashMap 同上 并發(fā)集合,采用可重入鎖
2.JAVA中的ThreadPool的最大和最小進(jìn)程數(shù)怎么確定的?

當(dāng)時(shí)遇到這個(gè)問題直接蒙圈了,這東西的我一般最大值設(shè)置為cpu線程數(shù)+1,還真的沒研究過到底怎么設(shè)置的,說白了就是只會(huì)拿來用,沒有深入了解他的機(jī)制,所以面試完了,還是回來查查資料記錄下吧。

  

簡單來說就是cpu核心數(shù)cpu利用率(1+等待時(shí)間/計(jì)算時(shí)間)。因此,如果是IO密集型的任務(wù),就分配多一點(diǎn)咯,至于多少嗎,可以自己在服務(wù)器上測(cè)下,如果懶得測(cè),直接取極端情況,cpu利用率100%,等待時(shí)間和計(jì)算時(shí)間一致,也就是直接取到2Ncpu左右。如果是運(yùn)算密集型的話,可以直接取等待時(shí)間為0,也就是Ncpu。其實(shí)這只是比較懶的做法,盡量還是在服務(wù)器上測(cè)試下更好。

3.JAVA中的gc機(jī)制是怎么樣的?

當(dāng)聽到這個(gè)問題的時(shí)候,感覺自己還是太年輕呀,沒有深入的去了解這些東西,只是簡單的看過,僅此而已。后悔自己沒有好好的研究這些了,所以只是簡單的回答當(dāng)對(duì)象用不到的時(shí)候,由虛擬機(jī)自己負(fù)責(zé)回收。那么問題來了,對(duì)象什么時(shí)候用不到,怎么判斷用不到了呢。
這里只是做些簡單的記錄,等有時(shí)間的時(shí)候在深入的去研究吧,畢竟大三狗,考研黨。
gc的方法:引用計(jì)數(shù)算法、根搜索算法、標(biāo)記/清除算法、復(fù)制算法、標(biāo)記/整理算法

4.JAVA中的內(nèi)存管理,堆和棧的區(qū)別?

這一塊我只知道一些簡單的知識(shí),內(nèi)存中的棧就是存放基本類型的變量和對(duì)象的引用變量,堆用來存放由new創(chuàng)建的對(duì)象和數(shù)組。深入的知識(shí)只能查資料咯。
  Java把內(nèi)存分成兩種,一種叫做棧內(nèi)存,一種叫做堆內(nèi)存
在函數(shù)中定義的一些基本類型的變量和對(duì)象的引用變量都是在函數(shù)的棧內(nèi)存中分配。當(dāng)在一段代碼塊中定義一個(gè)變量時(shí),java就在棧中為這個(gè)變量分配內(nèi)存空間,當(dāng)超過變量的作用域后,java會(huì)自動(dòng)釋放掉為該變量分配的內(nèi)存空間,該內(nèi)存空間可以立刻被另作他用。
  堆內(nèi)存用于存放由new創(chuàng)建的對(duì)象和數(shù)組。在堆中分配的內(nèi)存,由java虛擬機(jī)自動(dòng)垃圾回收器來管理。在堆中產(chǎn)生了一個(gè)數(shù)組或者對(duì)象后,還可以在棧中定義一個(gè)特殊的變量,這個(gè)變量的取值等于數(shù)組或者對(duì)象在堆內(nèi)存中的首地址,在棧中的這個(gè)特殊的變量就變成了數(shù)組或者對(duì)象的引用變量,以后就可以在程序中使用棧內(nèi)存中的引用變量來訪問堆中的數(shù)組或者對(duì)象,引用變量相當(dāng)于為數(shù)組或者對(duì)象起的一個(gè)別名,或者代號(hào)。
  引用變量是普通變量,定義時(shí)在棧中分配內(nèi)存,引用變量在程序運(yùn)行到作用域外釋放。而數(shù)組&對(duì)象本身在堆中分配,即使程序運(yùn)行到使用new產(chǎn)生數(shù)組和對(duì)象的語句所在地代碼塊之外,數(shù)組和對(duì)象本身占用的堆內(nèi)存也不會(huì)被釋放,數(shù)組和對(duì)象在沒有引用變量指向它的時(shí)候,才變成垃圾,不能再被使用,但是仍然占著內(nèi)存,在隨后的一個(gè)不確定的時(shí)間被垃圾回收器釋放掉。這個(gè)也是java比較占內(nèi)存的主要原因,實(shí)際上,棧中的變量指向堆內(nèi)存中的變量,這就是 Java 中的指針!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/68867.html

相關(guān)文章

  • 一次慘烈阿里面試經(jīng)歷

    摘要:當(dāng)我們的需求出現(xiàn)變動(dòng)時(shí),工廠模式會(huì)需要進(jìn)行相應(yīng)的變化??偨Y(jié)來說,要想成功進(jìn)行一次阿里巴巴的面試,你需要了解甚至掌握以下內(nèi)容語言,尤其是線程原理數(shù)據(jù)庫事務(wù),加鎖,重點(diǎn)分布式設(shè)計(jì)模式可以說是涉及范圍非常廣了。 showImg(https://segmentfault.com/img/bV8cSY?w=576&h=432); 前言 今天本是一個(gè)陽光明媚,鳥語花香的日子。于是我決定在逛街中感受...

    Eastboat 評(píng)論0 收藏0
  • 【FAILED】一次Python后端開發(fā)面試經(jīng)歷

    摘要:正確的思路是等概率隨機(jī)只取出共個(gè)數(shù),每個(gè)數(shù)出現(xiàn)的概率也是相等的隨機(jī)輸出把一段代碼改成,并增加單元測(cè)試。代碼本身很簡單,即使沒學(xué)過也能看懂,改后的代碼如下但是對(duì)于單元測(cè)試則僅限于聽過的地步,需要用到,好像也有別的模塊。 在拉勾上投了十幾個(gè)公司,大部分都被標(biāo)記為不合適,有兩個(gè)給了面試機(jī)會(huì),其中一個(gè)自己覺得肯定不會(huì)去的,也就沒有去面試,另一個(gè)經(jīng)歷了一輪電話面加一輪現(xiàn)場(chǎng)筆試和面試,在此記錄一下...

    kohoh_ 評(píng)論0 收藏0
  • 前端最強(qiáng)面經(jīng)匯總

    摘要:獲取的對(duì)象范圍方法獲取的是最終應(yīng)用在元素上的所有屬性對(duì)象即使沒有代碼,也會(huì)把默認(rèn)的祖宗八代都顯示出來而只能獲取元素屬性中的樣式。因此對(duì)于一個(gè)光禿禿的元素,方法返回對(duì)象中屬性值如果有就是據(jù)我測(cè)試不同環(huán)境結(jié)果可能有差異而就是。 花了很長時(shí)間整理的前端面試資源,喜歡請(qǐng)大家不要吝嗇star~ 別只收藏,點(diǎn)個(gè)贊,點(diǎn)個(gè)star再走哈~ 持續(xù)更新中……,可以關(guān)注下github 項(xiàng)目地址 https:...

    wangjuntytl 評(píng)論0 收藏0
  • 一次“失利后”經(jīng)過半年準(zhǔn)備通過阿里社招經(jīng)歷與感悟

    摘要:寫在最前本次分享一下在作者上一次失利即拿到畢業(yè)證第二天突然收到阿里社招面試通知失敗之后,通過分析自己的定位與實(shí)際情況,做出的未來一到兩年的規(guī)劃。在博客有一定曝光度的積累中,陸續(xù)收到了一些面試邀請(qǐng),基本上是阿里的但是我知道我菜。。 寫在最前 本次分享一下在作者上一次失利即拿到畢業(yè)證第二天突然收到阿里社招面試通知失敗之后,通過分析自己的定位與實(shí)際情況,做出的未來一到兩年的規(guī)劃。以及本次社招...

    malakashi 評(píng)論0 收藏0
  • 一次前端面試試水筆記

    摘要:浪費(fèi)青春話不多說,之前投的簡歷,有家公司忽然聯(lián)系說,想和我約個(gè)時(shí)間點(diǎn)電話面試。不了解自己的水平,永遠(yuǎn)都會(huì)止步于眼前的安逸。電話面試流程面試官簡單介紹一下來意,然后先了解工作經(jīng)驗(yàn),再問技術(shù)問題。 最近換了個(gè)項(xiàng)目,現(xiàn)階段處于項(xiàng)目啟動(dòng)階段,沒有開發(fā)任務(wù),天天悠悠哉哉地都快把自己的本職忘了。浪費(fèi)青春?。?!話不多說,之前投的簡歷,有家公司HR忽然聯(lián)系說,想和我約個(gè)時(shí)間點(diǎn)電話面試。雖然這段時(shí)間一直...

    shleyZ 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<