作者:flipped丶
链接:https://www.nowcoder.com/discuss/184555?type=2&order=0&pos=1&page=1
来源:牛客网
一面 3.14
1. 自我介绍
2. 说说项目
3. 负责哪一块
4. 说一下项目架构和部署情况
5. 说说权限管理
https://blog.youkuaiyun.com/HNUST_LIZEMING/article/details/89599981
6. HandlerInterceptor的原理
https://blog.youkuaiyun.com/HNUST_LIZEMING/article/details/88670402
7. 数据库索引怎么建的
8. Spring的IOC原理,启动流程是什么,怎么加载Bean的
9. 源码你知道吗?
10. AOP源码呢,你平时怎么学习Spring的
11. JVM的类加载机制,原理。
jvm类加载机制使用的是双亲委派原则
类加载器就是根据指定全限定名称将class文件加载到jvm内存中,然后再转化为class对象。
启动类加载器 扩展类加载器 应用类加载器 自定义加载类
如果一个类加载器收到类加载请求,它首先不会自己去加载这个类,而是将请求委派给父类加载器完成
每一层类加载器也是如此,这样所有请求都会被传送到启动类加载器中,只有当父类加载器无法完成时
子类加载器尝试加载。
12. 为什么Java是跨平台的语言,class文件怎么被加载的
Java代码并非直接运行在cpu上面,而是运行在虚拟机上面,Java首先把Java文件转换为二进制字节码
文件class文件。然后jvm执行class文件。
13. 垃圾收集算法
垃圾收集算法:标记清除算法 标记整理算法 复制算法 分代处理算法
14. Java的内存模型,Java8做了什么修改
15. 了解哪些容器,看过源码吗
hashmap ConcurrentHashMap
https://blog.youkuaiyun.com/HNUST_LIZEMING/article/details/89328684
https://www.cnblogs.com/zerotomax/p/8687425.html
16. 说一下ConcurrentHashMap的源码
https://www.cnblogs.com/zerotomax/p/8687425.html
17. 红黑树是什么原理,为什么要用红黑树,不用其他树
18. 堆排序怎么实现的
二面 3.18
1. 介绍一下的学习情况和项目
2. 这个电商后台是做什么的呢?
3. 说一下权限管理怎么实现的?有那几张表
4. 为什么不用现有的权限框架
5. 自己怎么拦截操作
6. 每次都要去数据库中查吗?怎么优化
7. 我说session存权限,问怎么优化
8. 我说用redis?问redis怎么做,达到什么效果,解决了什么问题
9. 那你觉得session那个方法能解决问题吗?
10. 那你们是怎么判断用户登录状态的呢?
11. 如果用户掉线怎么知道他掉线了?
12. 你说一下你都熟悉什么技术
13. HashMap你知道吧,它线程安全吗?
14. 线程安全的map有哪些,都是怎么实现的?
15. hashtable用synchronized修饰,那你说一下synchronized都能修饰什么,区别是什么?
16. ConcurrentHashMap是怎么解决并发问题的?
17. 数据库你了解过吧?隔离级别说一下,以及都产生什么问题
18. Jvm的gc你了解吧,说一下
19. 那你说可达性分析,是什么结构的?是树吗?
20. 那你认为它是深度优先还是广度优先遍历
21. 你是网络技术研究院的,你知道网络IO有哪些?
22. 提醒我?BIO和NIO什么区别?
23. 你最近在学什么新知识呢?
24. 你在学习生活中有什么可以给我分享的吗?
25. 你的职业规划是什么?
26. 你有什么问题问我吗?
27. 我问技术栈需要补充些什么?
1. 答:虽然你们项目是单机的,但是你要考虑当项目变大,用户量超大的时候怎么办,项目架构如何演进,电商项目肯定是有复杂业务的,如何将业务解耦做到微服务,要研究项目如何优化才能适应不断增长的需求
2. redis学习方面,不仅要了解原理,更要理解它的使用场景,在什么场景下使用redis可以解决什么样的问题是关键,结合自己的项目,进行设计和思考