京东java后端面经,数据中台部门
京东一面
自我介绍,6分钟左右
大学阶段学过哪些课程
实习时候的优化,思路、过程和解决
spark框架可以介绍一下吗
自己用过spark执行sql任务吗
遇到过数据倾斜吗
网络I/O的类型,各自的特点
I/O模型:
- 同步阻塞
- 同步非阻塞
- 异步I/O
首先介绍I/O的两个阶段,准备和复制。
I/O多路复用,select或者epoll的实现。
网络模式有reactor和Proactor。
信号I/O了解吗
序列号,反序列化做了哪些工作
数据流了解吗,流的操作类以及常用方法
根据流向:输入流、输出流。
根据操作类型:字节流、字符流。
操作类:字节流、字符流。inputstream,bufferedreader。
bytereader,pipereader
网络七层系统和对应的协议
讲解了5层,从应用层到物理层。
讲了基于udp的quic协议。
像我们两个视频聊天的场景,有两个问题:彼此如何找到;数据如何传输?
如何找到:DNS域名解析,域名找ip,根据ARP协议由ip找mac,找到固定的电脑。
如何传输:应用建立通信包socket,下传给传输层;传输层基于tcp协议,建立连接,切分通信包,加端口号,加入校验码,下传给网络层;
IP和mac地址的区别。
- IP会变,MAC地址固定(网卡固定)
- IP分为两部分,网络号和主机号。IP负责指定局域网;Mac负责指定局域网内的主机。
IP每两个小时会干什么?
定时清理没连接的IP,重新分配IP
http1,http2和http3的区别
http3基于udp,如何保证可靠传输
进程、线程和协程的区别
栈和堆介绍一下
队列和栈
直接内存和虚拟内存
并行和并发
介绍一下GC
你以后的方向和技术发展是怎么想的
反问
今天的表现可以提升的点
工作内容
工作时间
京东二面
自我介绍
实习内容询问
介绍一下java的内存回收吗
可达性分析的根节点有哪些
常见的收集器了解吗
serial到G1,京东主要用G1
并发编程的内容,如何写一个死锁
如何解这个死锁
- 分配时采用银行家算法避免死锁
- 资源的顺序分配
- 破坏它的不可剥夺条件,但不太安全
介绍一个网络报文数据报怎么从网卡到用户态
说一下网络报文的传输过程吧,从网络的角度
tcp为什么要三次握手
有了解spark底层的结构吗,比如hdfs,底层的调度等
分布式如何保证高可用,如何防止脑裂
raft协议的原理
实习内容是偏业务还是偏底层
LRU的实现,用一个基础的数据结构实现LRU的get和put
map,key是值,value是数组,数组放使用时间和频率
评估算法的算法复杂度
有没有更快的实现,实现插入和删除的O(1)
变换数组的结构,自定义一个节点,用链表的形式组装,定义一个头和尾结点,map的value直接存链表的地址
京东的工作内容介绍
反问
面试评价
工作时间
开发周期