岸柏科技(深圳)有限公司社招Java工程师(二面)

和上午同样的面试官,所以没有千篇一律的自我介绍了。。。。

直接开门见山聊项目……:
  1. 项目用的是SpringBoot ,你能说下 Spring Boot 与 Spring 的区别吗?
    • Spring Boot可以建立独立的Spring应用程序;

    • 内嵌了如Tomcat,Jetty等web容器,用不着再做部署工作了。

    • 无需再像Spring那样搞一堆繁琐的xml文件的配置;

    • 可以自动配置Spring;

    • 提供的POM可以简化Maven的配置
    • ……
  2. SpringBoot 的自动配置是怎么做的?
    • 自动配置取代了xml繁琐的模式,对比以前的配置组件扫描、调度、以及试图解析器等,使用springboot自动配置只需要添加mvc组件即可自动配置bean,所偶的实现都在spring-boot-autoconfigure依赖中

    • 通过 @EnableAutoConfiguration 核心注解初始化,并扫描 ClassPath 目录中自动配置类对应依赖。比如工程中有木有添加 Thymeleaf 的 Starter 组件依赖。如果有,就按按一定规则获取默认配置并自动初始化所需要的 Bean。 
       ……
       
  3. MyBatis定义的接口如何找到实现?
        Mapper 接口在初始SqlSessionFactory 注册的,Mapper 接口注册在了名为 MapperRegistry 类的 HashMap中, key = Mapper     class value = 创建当前Mapper的工厂,Mapper 注册之后,可以从SqlSession中get,SqlSession.getMapper用了JDK动态***,产生了目标Mapper接口的***对象,动态***的 ***类是 MapperProxy ,这里边最终完成了增删改查方法的调用。
4. 了解消息队列吗?
5. 你项目中为什么要用消息队列?
6. 如果系统中,每天会有上亿级数据量,请问你如何设计系统?
    这个问题实际是上个问题的延续,加入分布式、集群等,nginx负载均衡,消息队列存储,对线程读取,数据库分库分表……
7. 分库分表怎么分?消息队列存储满了怎么办?数据迁移问题?
    实际上还是上个问题的延续,结合自己的实际工作经验、项目经验。
8. 多线程应用程序中的线程池了解吗?
9. 你项目中线程池的应用,即线程池的应用场景,哪几种工作队列?
10. Java内存对象结构?
11. 如何判断某个对象是否可以被GC?
12 .垃圾回收算法、垃圾回收器的了解?
13. 讲讲springcloud个组件原理,zuul、Hystrix等
14. 设计一个秒杀项目,如何设计后台?

总结:大部分偏重项目经验,项目中应用的各种技术栈和理由,以及框架底层原理、Java虚拟机底层。

#社招##Java工程师##面经#
全部评论
感谢分享面经!欢迎参加过社招的牛友发社招面经拿京东卡!~ -------------------- 活动:社招面经征集|参加过社招的牛友,来发面经吧,拿京东卡
点赞 回复
分享
发布于 2019-11-15 16:32

相关推荐

1 29 评论
分享
牛客网
牛客企业服务