很多童鞋們現在還是不清楚面試的時候我們應該怎么做
面試官一般情況下都是先讓應聘者來一段自我介紹,由此通過你透露的基本資訊,自身專案經驗與能力的沉淀,給面試官留出繼續討論下去的話題,
自我介紹主要說什么呢?
- 1 分鐘左右的自我介紹,簡要的描述出;姓名、畢業時間、作業年限、 作業經歷、技術影響力[博客、Github、開源貢獻、專利]等,
- 如果有較大型專案或者大家有一致性認知的專案和技術難點攻克,可以 簡單說出專案名稱等,
- 方法論沉淀相關;架構設計能力、帶過小組或者團隊、跨部門協調、流 程規范制定和執行等,
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
標籤:其他
