你好,
欢迎来面试,
请坐。
方便的话,
请先做一下自我介绍。
你们公司的主要业务是什么。
你在这家公司一共参与了哪几个项目,
在这些项目中,
你分别都担任了什么样的一个角色。
你参与的这些项目,
都使用了那些技术栈。
你这里提到了MyBatis,
那你知道MyBatis 和Jpa,
有什么样的区别吗。
你们团队为什么最后选择了使用MyBatis,
而没有选择使用Jpa。
在你做过的项目中,
你认为有哪些点,
还可以进行技术上的优化。为什么?
我看你们在项目中使用了消息中间件,
ActiveMQ,
能聊一下,
你对消息中间件的一个理解吗。
在什么样的业务场景下,
一般会使用到消息中间件。
在你们的项目中有没有考虑过,
如果使用消息中间件出现消息丢失的情况下如何去补救。
我看你们在第二个项目中,
使用了Spring,
谈谈你对Spring的一个理解。
Spring 中 Bean 的,
生命周期是什么样的。
你认为 Spring 是线程安全的吗。
如果说我现在要在 Controller 里面,
定义一个全局变量,
还要要求它保持线程安全,
有什么样的技术方案来保证它。
除了 Spring ,
你们项目中还使用过其他的的什么框架,
这些框架都分别解决了什么样的问题。
我看你们在第一个项目中,
还是用到了跨域,
如果系统中出现了跨域这种情况,
如何保证用户状态的一致性。
除了你们项目中这种解决方案,
还有其他解决方案吗。
你刚才提到的缓存,
那你知道,
Redis 的缓存淘汰机制是什么吗。
Redis 和 Memcached 的区别是什么。
第一个电商项目在上线之初,
你们是否进行了压力测试,
都采用了哪些测试方案,
用了哪些压测工具,
测试之后得到的 QPS 是多少。
Java 中的重新和覆盖有什么样的区别,
这样设计有什么样的优势,
你是否在项目中使用过,
能举个例子。
Java中的深拷贝和浅拷贝有什么样的区别,
在 Java 中然后实现深拷贝。
动态变量和实体变量有什么区别,
如此设计,
在使用中会有什么样的好处。
Hashmap 和 Hashtable 有什么样的区别,
他们的底层数据结构都是什么样的。
如果说我想使用一个线程安全的Map,
我应该使用哪个集合。
你会在什么样的情况下,
使用多线程,
多线程的创建方式都有哪几种。
什么样的情况下会出现线程死锁。
NIO 和 传统 IO 都有什么样的区别。
什么是 Spring 中的 IOC,
什么是 Spring 中的控制反转,
IOC 底层的技术是用什么来实现的,
控制反转的底层是用什么技术来实现的。
这样的设计,
对 Spring 框架有什么样的好处。
有没有在项目中使用过 Spring Boot,
你觉得,
Spring 和 Spring Boot 都有什么样的区别。
另外,
Spring Boot 中,
最大的优势是什么。
如何去自定义一个 Spring Boot Starter。
是否使用过 Spring Cloud,
来搭建微服务。
你觉得,
微服务的最大优势是什么,
最大缺点是什么。
Spring Cloud 生态最大的优点是什。
你都使用过什么类型的数据库。
在使用数据库的时候,
默认会选择什么样的数据引擎。
MyISAM 与 InnoDB 都有什么样的区别。
在数据库中的左链接,
右链接,
全链接,
分别都是什么。
项目中涉及到分库分表,
如何通过技术保持数据的一致性。
最后问一个开放性的问题,
当你在浏览器中输入一串地址,
敲完回车,
直到页面的最终结果展现给用户,
整个过程中,
用技术描述一下都发送了什么,
说得越详细越好。
再聊几个职场上的问题,
业余时间是通过什么方式来学习的。
你看过的最好的一本技术书籍是什么。
未来你对自己的职业规划是什么样的。
ok,
你对我们这边还有什么想要了解的。
关于技术,
或者关于公司都可以向我提问。
ok,
如果没有什么问题的话,
我们今天的面试就到此为止,
面试结果会在两周之内,
以邮件的方式通知到你,
最后感谢你来参加面试。



