日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【毕业求职季】-听说你想去大厂看学妹,带你看看字节跳动抖音电商后端面试长啥样?

發(fā)布時間:2025/4/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【毕业求职季】-听说你想去大厂看学妹,带你看看字节跳动抖音电商后端面试长啥样? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

畢業(yè)求職季,你準(zhǔn)備好了嗎?希望各位小伙伴能夠苦練技術(shù),早日達(dá)成自己心儀的offer。

下面是博主收集的一些關(guān)于面試的比較幫的面試題目,有需要的小伙伴可自行訂閱下載。

Spring系列面試題129道(附答案解析)

Redis,快看看這40道面試題

MyBatis的27道面試題

73道Java面試題合集-多線程與進(jìn)程

28道ZooKeeper面試題

【一面】

注:面試官特別友善,面試體驗特別好

  • 自我介紹

  • 實習(xí)時間挺長?

  • 數(shù)組和鏈表的區(qū)別?

二者都屬于一種數(shù)據(jù)結(jié)構(gòu)
從邏輯結(jié)構(gòu)來看
1. 數(shù)組必須事先定義固定的長度(元素個數(shù)),不能適應(yīng)數(shù)據(jù)動態(tài)地增減的情況。當(dāng)數(shù)據(jù)增加時,可能超出原先定義的元素個數(shù);當(dāng)數(shù)據(jù)減少時,造成內(nèi)存浪費(fèi);數(shù)組可以根據(jù)下標(biāo)直接存取。
2. 鏈表動態(tài)地進(jìn)行存儲分配,可以適應(yīng)數(shù)據(jù)動態(tài)地增減的情況,且可以方便地插入、刪除數(shù)據(jù)項。(數(shù)組中插入、刪除數(shù)據(jù)項時,需要移動其它數(shù)據(jù)項,非常繁瑣)鏈表必須根據(jù)next指針找到下一個元素
從內(nèi)存存儲來看
1. (靜態(tài))數(shù)組從棧中分配空間, 對于程序員方便快速,但是自由度小
2. 鏈表從堆中分配空間, 自由度大但是申請管理比較麻煩

從上面的比較可以看出,如果需要快速訪問數(shù)據(jù),很少或不插入和刪除元素,就應(yīng)該用數(shù)組;相反, 如果需要經(jīng)常插入和刪除元素就需要用鏈表數(shù)據(jù)結(jié)構(gòu)了。

  • ArrayList的擴(kuò)容是怎么實現(xiàn)?

?

首先有三種構(gòu)造方法,空參,指定大小,和指定集合

public ArrayList();public ArrayList(Collection<? extends E> c)public ArrayList(int initialCapacity)

后兩種通過創(chuàng)造對象,或指定大小來初始化內(nèi)部數(shù)據(jù)即可。

空參的時候,默認(rèn)數(shù)組長度是0,也就是初始化數(shù)組長度為0

添加數(shù)據(jù)后,

public boolean add(E e) { //確保內(nèi)部容量(通過判斷,如果夠則不進(jìn)行操作;容量不夠就擴(kuò)容來確保內(nèi)部容量)ensureCapacityInternal(size + 1); // ①Increments modCount!!elementData[size++] = e;//②return true;}

?

① ensureCapacityInternal方法名的英文大致是“確保內(nèi)部容量”,size表示的是執(zhí)行添加之前的元素個數(shù),并非ArrayList的容量,容量應(yīng)該是數(shù)組elementData的長度。ensureCapacityInternal該方法通過將現(xiàn)有的元素個數(shù)數(shù)組的容量比較。看如果需要擴(kuò)容,則擴(kuò)容。

②是將要添加的元素放置到相應(yīng)的數(shù)組中。

根據(jù)傳入的最小需要容量minCapacity來和數(shù)組的容量長度對比,若minCapactity大于或等于數(shù)組容量,則需要進(jìn)行擴(kuò)容。

綜上所述,ArrayList的空參構(gòu)造方法相當(dāng)于在沒指定initialCapacity時就是會使用延遲分配對象數(shù)組空間,當(dāng)?shù)谝淮尾迦朐貢r才分配10(默認(rèn))個對象空間。假如有20個數(shù)據(jù)需要添加,那么會分別在第一次的時候,將ArrayList的容量變?yōu)?0 ;之后擴(kuò)容會按照1.5倍增長。也就是當(dāng)添加第11個數(shù)據(jù)的時候,Arraylist繼續(xù)擴(kuò)容變?yōu)?0*1.5=15;當(dāng)添加第16個數(shù)據(jù)時,繼續(xù)擴(kuò)容變?yōu)?5 * 1.5 =22個。

