阿里巴巴Java研发实习三面面经20190622

1.说说你的项目吧

简单介绍了自己项目的技术点。

2.SpringBoot有了解过吗?

3.SpringMVC和SpringBoot的区别是什么

SpringMVC是Spring生态中的一个功能模块,是一个web层框架,通过其中的DispatcherServlet,ModelAndView等组件提供了MVC模式的请求接收,处理,视图解析这些功能。是SSM架构中的一个框架。

SpringBoot是近几年非常火热的框架,它把Spring海纳百川的思想的发挥到了极致。在SpringBoot中,可以通过自动配置,起步依赖等方式减少复杂的配置,快速构建Spring项目,并且在SpringBoot中可以快速集成多个流行框架,不仅仅是Spring生态中的框架。

在我看来,SpringBoot与SpringMVC的区别就是他们的设计的目标不同,SpringMVC旨在解决web层的问题,提供了web层的解决方案。而SpringBoot目的则是为了简化我们使用Spring框架开发的步骤。

3.WebFlow了解过吗?

Spring Web Flow构建于Spring MVC之上,允许实现Web应用程序的“流程”。流程封装了一系列步骤,指导用户执行某些业务任务。它跨越多个HTTP请求,具有状态,处理事务数据。通常用于一系列的流程处理,比如有个需求需要用户从一个起点开始操作,点击下一步进入下一个流程,直到最后完成事务。WebFlow能够在多个页面的流程操作中保持用户的状态并能提供事务。

4.数据库分页怎么做

MySQL中可以使用LIMIT关键字,如果是ORACLE数据库就使用嵌套查询,先查到当前页记录主键,然后根据这些主键来查询相应记录。

5.说一下Java内存模型

Java中的内存分为两种,一种是线程独享内存,一种是线程共享内存。这样的设计能提高整体的操作效率,但是可能会造成数据的原子性,可见性等问题。并且现代操作系统都通过指令重排序来提高效率,这也导致我们编写的代码的执行流程可能并不是通过肉眼看见的顺序执行的,这也导致了一些数据错乱问题。JMM存在的意义就是用一些方法来解决这些问题,它是一种抽象模型,并且在JMM对用户是透明的。在JMM中,首先由一些关键字来给数据绑定特性,例如fianl关键字能保证数据的不变性,volatile关键字能保证数据读取和写入的可见性和原子性。在JMM中还有一些设计理念,例如happen-before原则,该原则提供了操作的先行发生条件,保证某一操作肯定先于另一操作先行发生。as-a-serial思想,该思想表示无论指令如何重排序,也要保证最后的结果和串行的结果一直。

JMM的核心目标就是在保证代码正确的情况下尽可能去进行优化。之前说的都是JMM的优化的方向和方式,具体来说的就是首先在操作系统中添加内存屏障来避免可能引起数据错误的指令重排序,并通过带有lock标示的特殊指令保证数据写入的原子性和可见性。

6.Spring的AOP原理

AOP是一种面向切面编程的思想。Spring实现AOP是通过设计模式中的代理模式实现的,通过动态代理的方式在运行时生成代理类,然后在代理类内部由组合和方法回调的方法去实现功能,并且在把切面织入到需要加强的代理方法中去。

Spring使用的动态代理技术主要是JDK代理和CGLIB代理,JDK动态代理是反射包中的一个功能,可以产生基于接口的代理类。CGLIB则是基于继承的思想,操作Java字节码产生代理类,并在代理类中回调原生类的方法。

7.Spring的事务传播方式

spring事务的传播行为说的是,当多个事务同时存在的时候,spring如何处理这些事务的行为。

 PROPAGATION_REQUIRED:如果当前没有事务,就创建一个新事务,如果当前存在事务,就加入该事务,该设置是最常用的设置。

 PROPAGATION_SUPPORTS:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就以非事务执行。‘

 PROPAGATION_MANDATORY:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就抛出异常。

 PROPAGATION_REQUIRES_NEW:创建新事务,无论当前存不存在事务,都创建新事务。

 PROPAGATION_NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

 PROPAGATION_NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。

 PROPAGATION_NESTED:如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则按REQUIRED属性执行。

8.现在要查询第三页,每一页由20个数据,用LIMIT的做,怎么做

LIMIT 40,20(面试的时候答错了,5555)

 

小结

很遗憾的一次面试,之前都答得挺好的,最后一个问题脑抽答错了,然后就这样被拒了,5555555555。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值