主頁 > 軟體設計 > 都2021年了,還不知道面試問什么?(JAVA篇)

都2021年了,還不知道面試問什么?(JAVA篇)

2021-01-29 14:00:07 軟體設計

很多童鞋們現在還是不清楚面試的時候我們應該怎么做
面試官一般情況下都是先讓應聘者來一段自我介紹,由此通過你透露的基本資訊,自身專案經驗與能力的沉淀,給面試官留出繼續討論下去的話題,

自我介紹主要說什么呢?

  1. 1 分鐘左右的自我介紹,簡要的描述出;姓名、畢業時間、作業年限、 作業經歷、技術影響力[博客、Github、開源貢獻、專利]等,
  2. 如果有較大型專案或者大家有一致性認知的專案和技術難點攻克,可以 簡單說出專案名稱等,
  3. 方法論沉淀相關;架構設計能力、帶過小組或者團隊、跨部門協調、流 程規范制定和執行等,

1. 演算法

演算法一整塊內容來考的互聯網公司目前有一些,比如;頭條、谷歌、百度,但不
一定所有職位都需要去考演算法,熱頻考點大部分可以分如下幾塊:
1. 動態規劃
2. 資料結構
3. 演算法思維
在題目上一般會有排序、二分查找、回文鏈表、反鏈鏈表,和資料結構設計方面,
這些題目可以通過  刷題進行練習,

2.技術堆疊

	技術堆疊考查的是程式員在編程開發領域學習的廣度和深度,日常的業務開發往往
提升都是對 API 使用的熟練程度,如果再缺少一些系統設計和技術難點攻克,或
者說沒有大流量的沖擊,那么確實很難回答一些技術深度問題,如下匯總了基本
會再技術堆疊面試中涉及的考題,可以參考提升個人技術能力,

2.1 技能

	1.1 Java 
JDK 原始碼
		1. HashMap
		2. HashMap 的資料結構(1.7、1.8 的區別)
		3. HashMap 的實作原理
		4. HashMap 擴容為什么是 2^n-1
		5. HashMap 是執行緒安全的嗎
		6. HashMap、HashTable 是什么關系?
		2. ThreadLocal
			1. 講講你對 ThreadLocal 的一些理解
			2. ThreadLocal 有哪些應用場景
			3. 了解過 FastThreadLocal 嗎
		3. ArrayList、LinkList
			1. 是否保證執行緒安全
			2. 底層資料結構
			3. 插入和洗掉是否受元素位置的影響
			4. 是否支持快速隨機訪問
			5. 記憶體空間占用
			6. 如何進行擴容的,默認初始化空間是多少
		4. String StringBuffer StringBuilder
			1. 有什么區別
			2. 是執行緒安全的嗎
		5. jdk1.8 的新特性
			1. lambda 運算式
			2. Functional Interfaces
			3. Optionals
			4. Stream 流
			5. Parallel-Streams 并行流
并發編程(j.u.c)
	1. volatile
		1. volatile 的作用和使用場景
		2. volatile 如何保證指令重排
		3. 什么情況下會發生指令重排
	2. synchronized
		1. 一般用在什么場景
		2. 實作原理
		3. 鎖升級程序(偏向鎖、輕量級鎖、重量級鎖)
		4. 這是 JVM 層面鎖,還是 JDK 層面鎖{JVM 層面}
		5. 這是一種悲觀鎖還是樂觀鎖{悲觀鎖是獨占鎖}
	3. lock
		1. 這是 JVM 層面鎖,還是 JDK 層面鎖{JDK 層面}
		2. 這是一種悲觀鎖還是樂觀鎖
		3. 是可重入鎖嗎
	4. ReentrantLock
		1. 與 synchronized 相比較有什么不同
		2. ReentrantLock 與 Lock 的關系
		3. 鎖程序中是否可中斷,與之對應的 synchronized 可中斷嗎
	5. CAS
		1. Unsafe 類的作用
		2. CAS 的理解(compareAndSet)
		3. 什么是 ABA 問題
		4. CAS 的實作有什么(AtomicInteger)
	6. AQS
		1. 實作類有哪些 ReentrantLock、Semaphore、CountDownLatch、
		CyclicBarrier
		2. 實作了 AQS 的鎖有哪些 自旋鎖、互斥鎖、讀鎖寫鎖、條件產量、
		信號量、柵欄都是 AQS 的衍生物 記憶體屏障,幾乎所有的處理器至
		少支持一種粗粒度的屏障指令,通常被稱為“柵欄(Fence)”
