一共投递六十多家公司,
得到面试机会的公司有:腾讯,网易,远景能源,招联金融,联想,海康威视,蔚来,酷家乐,平安,微众银行,好未来,顺丰。
最后拿到offer:联想软件开发工程师,平安算法工程师,酷家乐后端Java开发。
面试常见问题总结:
1. Java基础、JVM和操作系统:
封装继承多态的含义和具体应用,常见的设计模式(工厂模式,单例模式,生产者消费者模式,模版模式),集合,volatile的底层原理,ConcurrentHashMap的底层原理,内存溢出和内存泄漏,引用拷贝和对象拷贝(浅拷贝和深拷贝),对象的4种引用方式,进程与线程的区别,java创建多线程的4种方法(Thread, Runnable, Callable, ThreadPool),进程间的通信方式(消息队列是重点),线程间的通信方式(wait(), notify(), notifyAll()),Synchronized 锁的底层原理,java1.8 的monitor底层原理,JVM的垃圾回收机制,system.gc()方法只是通知垃圾回收器清理垃圾(并不是立即清理),常见的hash算法,如何避免哈希碰撞(线性探查法和双哈希法)
volatile关键字及其作用:
Java并发之ConcurrentHashMap详解:
常见的hash算法及其原理:
2. 计算机网络:
五层协议,TCP/IP协议各层的报头内容,HTTP请求的完整过程,HTTPS协议,HTTP请求信息和响应信息的格式,TCP的三握四挥,TCP和UDP的区别(TCP有流量控制和要求重传,而UDP直接丢弃误码的报文),流量控制和拥塞控制
HTTP知识点总结:
两张动图-彻底明白TCP的三次握手与四次挥手:
TCP流量控制、拥塞控制:
3. 数据库:
数据库的执行计划,事务的4个隔离级别,三大问题(脏读、不可重复读、幻读),MVCC(多版本并发控制),数据库的锁(悲观锁、乐观锁),数据库常用引擎和索引结构(B+树索引和哈希索引),三范式
mysql知识点总结:
4. 框架:
Spring, Spring boot(必备), MyBatis和hibernate的区别, Redis, ORM框架
MyBatis与Hibernate区别:
5. 算法与数据结构:
二叉树的遍历(递归和非递归的方法),无序二叉树的排序,查找有序搜索二叉树的第K大的元素(反向中序遍历),验证是否为完全二叉树,外部排序-K路归并排序,递归遍历电脑文件,快速查找到电脑中的某一个文件,two-sum(leetcode #1),桶排序,快排,归并排序,满二叉树,完全二叉树,平衡搜索树,B树,B+树
二叉树遍历(先序、中序、后序):
上述问题如果都提前准备好了,并且能回答的比较深入,过一面不成问题,二面能不能过就得看项目经历了。
欢迎在评论区讨论或者私信
全部评论
(2) 回帖