首页 > 笔经面经 > 深圳智慧建设控股有限公司社招Java工程师(面经)

深圳智慧建设控股有限公司社招Java工程师(面经)

头像
KamiaMirage
编辑于 2019-12-27 11:42:25 APP内打开
赞 0 | 收藏 13 | 回复1 | 浏览2117
招聘简章技术栈
  • 熟悉maven gitlab jenkins等构建工具
  • 掌握多种Java开发框架,例如:Spring springmvc MyBatis 等
  • 熟练使用Postgre或Mysql数据库,精通数据优化工作
  • 熟悉Linux系统,掌握Linux下脚本编程以及系统优化
  1. 开门见山聊项目,项目中遇到的一些问题,解决方案等--------------项目略,对于开发中遇到的问题,个人把近段时间开发中遇到的插件开发tomcat服务器无法启动,好象是maven构建clean等命令操作出现了问题……暂时还没解决掉。
  2. 你们项目中的架构,做了些什么,一些复杂的业务逻辑……?-------------略
  3. Mybatis的分页方式?--------逻辑分页,使用mybatis的RowBounds进行,其原理就是一次性查询很多数据,然后在数据中进行检索;物理分页,手写SQL分页或使用分页插件pageHelper去数据库查询指定条数的分页数据的形式。
  4. 逻辑分页和物理分页有什么区别?-----------------逻辑分页是一次性查询很多数据,然后在结果中检索分页的数据,其中RowBounds是因为框架对JDBC的封装中有一个Fetch Size的配置,它规定了每次最多从数据库查询数据的数量。其物理分页是从数据库查询指定条数的数据,弊端是数据库频繁被访问,压力大。
  5. 一级缓存/二级缓存的理解?-------------一级缓存:基于PrepetualCache的HashMap本地缓存,其生命周期和sqlsession一致,当session flush或close之后,session中所有的cache就将清空,默认开启。二级缓存:不同在于存储作用域为Mapper级别的,多个sqlsession之间需要共享缓存,默认是不开启二级缓存的,使用二级缓存需要实现Serializable序列化接口。
  6. springmvc运行流程?-------------配合流程图来阐述,浏览器将请求发送给DispatcherServlet,然后DispatcherServlet查询一个或多个HandlerMapping找到处理请求的controller,DispatcherServlet在把请求交给controller,controller进行业务逻辑后,会返回一个ModelAndView,Dispatcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象渲染返回给客户端。
  7. Spring两大核心原理?--------即Spring IOC控制反转,将对象的创建交给spring框架处理,无需手动通过new的方式,具体实现原理是通过配置文件对接口实现类进行配置,底层是工厂模式反射原理。Spring AOP面向切面,面对一些与业务逻辑没有关系,但为业务逻辑调用的一些共同逻辑或责任的封装,避免对系统的重复,比如一些权限认知、事务日志……。
  8. SpringAOP的一些术语关注点?-----------切面:就是所要添加的共用类封装。切入点:业务逻辑所要调用切面共用类的地方。通知:业务逻辑调用切面的位置(前、后、环绕、异常、最终)……至于其他的术语都是些照本宣科翻译过来的……
  9. 谈谈你对SpringBoot的理解?----------简化spring配置的开发,创建独立的spring应用程序,嵌入web容器,简化maven配置……
  10. 数据库的存储引擎了解?---------------常见的MyIsam和InnoDB。InnoDB底层为B+树,每个节点对应一个page,非叶子节点只有键值,叶子节点包含完整的数据,支持事务和容灾恢复。MyIsam属于mysql默认的引擎,没有数据库事务的支持,用于关注性能的业务场景,对安全稍微忽略……
  11. 数据库事务?------------一系列操作的集合,遵循原子性、一致性、隔离性、持久化……
  12. 数据库的并发策略?-------乐观锁……,悲观锁……(大把地资料可以查)。时间戳,数据表中加上时间戳作为字段,当线程读取时把时间戳也读进去,写的时候将该时间戳加1,提交之前和数据库的字段做个对比,如果比数据库的大就保存,否则就写入失败。
  13. Java8的新特性?-----------这个问题对于很多老项目的维护来说,尽管可以使用java8来搭建环境开发,但都是向下兼容以前的项目代码。lambda表达式代替匿名内部类,函数能被当作参数传递给方法。接口内允许通过关键字提供一个默认的实现方法。函数式接口……
  14. 其他非技术栈、非项目的聊天(略)。
总结:SSM的熟悉运营和数据库的理解,以及项目经验中的一些当下技术穿插(这点很重要),毕竟SSM仅仅是基础,项目简历的聊天才是关键。

1条回帖

回帖
加载中...
话题 回帖

相关热帖

笔经面经近期热帖

近期精华帖

热门推荐