一面(23min)
自我介紹
項目中最自豪的部分
也沒什么太自豪的,就是在移動端開發的時候不存在cookie和session,然后用redis存了一下驗證碼感覺還不錯。
講一講ArrayList和LinkedList
ArrayList底層實現是數組,并且每次擴容擴容1.5倍,常用在查詢較多的場景中。而LinkedList底層實現是鏈表常用在增刪比較多的場景
你說你對鎖有了解,說一說你最熟悉的兩個鎖
當時太緊張就隨口說了兩個,樂觀鎖,悲觀鎖。樂觀鎖:每次執行事務的時候都是先執行在檢查是否有其他是否在執行。而悲觀鎖如行鎖,表鎖,都是先鎖定再執行事務。通常在并發量比較大的情況下用悲觀鎖,并發量小的情況下用樂觀鎖
說一下synchronied和ReentrantLock的區別
synchronied是JVM級別的,而ReentrantLock是api級別的,JVM會對synchronied做出相應的優化,鎖消除:當JVM判定該資源不會被其他線程爭奪的時候就會消除該鎖,還有鎖自旋,自適應鎖(面試官速度很快,還沒等我來得及解釋ReentrantLock就跳下一個問題了,也許是這個超底層的回答比較滿意吧)
講一下ThreadLoacal吧
ThreadLocal底層實現是一個Map結構的表,key是Thread.currentThread(),而Value則是我們想要保存的對象
它(ThreadLocal)有什么用,可以舉一個例子嗎?
可以在每個線程都擁有一個各自的副本,封裝起來不被影響,作用的話,可以做一個類似賣票的系統,每個售票廳(線程)只能出售100張票,不能多不能少
用過exchange()嗎
不好意思,只敲過一次例子,不太了解
說一說JVM內存模型吧
我:棧區:每次方法的執行都會有一次棧幀的生成,并且其中有局部變量表。堆區:每次new出來的對象都保存在這兒。本地方法棧:通過C/C++調用系統接口的一些方法,方法區:類的信息 靜態變量都在這兒,還有程序計數器
說一說AOP吧
AOP就是面向切面編程,并解釋了下列術語,joinpoint,pointcut,aspect,advice,并說了一下實現的原理,若實現了接口就是JDK動態代理否則就用CGLIB
了解asm嗎?
我反應了半天才想起這是一個jar包,不過從沒了解過就說不知道了
String str1=new String("abc"),String str2=new String("abc"); str1==str2返回什么
當時太緊張,注意力一直放在abc字符串上了忽略了這是new了一個對象,一直回答true,反問我很久我還是沒反應過來,有點沒發揮好
知道如何讓線程同步嗎?
wait,notify,notifyAll,await,signal,siganlAll,countdownLatch,cyclicbarrer
說一說countdownlatch,cyclicbarrer
都可以等幾個線程就緒后再執行后續操作,區別就是cyclicbarrer是可以復用的,而countdownlatch不可以
舉個例子?
可以假設以下場景,等9個跑步選手(線程)同時在起跑線就緒了再開始起跑
可以實習多久
你的職業規劃
你有什么想問我的嗎?
自我介紹
講一下hashmap吧
hashmap底層是一個key-value結構的entry數組+鏈表,在put的時候根據key的hashcode的值在hash一次,然后根據得到 的hash值再和hashmap的size取余操作定位到要插入的哈希桶,如果為null則插入,否則遍歷哈希桶后面的鏈表如果有key相等的則覆蓋,否則添加到尾部,然后檢查是否達到treshold需要擴容,并且每次擴容都是擴大兩倍
hashmap可以插入null值嗎
可以
為什么呢?你不是說根據key的hashcode插入嗎
不好意思,我只是知道可以,具體情況不太清楚
你說你會MySQL調優SQL語句,那你一般是怎么做的呢?
一般是先查看慢SQL日志,然后explain一下該查詢語句,看是否索引失效或者是沒建索引
我們都知道hashmap是線程不安全的,那么為什么線程不安全呢?
因為當兩個線程同時對hasmap擴容的時候,會導致循環鏈表,使cpu達到100%,甚至宕機
你說你對多線程有所了解,那你說一下線程池的實現原理吧
說一說垃圾回收的時候,如何判定一個對象是否需要回收?
一共有兩種算法,一種是引用計數算法,每被引用一次計數器就+1,當引用為0就回收,不過這種算法有一個弊端就是,當對象之間互相引用的時候就永遠不會回收,所以用的最多的還是GC ROOTS可達性分析,看對象是否被GC ROOTS引用,那么哪些可以作為GC ROOTS呢?有以下四種:1.棧里面的局部變量表,方法區的2.類靜態屬性引用的對象3.方法區中常量引用的對象,4.JNI本地變量棧中引用的對象
說一說你的項目中登錄是怎么做的
大概就是redis做驗證碼緩存,MD5加密密碼(有點長。。省略)
說說cookie和session吧
session來自于cookie,session可以放在cookie里,并且cookie存在客戶端,session存在服務器端(簡單回答)
你說你用過redis,那你知道redis可以做持久化嗎?
可以
哪兩種?
RDB 和 AOF
一面有點緊張,沒發揮好,不過能從底層回答的都從底層回答了,問的淺,答得較深
二面運氣不錯,恰好問到了擅長的部分,問的是要比一面更難,不過還算是答的比較好
最后感謝程濤學長提供的內推機會,以及一直以來在Java學習上的幫助!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/69425.html
摘要:面經因為我完全沒有面試經驗,從來沒有經歷過面試,于是想著在去這類大公司面試之前先找成都的小公司練練手,積累點面試經驗。于是三月份開始就有成都的小公司開始約我面試。 前序 從我高考成績出來那一刻開始,從我在高考志愿上填上計算機科學與技術這幾個當時在心中堪稱神圣的幾個字開始,我就已經把進入中國互聯網最高殿堂BAT作為我整個大學奮斗的目標,哪怕我就讀的是一所位于內陸的雙非一本大學我也認為我能...
摘要:作者鏈接來源牛客網今天剛剛收到的電話,開心,簡單記錄一下美團的面經。當時面試官評價基礎不是很好,其他還行。的三次握手四次揮手。整體感覺美團的面試比較基礎,但是各個方面都有涉及到。 作者:icysnowgx鏈接:https://www.nowcoder.com/disc...來源:牛客網 今天剛剛收到hr的電話,開心,簡單記錄一下美團的面經。時間隔的比較久了,簡單回憶下,最后會給出我之前...
摘要:我自己總結的學習的系統知識點以及面試問題,已經開源,目前已經。面試官那你都了解里面的哪些東西呢我哈哈哈這可是我的強項,從,說到,,又說到線程池,分別說了底層實現和項目中的應用。 我自己總結的Java學習的系統知識點以及面試問題,已經開源,目前已經 35k+ Star。會一直完善下去,歡迎建議和指導,同時也歡迎Star: https://github.com/Snailclimb... ...
摘要:網易跨境電商考拉海購在線筆試現場技術面面。如何看待校招面試招聘,對公司而言,是尋找勞動力對員工而言,是尋找未來的同事。 如何準備校招技術面試 標簽 : 面試 [TOC] 2017 年互聯網校招已近尾聲,作為一個非 CS 專業的應屆生,零 ACM 經驗、零期刊論文發表,我通過自己的努力和準備,從找實習到校招一路運氣不錯,面試全部通過,謹以此文記錄我的校招感悟。 寫在前面 寫作動機 ...
閱讀 999·2021-11-24 10:30
閱讀 2324·2021-10-08 10:04
閱讀 3965·2021-09-30 09:47
閱讀 1448·2021-09-29 09:45
閱讀 1441·2021-09-24 10:33
閱讀 6262·2021-09-22 15:57
閱讀 2356·2021-09-22 15:50
閱讀 4087·2021-08-30 09:45