某上市制造业公司一面----Java初级开发岗

补充一下背景:双非计算机专业,一年纯后端工作经验小白

问题:依旧上来先自我介绍

1然后开始问项目,简单问了下业务,然后看见写了多线程,多线程怎么用的,分布式锁怎么用的,缓存怎么用的

然后开始技术问题

1.上来就问spring底层源码看过吗?看过是吧,那说说spring的启动流程

我的回答:run()方法前先new个springApplication对象,然后开始执行run方法,创建一个监听器,然后加载配置,然后把这些配置加入到监听对象中去,然后就加载上下文,作为run方法的返回,然后就创建容器,刷新上下文,实现stater自动化配置和bean的实例化等工作

2.讲讲springMVC的执行过程?

我的回答:通过servlet,映射适配渲染,具体答不上来

3:mybatis可以不需要写sql就能执行操作,讲讲它的底层执行逻辑

我的回答:加载配置环境,然后生成SqlSession工厂,然后生成SqlSession,然后执行一个getMapper方法,获取mapper,首先会去找一个mapperProxyFactory,这个就是负责动态代理的,然后会生成一个mapperProxy对象,里面有个mapperMathod方法,里面去调了excutor执行器,执行器会去去根据sqlSession动态生成sql,通过几个拦截器实现的,一个statementHandler负责去执行query的,一个paramerHandler去把传参预编译加进去,最后结果通过resultSetHandler进行处理成对象并返回。。

4.    做过报表系统吗,大sql查询怎么优化

我的回答:老套路,先看业务层面能不能解决,不能再按表设计能不能解决,不能再看索引,子查询换为连接或者分批处理等待

5.分布式事务了解吗?怎么解决

我的回答:了解,接触过,没有实操过,比如用消息队列去解决,或者基于2pc或3pc思想,加一个事件调度器。。。

6.讲讲bean的整体过程

我的回答:首先实例化创建然后分配看见,然后初始化设置属性,调用init方法初始化,然后就使用然后就销毁,可以通过那个配置文件中的destroy-method属性进行指定。。。

没了,可能全是问的底层,我答的不够详细把,面试官可能也没兴趣问下去了。。。。整体过程不到20分钟就结束了

写在最后:

准备面试的时候,spring和mp这些的底层好好去看一看记一记,现在面试官是真心喜欢问,Java基础基本都不问你了,前面答的不好后面人家也不想听了。。。。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值