做者:Nu11Pointer
出處:https://www.nowcoder.com/disc...java
=============================================================================
本人南京某985渣渣研究生一枚,平生第一次面試。。。說出來大家可能不信mysql
真心喜歡「字節跳動」這個名字。。以爲好。。Q?
樓主前幾天投了字節後臺的實習崗位,次日HR就打電話說安排面試了,視頻面試約定在了下午五點,是真的準時,說5點就五點😂😂
在網上看了看你們的面經以後準備了一天就開始了第一輪面試;
三次面試的小哥哥都是挺友好的,這也是我能平靜下來的緣由(一開始的時候是真的緊張呀)
一上來就自我介紹,而後介紹本身的項目。bulabulabula 我作了XXX系統!!我完成了xxx功能!
介紹完開始問問題:面試
答:安卓開發用的是SDK,就像Java的JDK同樣,能夠本身編寫,相互調用實現。算法
答:java內存模型分爲堆內存和棧內存,棧內存的話保存一些方法傳遞的參數和一些局部變量。堆內存的話分爲新生代和老年代,新生代又分爲eden區和兩個survivor區 bulabulabula。。sql
答:能夠轉換,通常來講new一個變量的話都是進入新生代的eden區,可是會有動態對象年齡斷定 和長期存活的對象就會進入老年代。繼續bulabulabula數據庫
答:有引用計數和可達性分析法。回收算法的話就有垃圾收集算法:標記-清除、複製、標記-整理、分代收集數組
答:a. java虛擬機棧(棧幀中的本地變量表)中的引用的對象。
b.方法區中的類靜態屬性引用的對象。
c.方法區中的常量引用的對象。
d.本地方法棧中JNI本地方法的引用對象。
問:垃圾回收器瞭解過嗎?介紹一下G1?
答:全部的回收算法都會存在STW問題,G1的話就是對這個問題進行優化,並行回收,用戶很難感知。bulabulabula服務器
答:hashmap的話是數組+鏈表實現的,經過hash散列化來決定進哪個數組,若是有的話就「掛」在鏈表的最後面。bulabulabula網絡
答:經過equals方法判斷真正的內容。 hashcode和equals的關係以下:
一、若是兩個對象相等(equals),那麼他們必定有相同的哈希值(hash code)。
二、若是兩個對象的哈希值相等,那麼這兩個對象有可能相等也有可能不相等。(須要再經過equals來判斷)數據結構
答:equals:是用來比較兩個對象內部的內容是否相等的。
==:是用來判斷兩個對象的地址是否相同,便是否是指相同一個對象。
若是沒有重寫equals時,是直接用==判斷的
若是是基本類型和基本型封裝,則仍然爲比較內容。
答:(心裏OS 來了來了來了!!!!)好。
題目一:給定一個排序鏈表,刪除全部重複的元素,使得每一個元素只出現一次。
當時我真的是很慌張!腦子裏想的是我會作我會作!但是倒是一片空白。深呼吸一下。用遞歸作了出來。 又問我除了遞歸怎麼作?「那就遍歷,每次都比較就行」
「那爲何不用遍歷用遞歸呢?」「遞歸寫起來簡單啊!」
題目二
給定一個二叉樹,原地將它展開爲鏈表。
leetcode原題。
題目三
給定一棵二叉樹,想象本身站在它的右側,按照從頂部到底部的順序,返回從右側所能看到的節點值。
秒了。
一面結束,說叫我別退,還有一我的。
二面的小哥哥不懂Java 瘋狂在問操做系統和底層的實現。。。
答:import啊(懷疑本身腦殘。章口就萊??)
答:jar包就是一堆.class文件
答:不!知!道!(哭了,饒了我這個小菜雞吧)
答:java編譯器的話通過四個步驟,詞義分析,語義分析,語法分析和代碼生成。
答:java裏面是抽象函數和接口,而後bulabulabula介紹異同;
答:上同。
答:
一, 對象優先在新生代Eden區分配
二, 大對象直接進入老年代
三, 長期存活對象將進入老年代(虛擬機設計了一個對象年齡計數器,該閥值默認爲15)
四, 動態對象年齡斷定 若是Survivor區中相同年齡全部對象大小的總和大於Survivor區空間的一半,年齡大於或等於該年齡的對象在Minor GC時將複製至老年代
五, 空間分配擔保 當Minor GC時若是存活對象過多,沒法徹底放入Survivor區,就會向老年代借用內存存放對象,以完成Minor GC
答:底層的話是用b+樹實現的,它的優勢是可以定位到數據點和範圍查詢。修改key與子樹的組織邏輯,將索引訪問都落到葉子節點並 按順序將葉子節點串起來(方便範圍查詢) 等等。。。
答:
TCP協議是有鏈接的,有鏈接的意思是開始傳輸實際數據以前TCP的客戶端和服務器端必須經過三次握手創建鏈接,會話結束以後也要結束鏈接。而UDP是無鏈接的
TCP協議保證數據按序發送,按序到達,提供超時重傳來保證可靠性,可是UDP不保證按序到達,甚至不保證到達,只是努力交付,即使是按序發送的序列,也不保證按序送到。
TCP協議所需資源多,TCP首部需20個字節(不算可選項),UDP首部字段只需8個字節。
TCP有流量控制和擁塞控制,UDP沒有,網絡擁堵不會影響發送端的發送速率
TCP是一對一的鏈接,而UDP則能夠支持一對一,多對多,一對多的通訊。
TCP面向的是字節流的服務,UDP面向的是報文的服務。
答:(心裏OS 來了來了來了!!!!)好。
二面的話就作了一道題目,多是小哥哥比較急着吃飯吧。QAQ
答:(還好還好)秒了。
而後問了我一些基本狀況,江蘇的吧?問我有沒有什麼問他的?我:「emmmm 我都忘了我問的啥了」
老哥聽完來了句「那就來吧」
心裏溫暖度maxXXXXXXXXX
問了下上司,要不要三面,上司在吃晚飯,決定晚上八點繼續
三面的話就聊人生、聊項目
而後就讓我等HR通知了。 5555 整體感受的話仍是要學的東西還挺多的,要否則之後心態仍是會崩,會作的題差點由於緊張而得不到正常發揮。 感謝字節跳動給我面試的機會吧,不論最後有沒有成,我仍是要說,「字節跳動」這個名字真的好Q啊