1. 程式人生 > >阿里面試問題總結(Java工程師)

阿里面試問題總結(Java工程師)

浪費了“黃金五年”的Java程式設計師,還有救嗎? >>>   

寫在前面

今天是我來杭州找工作後參加的第一次現場面試,也算是工作以來第一次正式的技術面試,超級超級緊張!兩個面試官貌似都是做中介軟體和資料庫程式設計方向的,問的很多我都不太擅長,兩輪下來四個字總結那就是生無可戀。今天憑記憶總結一下,調整心態繼續征程吧!

問題整理

一、演算法

  1. 程式碼實現二叉樹的資料結構。
  2. 若二叉樹是XX(畫了一個),前序遍歷是什麼?如何程式碼實現?(寫了個遞迴)還有什麼其他的實現方式?

二、資料庫

  1. 寫SQL語句。有一個表三個欄位“姓名”、“科目”、“成績”,寫一個查詢語句查出至少三科成績為90分以上的學生姓名。
  2. 有A和B兩個表,join後會有多少種結果,SQL怎麼寫?
  3. 資料庫三正規化是什麼?
  4. ER圖。
  5. 索引。
  6. 事務是什麼?事務的特徵是哪些,如何理解?四種事務隔離級別是什麼?如何理解?四種隔離級別分別會發生什麼情況?在平時應該如何選擇?
  7. 死鎖是什麼?引發死鎖的情況。四個條件分別是什麼,如何理解?如何處理死鎖?
  8. 如果發現一條SQL查詢語句執行時間很長,應如何排查解決?
  9. 在業務中價錢欄位用什麼資料型別?
  10. 資料庫主從複製的原理?為什麼用主從複製,解決了什麼問題?
  11. 資料庫的鎖是怎麼實現的。

三、Redis

  1. 持久化的方式
  2. 是單執行緒的嗎?
  3. 在專案中用的是Redis叢集嗎?

四、Java

  1. ThreadLocal是什麼?什麼時候會選擇存在ThreadLocal中?為什麼?
  2. 確保執行緒安全的方法有哪些?
  3. synchronized加在靜態方法上和非靜態方法上區別是什麼?
  4. 想要實現下單後30分鐘未支付關閉訂單,如何實現?(我說了定時任務,面試官說還有其他方式嗎?大概是想要問Timer類吧?)
  5. 什麼是原子操作?
  6. 執行緒之間如何共享資料?
  7. CountDownLatch和CyclicBarrier分別是什麼?
  8. synchronized和ReentrantLock的區別?ReentrantLock叫可重入鎖,可重入是什麼意思?
  9. java有哪些Collection?
  10. 什麼時候用陣列,什麼時候用ArrayList?
  11. 異常處理機制:Throwable、Exception、Error的關係。

五、Spring相關

  1. IOC是什麼?
  2. Bean的生命週期
  3. 如果一個jar包過於老舊,maven庫上沒有,如何在springboot中使用?(大概是這意思,然而我並不知道)
  4. springboot是什麼?為什麼用springboot?

六、其他

  1. 三層架構和mvc架構的區別。
  2. 當你走在馬路上,要去坐公交車,發現要坐的公交車從你旁邊經過,你會怎麼做?(這是道智力題嗎?黑人問號臉?)

七、秒殺場景

  1. 分散式Session是如何實現的?
  2. 如何優化?除了分流和加快取,還有哪些思路?
  3. 超賣問題

八、職業規劃

  1. 自己的職業規劃是什麼?
  2. 平常通過什麼方式提升技術能力

九、簡歷上專案的各種問題

總結

面試官除了問是什麼,更多的是想知道我對這些的理解、實現原理和實際應用,也確實暴露出自己很多問題,最後就是一種被問蒙了的狀態。坦然接受結果,繼續努力吧!

想要了解架構技術知識點的,可以關注我的JAVA架構師社群秋㪊:705127209,裡面會分享一些資深架構師錄製的視訊錄影:有Spring,MyBatis,Netty原始碼分析,高併發、高效能、分散式、微服務架構的原理,JVM效能優化這些成為架構師必備的知識體系。

相關推薦

阿里面試問題總結Java工程師

浪費了“黃金五年”的Java程式設計師,還有救嗎? >>>   

2018螞蟻金服面試總結Java方向

2018年8月初得螞蟻垂青(本人非985/211,螞蟻真的不是很在乎學歷!!!),有了一次社招機會,前後經歷三關,隨敗北但受益匪淺,在此與各位朋友分享經歷與心得。 第一關:線上筆試 筆試題內容如下: 說明: 構建一個本地快取,快取的物件是使用者ID以及部分使用者的資訊。

java面試總結資料來源網路

core java: 一、集合 1、hashMap   結構如圖:   HashMap在Map.Entry靜態內部類實現中儲存key-value對。   HashMap使用雜湊演算法。在put和get方法中。它使用hashCode()和equals()方法。當我們通過傳遞key-value對呼叫

阿里面試總結春招實習

* 層級關係(關於內聯樣式,style樣式,link形式,import形式),為什麼會有這三種,都應用在什麼地方。 面完現在才後知後覺,這個作用,應該從優先順序,快取,效能各方面來回答。 1.優先順序:(1)寫在標籤裡的style屬性,

JAVA面試總結待整理