多執行緒
	1. 執行緒池的種類
		1. newCachedThreadPool
		2. newFixedThreadPool
		3. newScheduledThreadPool
		4. newSingleThreadExecutor
	2. 執行緒的生命周期
		1. 新建、就緒、運行、阻塞(等待阻塞、同步阻塞、其他阻塞)、死
		亡
JVM
	1. GC 優化
	2. JVM 逃逸分析
	3. 類的物件頭都包括什么
	4. new Object() 初始化都做了什么
	5. 運行時資料區
	6. Java 的記憶體模型以及 GC 演算法
設計模式
	1. 設計模式 6 大原則 單一職責(一個類和方法只做一件事)、里氏替換(多
	態,子類可擴展父類)、依賴倒置(細節依賴抽象,下層依賴上層)、介面
	隔離(建立單一介面)、迪米特原則(最少知道,降低耦合)、開閉原則(抽
	象架構,擴展實作)
	2. 創建型模式 這類模式提供創建物件的機制, 能夠提升已有代碼的靈活
	性和可復用性,
	3. 結構型模式 這類模式介紹如何將物件和類組裝成較大的結構, 并同時
	保持結構的靈活和高效,
	4. 行為模式 這類模式負責物件間的高效溝通和職責委派,
反射、代理
	1. 怎么實作反射呼叫方法
	2. 怎么代理一個類,有什么場景使用
	3. 類代理的原理是什么
	4. 有什么框架可以做類代理



Redis篇
	命令
		1. 計數命令
		2. 排序命令
		3. 加鎖命令
	架構
		1. 常用的資料型別
		2. 資料淘汰策略
		3. 單執行緒的為什么那么快
		4. RDB 和 AOF 的優缺點
		5. 持久化策略選擇
	應用
		1. 快取雪崩、快取穿透、快取預熱、快取更新、快取降級
		2. Pipeline 有什么好處,為什么要用 pipeline
		3. 是否使用過 Redis 集群,集群的原理是什么
		4. Redis 的同步機制了解么


Mysql篇


	鎖
		1. 全域鎖
		2. 表鎖
		3. 行鎖
		4. 樂觀鎖、悲觀鎖
		5. 排他鎖
		6. 鎖優化
	事務
		1. 事物特征
		2. 臟讀
		3. 幻讀
		4. 不可重復讀
		5. 事物隔離
		6. 并發事物
		7. 事物實作原理
	日志
		1. 慢查詢日志
		2. 錯誤日志
		3. redo log(重做日志)
		4. binlog(歸檔日志)
		5. undo log(回滾日志)
	索引
		1. 聚集索引 VS 非聚集索引
		2. 最左匹配原則
		3. 前綴索引
	引擎
		1. InnoDB
		2. MyISAM
		3
框架 
	1 Spring 
		1. Bean 的注冊程序
		2. Bean 的定義都包括什么資訊
		3. 3. Spring 事務中的隔離級別有哪幾種
		4. schedule 使用
	2 Mybatis 
		1. mybatis 在 spring 的使用中,只需要定義介面,就可以和 xml 中的配置
		的 sql 陳述句,進行關聯,執行資料庫增刪改查操作,怎么實作的
		2. session 是怎么管理的
	3 SpringBoot 
		1. SpringBoot 怎么開發一個自己的 Stater
	4 SpringCloud 
		1. spring cloud 斷路器的作用是什么
		2. spring cloud 的核心組件有哪些 Eureka:服務注冊于發現, Feign:
		基于動態代理機制,根據注解和選擇的機器,拼接請求 url 地址,發起
		請求, Ribbon:實作負載均衡,從一個服務的多臺機器中選擇一臺,
		Hystrix:提供執行緒池,不同的服務走不同的執行緒池,實作了不同服務調
		用的隔離,避免了服務雪崩的問題, Zuul:網關管理,由 Zuul 網關轉
		發請求給對應的服務,
