浙商银行应用开发面经
论文交了没事分享一下去年的面经
面经:
1 自我介绍
2 给一个数组 数组中有重复数据 怎么去除重复数据使用快慢双指针,快指针遍历整个数组寻找不相同的值,慢指针修改原数组的值为快指针找到的新值,最终从数组开始到慢指针所在位置的区域即为不重复的数值。
3 去除重复数据需要遍历多少次,一次可以吗?
4 语法题
try{ a++; return a; }catch(Exception e){ b++; }finally{ a++; return a; }
求a的值
5 spring框架里的autowired和resource注解
@Autowired 是 Spring 提供的注解,@Resource 是 JDK 提供的注解。Autowired 默认的注入方式为byType(根据类型进行匹配),@Resource默认注入方式为 byName(根据名称进行匹配)。当一个接口存在多个实现类的情况下,@Autowired 和@Resource都需要通过名称才能正确匹配到对应的 Bean。Autowired 可以通过 @Qualifier 注解来显示指定名称,@Resource可以通过 name 属性来显示指定名称
6 spring拦截器
拦截器是基于java反射机制(动态代理)的,在web开发中,拦截器是经常用到的功能。它可以帮我们预先设置数据以及统计方法的执行效率等等。拦截器(Interceptor)是一个Spring组件,并由Spring容器管理,并不依赖tomcat等容器,是可以单独使用的。不仅能应用在web程序中,也可以用于Application、Swing等程序中。
7 spring过滤器
过滤器基于函数回调的,过滤器实现的是javax.servlet.Filter接口,而这个接口是在Servlet规范中定义的,也就是说过滤器Filter的使用要依赖于tomcat等容器,导致它只能在web程序中使用。
8 AOP
Spring AOP的面向切面编程,是面向对象编程的一种补充,用于处理系统中分布的各个模块的横切关注点,比如说事务管理、日志、缓存等。它是使用动态代理实现的,在内存中临时为增强某个方法生成一个AOP对象,这个对象包含目标对象的所有方法,在特定的切入点做了增强处理,并回调原来的方法。
9 AOP是怎么实现的
SpringAOP的动态代理主要由两种方式实现,JDK动态代理和cglib动态代理。JDK动态代理通过反射来接收代理的类,但是被代理的类必须实现接口,核心是InvocationHandler和Proxy类,cglib动态代理的类一般是没有实现接口的类,cglib事一个代码生成类库,可以在运行时动态生成某个类的子类,所以,cglib事通过继承的方式做的动态代理,因此如果某个类被标记为final,那么它事无法使用cglib做动态代理的
10 索引什么时候失效
(1)对列进行计算或者是使用函数,则该列的索引会失效
(2)不匹配数据类型,会造成索引失效
(3)where语句中使用了IS NULL或者IS NOT NULL,会造成索引失效
(4)使用了反向操作,该索引将不起作用
(5)使用了link操作,索引就将不起作用
(6)在WHERE中使用OR时,有一个列没有索引,那么其它列的索引将不起作用
11 mybatis里面${}和#{}的区别
${}是 Properties 文件中的变量占位符,它可以用于标签属性值和 sql 内部,属于静态文本替换,比如${driver}会被静态替换为com.mysql.jdbc. Driver。 #{}是 sql 的参数占位符,MyBatis 会将 sql 中的#{}替换为? 号,在 sql 执行前会使用 PreparedStatement 的参数设置方法,按序给 sql 的? 号占位符设置参数值,比如 ps.setInt(0, parameterValue), #{item.name} 的取值方式为使用反射从参数对象中获取 item 对象的 name 属性值,相当于 param.getItem().getName()。
12 mysql情景:一个表有4列,主键id自增,姓名,年龄,日期假设28号有100条数据,29号有103条数据求得两个日期之间的差集
13 base地
14 对科技部和子公司更倾向哪一个,子公司会考虑吗
结束(17分钟)
#浙商#