汽车之家服务端开发工程师线上面试
汽车之家
java
- linux的内存分配和多线程原理
- Redis 加锁方案?Zookeeper 加锁方案?各有什么优缺点?
- 为什么会出现僵死进程(孤儿进程)?怎样查看僵死进程?如何解决僵死进程问题?
- dubbo的实现原理,说说RPC的要点
- Volatile 关键字,指令重排序有什么意义?
- 锁,死锁的形成条件,锁的底层实现,AQS的实现,如何实现公平锁和非公平锁,CAS的实现
- 简述zookeeper。
- 反爬虫的机制,有哪些方式
- linux中进程信号有哪些?
- HashMap 的结构?ConcurrentHashMap 读写加锁吗?
- 看你项目用过dubbo,dubbo底层是怎么通讯的呢?
- 哈希是什么?hash冲突后,数据怎么存?
- 如何创建单例模式?说了双重检查,他说不是线程安全的。如何高效的创建一个线程安全的单例?
- 并发修改数据库并回写Redis 如何保证数据一致性?
- 数据库的组合索引
- Java线程池ThreadPoolEcecutor参数,基本参数,使用场景
- 死锁形成的条件,该怎么解决
- ApplicationContext 的初始化过程?初始化过程中发现循环依赖 Spring 是如何处理的。
- 反射可以调用私有对象吗?
- Redis的持久化?有哪些方式,原理是什么?
- HTTP2.0、thrift。
- 数据库分库分表需要怎样来实现?
- 在向HDFS中写数据的时候,当某写某一个副本的时候出错怎么处理?
- 说说NIO?Selector上都能注册一些什么事件?知道Channel读、写数据是怎么实现的吗?
- socket通信做过吗? 你项目中用的什么协议通信的?tcp协议通信中io有几种方式,之间有什么区别?
- 假设现在一个学生类,有学号和姓名,我现在hashcode方法重写的时候,只将学号参与计算,会出现什么情况?
编程题
序列化是将数据结构或对象转换为一系列位的过程,以便它可以存储在文件或内存缓冲区中,或通过网络连接链路传输,以便稍后在同一个或另一个计算机环境中重建。
设计一个算法来序列化和反序列化 二叉搜索树 。 对序列化/反序列化算法的工作方式没有限制。 您只需确保二叉搜索树可以序列化为字符串,并且可以将该字符串反序列化为最初的二叉搜索树。
编码的字符串应尽可能紧凑。
示例 1:
输入:root = [2,1,3]
输出:[2,1,3]
示例 2:
输入:root = []
输出:[]