3 組件 
		1 Dubbo 
			1. 通信模型是什么樣的
			2. Dubbo 和 Spring Cloud 有什么區別
			3. dubbo 都支持什么協議,推薦用哪種 dubbo://(推薦) rmi:// 
			hessian:// http:// webservice:// thrift:// memcached:// 
			redis:// rest://
			4. Dubbo 里面有哪幾種節點角色
			5. Dubbo 中怎么處理的超時斷開
		2 Mq 
			1. RabbitMq
			2. Kafka
		3 elasticsearch
			1. elasticsearch 了解多少,說說你們公司 es 的集群架構,索引資料大
			小,分片有多少,以及一些調優手段 ,
			2. elasticsearch 的倒排索引是什么
			3. elasticsearch 是如何實作 master 選舉的
			4. 詳細描述一下 Elasticsearch 搜索的程序
		4 Hbase 
			1. 拓展類問題
		5 otter 
			1. 拓展類問題
 工具 
		1. Idea
		2. Maven
		3. Jenkins
		4. JMeter
架構 
	1 系統搭建 
			1. MVC
			2. DDD 領域驅動設計
	2 資料庫設計 
		1. 分庫分表(水平拆分、垂直拆分)
		2. 業務場景
		3. 基礎配置優化相關
	3 服務治理 
		1. 負載均衡
		2. 熔斷
		3. 降級
		4. 限流
		5. 黑白名單
	4 分布式任務 
		1. xxl-job
	5 監控 
		1. 系統非入侵全鏈路監控
		2. TP99、TP999、QPS、TPS 的熟悉程度
	6 壓測 
		1. 是否壓測過,有無經驗
		2. 對系統健壯性的把控
		3. JVM 引數
		4. GC 調優
		5. 代碼優化
環境 
	1. Linux
	2. Tomcat
	3. docker
	4. k8s
專案 
	1 專案經驗 
		1. 開發了哪些專案
		2. 重點專案是什么
		3. 你主要負責哪些
		4. 有過什么優化
	2 作業業績 
		1. 中大型專案架構能力
		2. 復雜專案落地能力
		3. 重點專案執行落地
		4. 交付能力&質量
	3 技術沉淀 
		1. 方法論
		2. 流程規范制定
		3. 交付質量
		4. 公用組件建設
		5. 開源專案
		6. 復雜架構設計經驗
		7. 團隊技術分享
	4 工程師品質 
		1. 認知范圍,技術、業務、運營
		2. 學習能力,接受能力
		3. 創新技術,遷移能力
	5 疑難問題處理 
		1. 復雜問題推進解決能力
		2. 緊急事故解決能力
	6 專案推進 
		1. 中大型專案推進落地
		2. 資源協調安排
		3. 流程規范實施
	7 專業影響力 
		1. 專案推程序序中方案執行落地
		2. 帶動他人共同完成,并賦予能力提升
		3. 技術價值創造
		4. 開源專案和專利

個人&面試官 
	1 個人 
		1. 可能會有一個人性的問題
		2. 介紹自己部門是什么的
		3. 其他你早點入職
	2 面試官 
		1. 部門主要做什么業務
		2. 入職后承擔哪塊
		3. 有什么技術挑戰需要提前學習了解的

根據這些匯總資訊來進行面試復習,認真的熟悉過后,不僅有利于面試,對我們的技術學習也是有很大的幫助

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

標籤:其他

上一篇:學完阿里大牛20年IT開發和架構經驗終成微服務體系建設和實踐檔案,終入螞蟻!

下一篇:【知識】SpringBoot專案結構目錄

標籤雲
其他(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