奔赴一线,目标大厂,金九过后迟来的JAVA面试总结(阿里、字节、鹅厂的已被攻占)

258 阅读4分钟

前言

凉风有幸,秋月无边,写写面经,回馈一下读友。今年拿到了阿里,字节,腾讯,美团,拼多多,虾皮的offer,华为还在泡池子,快手疯狂简历挂,网易也不知道为啥挂。

问题基本是些常规的知识点问题,还有网络通信,系统设计之类的综合性一点的问题。但是面试问题还是可以和大家分享一下。

面经

  1. 在王者荣耀里面,当渲染地图时,考虑网络波动的情况应该怎样渲染地图才能显得不卡,这回导致什么问题。
  2. 线程安全本质是什么?Java如何保证线程安全,callable,runnable有什么区别?线程不正常终止会发生什么?线程占用的空间具体是哪?是寄存器还是内存还是什么?
  3. Java的线程和Linux的线程有什么区别,为什么需要Java的线程?
  4. volatile具体实现原理?内存重排序都会发生在哪?为什么要内存重排序?
  5. 使用过哪些Java并发包?
  6. 简述BIO,NIO的具体使用及原理。。
  7. concurrentHashMap1.8和之前版本有什么区别。HashMap的具体实现。红黑树和平衡二叉树的区别。为什么不用B+树?
  8. Java的GC整体过程,垃圾收集算法,流程,垃圾收集器,强引用,弱引用,虚引用等概念等。如果我要设置一个内存缓冲区,让垃圾收集器不对其进行操作怎么办?
  9. JVM内存分区。假设Java 的GC时间过长,简述应该如何做来排查解决这个问题。jamp的dump命令比较重,有什么代替的方法。
  10. 代码实现每五分钟一次Minor GC,如果要FullGC呢
  11. ThreadLocal的具体是怎样的。为什么会有内存泄漏问题,怎样避免。
  12. Java的异常种类有哪些,平时自己是怎么处理异常的
  13. Spring的IOC和AOP及MVC机制,Sping中的单例bean是否可以依赖多例bean
  14. Springboot起步依赖有什么好处,为什么使用MyBatis不适用数据库连接池
  15. tomcat如果有两个项目,两个项目里面如果有相同的class,那么tomcat是如何对其进行区别。
  16. 简述MySQL的ACID性质及实现,ACID有哪些一致性种类,乐观锁怎么实现的,简述MySQL的隔离机制及实现。简述MySQL索引结构及实现。
  17. 如果MySQL要插入十万条数据,有什么较好的方法。
  18. Redis支持集群的几种方式,redis的跳表要实现快速查找第k小的元素怎么做。
  19. Netty 拆包粘包的实质,Netty线程池中的线程建立连接之后,这条连接是不是始终属于这个请求,对于Netty来说是不是只占用服务端的一个套接字,了解zero copy嘛。
  20. 简述TCP三次握手四次挥手的状态转移。ip层的mtu是什么,如何探测机器之间的mtu。
  21. 进程和线程的区别。进程的通信方式。线程空间中的内容。进程中打开文件其他线程可以直接读写那个文件嘛。用户态和内核态对于读写文件的操作有什么区别。
  22. 内存为什么分页,虚拟内存有什么用,内存中的脏页是由硬件完成还是软件完成。
  23. 怎样用单线程实现2kQPS对于服务器压测,1s均匀发2k条消息,可以异步返回。
  24. Nginx和Redis能同时处理很多条请求,万级别,是不是都是通过Linux中的IO模型的的类似信号的机制.想这样的C10K问题,也就是单机10000条并发连接应该如何去处理。
  25. 设计高并发秒杀系统,里面的阻塞队列是如何实现的。
  26. 如何实现cookie和session机制。
  27. token在分布式服务器上的应用,用什么框架来验证token;除了redis还可以怎么做异步框架。

总结

无论是Spring,Netty等框架的源码,各种中间件的源码,还是一些实际的工程亮点都可以作为突出的地方。

但是对于实际工程也许会比较难我比较推荐大家看看RPC源码,然后深入看Netty源码看看网络通信是怎么做的,这两方面感觉会和实际关联非常紧密。或者看看Spring的源码,实际Java工程几乎都是必须要用到的,也是一个加分项。

为了更方便学习,资料也都给大家整理好啦!关注下方公众号自行获取,还有更多大厂面试专题资料和视频哦!

 

写文不易,觉得有帮助还请三连+关注支持一下,也欢迎各位大佬提出问题,感谢!!!