?

如果通過無參構(gòu)造的話,初始數(shù)組容量為0,當(dāng)真正對數(shù)組進(jìn)行添加時,才真正分配容量。每次按照1.5倍(位運(yùn)算)的比率通過copeOf的方式擴(kuò)容。

/**增加容量,以確保它至少能容納*由最小容量參數(shù)指定的元素數(shù)。* @param mincapacity所需的最小容量 */private void grow(int minCapacity) { // overflow-conscious codeint oldCapacity = elementData.length; //>>位運(yùn)算,右移動一位。 整體相當(dāng)于newCapacity =oldCapacity + 0.5 * oldCapacity// jdk1.7采用位運(yùn)算比以前的計算方式更快int newCapacity = oldCapacity + (oldCapacity >> 1); if (newCapacity - minCapacity < 0)newCapacity = minCapacity; //jdk1.7這里增加了對元素個數(shù)的最大個數(shù)判斷,jdk1.7以前是沒有最大值判斷的,MAX_ARRAY_SIZE 為int最大值減去8(不清楚為什么用這個值做比較)if (newCapacity - MAX_ARRAY_SIZE > 0)newCapacity = hugeCapacity(minCapacity); // 最重要的復(fù)制元素方法elementData = Arrays.copyOf(elementData, newCapacity);}
  • 介紹一下hashmap,介紹一下put操作做了哪些步驟?(問了細(xì)節(jié))

  • hashmap判定重復(fù)是==還是equals

  • hashmap1.7和1.8?

  • hashMap是線程安全嗎?介紹一下concurrentHashMap?如何保證線程安全的同時保證吞吐量?

  • synchronized在jdk1.8做了哪些優(yōu)化?

  • synchronized為什么要設(shè)計成可重入?

???????重入鎖實現(xiàn)可重入性原理或機(jī)制是:每一個鎖關(guān)聯(lián)一個線程持有者和計數(shù)器,當(dāng)計數(shù)器為 0 時表示該鎖沒有被任何線程持有,那么任何線程都可能獲得該鎖而調(diào)用相應(yīng)的方法;當(dāng)某一線程請求成功后,JVM會記下鎖的持有線程,并且將計數(shù)器置為 1;此時其它線程請求該鎖,則必須等待;而該持有鎖的線程如果再次請求這個鎖,就可以再次拿到這個鎖,同時計數(shù)器會遞增;當(dāng)線程退出同步代碼塊時,計數(shù)器會遞減,如果計數(shù)器為 0,則釋放該鎖。

  • volatile的原理?解決什么問題?

  • 介紹一下JMM

???????

原子性?是指在一個操作中就是cpu不可以在中途暫停然后再調(diào)度,既不被中斷操作,要不執(zhí)行完成,要不就不執(zhí)行。

可見性?是指當(dāng)多個線程訪問同一個變量時,一個線程修改了這個變量的值,其他線程能夠立即看得到修改的值。

有序性?即程序執(zhí)行的順序按照代碼的先后順序執(zhí)行。

  • Lock接口?了解過AQS嘛?

  • ReentrantLock可以做公平鎖嗎?怎么實現(xiàn)公平鎖?

  • 算法題:用棧實現(xiàn)隊列(Leetcode)其中棧的數(shù)據(jù)結(jié)構(gòu)也自己實現(xiàn)

  • String s1 = “abc” String s2 = new String(“abc”)兩個語句分別創(chuàng)建了幾個對象?對象存儲的位置?s1和s2相等嗎?執(zhí)行順序先是第一條再是第二條創(chuàng)建幾個對象?

  • interface和abstract的區(qū)別

???????  1.abstract class 在 Java 語言中表示的是一種繼承關(guān)系,一個類只能使用一次繼承關(guān)系。但是,一個類卻可以實現(xiàn)多個interface。
  2.在abstract class 中可以有自己的數(shù)據(jù)成員,也可以有非abstarct的成員方法,而在interface中,只能夠有靜態(tài)的不能被修改的數(shù)據(jù)成員(也就是必須是static final的,不過在 interface中一般不定義數(shù)據(jù)成員),所有的成員方法都是abstract的。
 3.abstract class和interface所反映出的設(shè)計理念不同。其實abstract class表示的是"is-a"關(guān)系,interface表示的是"like-a"關(guān)系。
 4.實現(xiàn)抽象類和接口的類必須實現(xiàn)其中的所有方法。抽象類中可以有非抽象方法。接口中則不能有實現(xiàn)方法。
 5.接口中定義的變量默認(rèn)是public static final 型,且必須給其初值,所以實現(xiàn)類中不能重新定義,也不能改變其值。
 6.抽象類中的變量默認(rèn)是 friendly 型,其值可以在子類中重新定義,也可以重新賦值。
 7.接口中的方法默認(rèn)都是 public,abstract 類型的。

  • abstract抽象類里面一定要有抽象方法嗎?

  • interface可以寫方法的實現(xiàn)嗎?

  • jvm的類加載機(jī)制?

  • 雙親委派機(jī)制?

  • TCP屬于網(wǎng)絡(luò)的哪一層?

  • TCP是面向連接的?為什么三次握手????????

第一次握手:建立連接時,客戶端發(fā)送syn包(syn=j)到服務(wù)器,并進(jìn)入SYN_SENT狀態(tài),等待服務(wù)器確認(rèn);SYN:同步序列編號(Synchronize Sequence Numbers)。

第二次握手:服務(wù)器收到syn包,必須確認(rèn)客戶的SYN(ack=j+1),同時自己也發(fā)送一個SYN包(syn=k),即SYN+ACK包,此時服務(wù)器進(jìn)入SYN_RECV狀態(tài);

第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED(TCP連接成功)狀態(tài),完成三次握手。

  • TCP怎么保證可靠傳輸?

  • 滑動窗口的大小由哪一端來控制?server為什么要控制?client為什么要控制?

  • 擁塞控制知道嗎?

  • mysql聯(lián)合索引一道題目:建立了聯(lián)合a,b,c。

    ?

    a,b,c會走索引嗎?a,c會走索引嗎?

    ?

    ?

  • 算法題:無重復(fù)字符的最長子串(leetcode)

  • 你有什么問題要問我嗎?問了一下業(yè)務(wù)?問了一下什么語言?

?

【二面】

  • 自我介紹

  • 介紹一下springMVC和Springboot和Mybatis

  • springMVC的一些細(xì)節(jié)

  • springboot的作用

  • 介紹幾種排序算法,時間復(fù)雜度,空間復(fù)雜度

  • 桶排序

  • 快速排序

  • 算法題:實現(xiàn)快速排序

  • 堆排序怎么實現(xiàn)

  • 數(shù)據(jù)結(jié)構(gòu)中圖的表示有哪些

  • 哪種情況下用矩陣、哪種情況下用鄰接表

  • 求兩個點之間的最短距離?介紹一下迪杰斯特拉算法?

  • 介紹一下事務(wù)?

  • 介紹一下三大范式?

  • 進(jìn)程和線程的區(qū)別

  • 進(jìn)程調(diào)度有哪幾種方式?有哪幾種評價方式?

  • 介紹一下虛擬內(nèi)存?為什么使用虛擬內(nèi)存?(兩種優(yōu)點)

  • 算法題:對無序的鏈表進(jìn)行排序(不可以使用Java中的容器)

?

【三面】

  • 自我介紹

  • 學(xué)校里學(xué)的哪些課程比較受用?

  • 一個指令從軟件到操作系統(tǒng)到硬件執(zhí)行?整個過程做了哪些?

  • 啟動一個應(yīng)用,監(jiān)聽一個端口對外服務(wù)?啟動服務(wù)以后,本身沒有

    問題,但是客戶端連不到服務(wù)?如何診斷?

  • 一個url從輸入到頁面解析的過程?

  • DNS用什么傳輸協(xié)議?

  • 用戶如何找到DNS服務(wù)器?

  • DNS服務(wù)器是怎么知道IP地址的?如何知道去哪里找DNS服務(wù)器?

  • JDK和JRE的區(qū)別?

  • 類加載的機(jī)制?

  • 一道問題,有關(guān)于Java的值傳遞

  • 手撕sql

    employee(id, name, salary)

    office(id, city)

    寫一個sql,輸出每個城市收入最高的員工的名字?后面改成每個城市

    收入最高的收入?

  • 算法題:下一個排列(Leetcode)

  • 數(shù)學(xué)題:參加一個游戲節(jié)目,你是參賽者,主持人會在你的前面放三

    個盒子,其中一個盒子藏獎品,你選中一個盒子之后,主持人會開啟

    另外兩個中沒獎品的一個盒子,剩下一個盒子。請問現(xiàn)在有機(jī)會讓你

    換成另外一個盒子,你換盒子和不換盒子的中獎概率是怎么樣的?

  • 你有什么問題要問我嗎??

總結(jié)

以上是生活随笔為你收集整理的【毕业求职季】-听说你想去大厂看学妹,带你看看字节跳动抖音电商后端面试长啥样?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。