[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工作原理