內部類是一個統稱,具體分為四種:成員類,靜態成員類,區域性類,匿名類。其中匿名類是區域性類的特殊情況。對於成員類和靜態成員類都存在於類的頂層程式碼中。相當於類的靜態方法和非靜態方法的關係。區別在於成員類依賴於類例項而靜態成員類不依賴。所以前者只能訪問例項方法和成員而後者只能訪問靜態方法和成員。它們都用於建立

2018年7月Java面試總結面試題

關於面試題        先說說sql面試題吧,來到深圳後,第一天面了兩家公司,sql題出奇的相似,一般都是考的基本函式,例如求平均值,求和,求最大值、最小值等函式,sql關鍵字考的比較多的是disti

記——凡科業務運維工程師面試總結5.10

   初到凡科,是在鳳凰新村地鐵A出口,右拐50米,第一棟建築就是5號樓,首層便是凡科科技。    到了前臺,先說明來意後(通知來面試業務運維的),登記一下基本後,對方便拿出一套筆試題給我做,試題都是關於linux的,感覺挺基礎的,選擇題有考協議、有考工具、也有考命令實現的

最近找java實習面試被問到的東西總結Java方向

      時間,就是這麼很悄悄的溜走了將近兩個年華,不知不覺的,研二了,作為一個一般學校的研究生,不知道該說自己是不學無術,還是說有過努力,反正,這兩年裡,有過堅持,有過墮落,這不,突然間,有種開竅的急迫感,尋思著找些實習,充實下生活,也是為了將來而備戰,目標定位在杭州,

面試專題Java基礎

面向物件 1.面向物件和麵向過程的區別 面向過程關注於一個功能實現的步驟,按步驟程式設計實現功能。 面向物件關注於一個功能實現的行為,將一些行為封裝為一個物件來統一呼叫。   面向過程是一種事件為中心的程式設計思想。就是分析出解決問題所需的步驟,然後用函式把這些步

Selenium使用總結Java版本

近期開發使用Selenium比較多,因為之前沒用過,趟了太多坑,在此記錄一下 1.環境配置 配置要點: 1.webdriver要和瀏覽器版本對應,chrome使用chromedriver和chrome瀏覽器,firefox使用geckodrive和firefox瀏覽器 2.支援headless:本地開

常用排序演算法總結Java實現

排序演算法比較: 1. 氣泡排序 /** * 氣泡排序 * 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。 * 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。 * 針對所有的元素重複以上的步驟,除了最後一個

幾個內部排序演算法的總結JAVA

插入排序 1、直接插入排序 public void insertSort(int[] a){ for(int i=0;i<a.length;i++){ int key=a[i]; int pos=i; while(pos>0&&a

面試總結C++基礎

C++面試知識點彙總: 一、多型性:實現了“一個介面,多種方法”。程式在執行時才決定呼叫的函式。 從實現的角度來講,多型可以分為兩類:編譯時的多型性和執行時的多型性。前者是通過靜態聯編來實現的,比如C++中通過函式的過載和運算子的過載。後者則是通過動態聯編來實現的,在C++

面試總結 —— 高階JAVA工程師

一、無筆試題不知道是不是職位原因還是沒遇到,面試時,都不需要做筆試題,而是填張個人資訊表格,或者直接面試二、三大框架方面問題1、Spring 事務的隔離性,並說說每個隔離性的區別解答:Spring事務詳解2、Spring事務的傳播行為,並說說每個傳播行為的區別解答:Spri

已拿到offer 2015年騰訊暑期實習面試總結技術崗

前言 本人2012屆,廣州某985高校軟體學院本科生一枚,技術方面絕對不能與我班大神們相比。於4月25日正式簽了offer,崗位是後臺開發,想想經過了簡歷篩選,筆試,三輪面試,自己還是挺幸運的,現在就把面試的細節和經歷和大家分享一下。 失敗經歷 從3月開始,聽聞各大公司會開始在學校進行暑期實習

關於spark的mllib學習總結Java

本篇部落格主要講述如何利用spark的mliib構建機器學習模型並預測新的資料,具體的流程如下圖所示: 載入資料 對於資料的載入或儲存,mllib提供了MLUtils包,其作用是Helper methods to load,save and pre-pr

Thrift的一些總結Java開發

Client的開發順序為: 1、定義Tsocket 2、將Socket包裝到Transport(記得Transport要open() ) 3、將Transport包裝進Protocol 4、將Protocol包裝到Client 5、呼叫Client的函式 6、最後關閉Tra

八種排序演算法總結Java實現

        排序演算法有很多,在特定情景中使用哪一種演算法很重要。本文對幾種常見排序演算法做了簡單的總結。 一、氣泡排序         氣泡排序(BubbleSort)是一種簡單的排序演算法。它重複地走訪要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交

測試開發工程師面試總結——Java基礎篇

本文面向物件:測試開發工程師(服務端自動化方向)。 隨手百度一下都能找到**崗位面試總結,但是有關測開崗位的面試總結卻寥寥無幾。總體原因可能是這兩個:1 測試行業整體水平參差不齊,導致不同公司面試的問題不能抽象出來寫概覽。2 很多做測開的人可能內心對

Java工程師的一些面試總結5

基礎與框架: String類能被繼承嗎,為什麼 String,Stringbuffer,StringBuilder的區別? ArrayList和LinkedList有什麼區別 類的例項化順序,比如父類靜態資料,建構函式,欄位,子類靜態資料,建構函式,欄位