[toc]
## 涂鴉智能(2021年4月):
一面:
說一下jvm內存結構
說一下垃圾收集器和算法
說一下mysql數據的組織方式
說一下B+樹和B樹
說一下什么情況要用索引,索引失效的情況有哪些
說一下緩存擊穿、穿透、雪崩及解決方案
給我講一下你做的東西,包括哪些內容
二面:
如何理解aop和ioc
問了很多項目問題
## 金蝶快遞100:
筆試題:
### 1.不使用第三方jar包,將一個對象序列化為json字符串
首先,我們要知道序列化的概念。
如果我們需要持久化 Java 對象比如將 Java 對象保存在文件中,或者在網絡傳輸 Java 對象,這些場景都需要用到序列化。
簡單來說:
* **序列化**: 將數據結構或對象轉換成二進制字節流的過程
* **反序列化**:將在序列化過程中所生成的二進制字節流的過程轉換成數據結構或者對象的過程
對于 Java 這種面向對象編程語言來說,我們序列化的都是對象(Object)也就是實例化后的類(Class)。
**實現方式**:
- Serializable 接口。無論是使用 transient 關鍵字,還是使用 writeObject() 和 readObject() 方法,其實都是基于 Serializable 接口的序列化。
- Externalizable 接口。該接口繼承于 Serializable 接口,序列化的細節需要由程序員去完成。
拓展閱讀:https://www.cnblogs.com/kubixuesheng/p/10350523.html
### 2.將類改寫為單例模式,注意使用效率
- 公共靜態方法,實現類的實例化;
- 餓漢模式或懶漢模式,完成類的實例化。
3.使用oracle創建表
4.檢查下面批量插入存在的問題(題目的代碼使用了jdbc操作插入)
5.html寫一個提交form表單的代碼
6.http請求,解釋下列每一行的含義
7.將asc碼轉為utf-8
### 8.客戶訪問服務器時,總是訪問不到,看著服務是正常運行的,如果是你,你會如何排查
1. 重現問題,先查看是不是客戶的網絡問題,如果是讓客戶處理網絡問題;
2. 查看客戶瀏覽器的調試信息;
3. 重現問題過程中,觀察服務器日志,比如如果用到了nginx,查看是否有日志進來,access.log和error.log;
4. 根據日志信息,定位是否后端服務之間存在網絡問題。
5. web容器有時候因為操作系統的原因,也會存在假死狀態,條件允許的情況下可以重啟服務。
### 9.你會怎么實現網絡安全
一面:
dubbo消費端都有哪些屬性?
dubbo有幾種通信協議?通信框架使用的什么?
dubbo有幾種路由算法?
dubbo的注冊中心有哪些?
有幾種線程池?什么時候用什么?
Redis可以用來干什么?
### 你們的Redis容錯方案?
JVM的內存結構?
有哪些垃圾回收的算法?
### Mybatis的緩存?它是怎么實現的?怎么實現更新數據,清空二級緩存?
Mybatis緩存有一級緩存和二級緩存。一級緩存默認開啟是方法級別的,二級緩存是namespace級別的。
引入RocketMQ解決什么問題?帶來了什么新的問題?
spring事務隔離級別?
spring的事務是怎么實現的?
Spring事務的傳播屬性?
二面:
單體項目到分布式的架構演化是怎么樣的過程?
Redis主從是怎么進行數據同步的?
Redis solt在重新分布的過程中,還可以訪問到數據嗎?
Redis是CP還是AP?
HTTPS建立的流程是什么?
OSI七層模型?證書在第幾層?
UDP在使用過程中會出現什么問題?
K8S包括什么?分別是干什么的?
pod、service之間有什么關系,通過什么去建立關系的?
自己的職業規劃是怎么樣的?偏向于業務還是技術架構?
- 前言
- 第一部分 計算機網絡與操作系統
- 大量的 TIME_WAIT 狀態 TCP 連接,對業務有什么影響?怎么處理?
- 性能占用
- 第二部分 Java基礎
- 2-1 JVM
- JVM整體結構
- 方法區
- JVM的生命周期
- 堆對象結構
- 垃圾回收
- 調優案例
- 類加載機制
- 執行引擎
- 類文件結構
- 2-2 多線程
- 線程狀態
- 鎖與阻塞
- 悲觀鎖與樂觀鎖
- 阻塞隊列
- ConcurrentHashMap
- 線程池
- 線程框架
- 徹底搞懂AQS
- 2-3 Spring框架基礎
- Spring注解
- Spring IoC 和 AOP 的理解
- Spring工作原理
- 2-4 集合框架
- 死磕HashMap
- 第三部分 高級編程
- Socket與NIO
- 緩沖區
- Bybuffer
- BIO、NIO、AIO
- Netty的工作原理
- Netty高性能原因
- Rabbitmq
- mq消息可靠性是怎么保障的?
- 認證授權
- 第四部分 數據存儲
- 第1章 mysql篇
- MySQL主從一致性
- Mysql的數據組織方式
- Mysql性能優化
- 數據庫中的樂觀鎖與悲觀鎖
- 深度分頁
- 從一條SQL語句看Mysql的工作流程
- 第2章 Redis
- Redis緩存
- redis key過期策略
- 數據持久化
- 基于Redis分布式鎖的實現
- Redis高可用
- 第3章 Elasticsearch
- 全文查詢為什么快
- battle with mysql
- 第五部分 數據結構與算法
- 常見算法題
- 基于數組實現的一個隊列
- 第六部分 真實面試案例
- 初級開發面試材料
- 答案部分
- 現場編碼
- 第七部分 面試官角度
- 第八部分 計算機基礎
- 第九部分 微服務
- OpenFeign工作原理