主頁 > 軟體設計 > 3年Java開發經驗從阿里、美團、滴滴面試回來,想和Java程式員談一談感悟及面經

3年Java開發經驗從阿里、美團、滴滴面試回來,想和Java程式員談一談感悟及面經

2020-11-22 11:28:53 軟體設計

最近面試了阿里、京東、美團、滴滴等大型互聯網公司,最終收到了美團offer,這次面試過后,我把面試過的公司的面試題做了一個整理,這篇文章是我憑回憶記錄的,面試題沒有順序,不分先后,接下來公布我去阿里、京東、美團等一線互聯網公司的面試題:

一、阿里巴巴面試

  1、開發中Java用得比較多的資料結構有哪些?

  2、談談你對HashMap的理解,底層原理的基本實作,HashMap怎么解決碰撞問題的?

  這些資料結構中是執行緒安全的嗎?假如你回答HashMap是執行緒安全的,接著問有沒有執行緒安全的map,接下來問conurren包,

  3、對JVM熟不熟悉?簡單說說類加載程序,里面執行的哪些操作?問了GC和記憶體管理,平時在tomect里面有沒有進行過相關的配置,

  4、說一下http協議、get和post的基本區別,接著問tcp/ip協議,三次握手,視窗滑動機制,

  5、開發中用了哪些資料庫?回答mysql;儲存引擎有哪些?然后問了我悲觀鎖和樂觀鎖問題使用場景、分布式集群實作的原理,

  6、springmvc和mybatis的作業原理,有沒有看過底層原始碼?

二、京東金融面試

  1、Dubbo超時重試;Dubbo超時時間設定

  2、如何保障請求執行順序

  3、分布式事物與分布式鎖(扣款不要出現負數)

  4、分布式session設定

  5、執行某操作,前50次成功,第51次失敗a全部回滾b前50次提交第51次拋例外,ab場景分別如何設定Spring(傳播性)

  6、Zookeeper有哪些用

  7、JVM記憶體模型

  8、資料庫垂直和水平拆分

  9、MyBatis如何分頁;如何設定快取;MySQL分頁,

  10、熟悉IO么?與NIO的區別,阻塞與非阻塞的區別,

  11、分布式session一致性

  12、分布式介面的冪等性設計「不能重復扣款」

三、美團面試

  1、最近做的比較熟悉的專案是哪個?畫一下專案技術架構圖,

  2、JVM老年代和新生代的比例?

  3、YGC和FGC發生的具體場景

  4、jstack,jmap,jutil分別的意義?如何線上排查JVM的相關問題?

  5、執行緒池的構造類的方法的5個引數的具體意義?

  6、單機上一個執行緒池正在處理服務如果忽然斷電該怎么辦?(正在處理和阻塞佇列里的請求怎么處理?)

  7、使用無界阻塞佇列會出現什么問題?

  8、介面如何處理重復請求?

  9、具體處理方案是什么?

  10、如何保證共享變數修改時的原子性?

  11、設計一個對外服務的介面實作類,在1,2,3這三個主機(對應不同IP)上實作負載均衡和順序輪詢機制(考慮并發)

四、滴滴面試

  1、自我介紹;技術特點

  2、興趣是什么;優勢是什么

  3、jvm、jre以及jdk三者之間的關系?

  4、Dubbo的底層原理,Zookeeper是什么

  5、cincurrentMap的機制;TreeMap;Volatil關鍵字

  6、快速排序;廣度優先搜索(佇列實作)

  7、快取的雪崩以及穿透的理解?

  8、HashMap的key可以重復嗎?

  9、synchronized和lock的區別?

  10.開發一個大型網站你會考慮哪些問題?

以上就是全部的面試題目,針對以上知識點,結合當前互聯網公司的技術需求及主流技術,我整理了一份Java核心知識點全決議,不少公司很重視高并發高可用的技術,特別是一線互聯網公司,分布式、JVM、spring原始碼分析、微服務等知識點已經是面試的必考題,這些東西可能你們平時在作業中接觸過,但是并沒有深入的學習過,希望這份資料對正在面試的朋友或是遭遇技術瓶頸的程式員們提供一點思路,

Java核心知識點整理

由于整個檔案內容特別多,共有29個Java核心技能全決議,所以在這里只簡單介紹下大概有哪些知識點,

資料領取方式:轉發+關注,然后添加VX(tkzl6666)即可獲得免費領取方式,

JVM

執行緒

JVM記憶體區域

JVM運行時記憶體

垃圾回收與演算法

JAVA 四種參考型別

GC分代收集演算法 VS 磁區收集演算法

GC垃圾收集器

JAVA IO/NIO

JVM 類加載機制

JAVA集合

介面繼承關系和實作

List

ArrayList(陣列)

Vector(陣列實作、執行緒同步)

LinkList(鏈表)

Set

HashSet(Hash表)

TreeSet(二叉樹)

JAVA多執行緒并發

JAVA并發知識庫

JAVA執行緒實作/創建方式

4種執行緒池

執行緒生命周期(狀態)

終止執行緒4種方式

sleep與wait 區別

start與run區別

JAVA后臺執行緒

JAVA鎖

執行緒基本方法4.1.11. 執行緒背景關系切換

同步鎖與死鎖

執行緒池原理

JAVA阻塞佇列原理

CyclicBarrier、CountDownLatch、Semaphore的用法

volatile關鍵字的作用(變數可見性、禁止重排序)

如何在兩個執行緒之間共享資料

JAVA基礎

JAVA例外分類及處理

JAVA反射

JAVA注解

JAVA內部類

JAVA泛型

JAVA序列化(創建可復用的Java物件)

JAVA復制

Spring 原理

Spring 特點

Spring 核心組件

Spring 常用模塊

Spring 主要包

Spring 常用注解

Spring第三方結合

Spring IOC原理

Spring APO原理

Spring MVC原理

Spring Boot原理

JPA原理

Mybatis快取

Tomcat架構

微服務

服務注冊發現

API 網關

配置中心

事件調度(kafka)

服務跟蹤(starter-sleuth)

服務熔斷(Hystrix)

Hystrix斷路器機制

API管理

Netty 與RPC

Netty 原理

Netty 高性能

Netty RPC實作

關鍵技術

核心流程

訊息編解碼

通訊程序

RMI實作方式

分布式快取

快取雪崩

快取穿透

快取預熱

快取更新

快取降級

Zookeeper

Zookeeper概念

Zookeeper角色

Zookeeper作業原理(原子廣播)

Znode有四種形式的目錄節點

Kafka

Kafka概念

Kafka資料存盤設計

partition的資料檔案(offset,MessageSize,data)

資料檔案分段segment(順序讀寫、分段命令、二分查找)

資料檔案索引(分段索引、稀疏存盤)

生產者設計

負載均衡(partition會均衡分布到不同broker上)

批量發送

壓縮(GZIP或Snappy)

消費者設計

演算法

一致性演算法

Java演算法

資料結構

加密演算法

由于整個檔案內容特別多,共有29個Java核心技能全決議,所以在這里只簡單介紹下大概有哪些知識點,

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/226188.html

標籤:其他

上一篇:SpringBoot~ dubbo + zookeeper實作分布式開發的應用

下一篇:谷歌大佬回國發展,吊打各大廠面試官!吐血總結大廠面試高頻點及筆記決議

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more