2017年5月面试总结
来源:互联网 发布:python 乘方 编辑:程序博客网 时间:2024/06/05 06:45
1. 渔夫分鱼算法
A,B,C,D,E五个渔夫夜间合伙捕鱼,凌晨都疲惫不堪,各自在草丛中熟睡。第二天清晨A先醒来,他把鱼均分五份,把多余的一条扔回湖中,便拿了自己的一份回家了,B醒来后,也把鱼均分五份,把多余的一条扔回湖中,便拿了自己的一份回家了,C,D,E也按同样方法分鱼。问5人至少捕到多少条鱼?
面试官让五分钟写出来,我是不行了,回来后因减1的问题差了5条,害得我花了近二十分钟。像这种算法,稍有点儿能力的都能写出来,只是时间问题,干嘛非要较那个真儿。
public static void main(String[] args) { for (int num = 6;; num++) { int t = num; // 每一个渔夫起来分鱼都必须符合:分成5份多一条 for (int j = 1; j <= 5; j++) { if (t % 5 == 1) { // 下一个渔夫起来看到总的条数 t = t-1- ((t - 1) / 5); }else{ t =0; } } if(t!=0){ System.out.println(num); break; } } }
2.动态代理模式
- 动态代理涉及到反射知识,这方面欠缺的可参考:
http://www.cnblogs.com/ktlshy/p/4716838.html - 动态理详解参考:
实例:http://www.cnblogs.com/xiaoluo501395377/p/3383130.html
详解:https://www.ibm.com/developerworks/cn/java/j-lo-proxy1/index.html - 动态代理时,我有一个疑问就是,invoke方法什么时候被调用的,参考:
http://blog.csdn.net/zcc_0015/article/details/22695647
由于动态生成的代理类也实现了被代理对象的接口,然后在实现代理接口方法中会调用invoke方法。所以通过动态代理类调用被代理对象的某全方法时,就能调用到invoke方法了
3.如何在mysql查找效率慢的SQL语句
参考:http://www.cnblogs.com/kimi9py/p/5735043.html
1. 首先查看是否开启慢查询:
SHOW VARIABLES LIKE ‘%quer%’;
1. 开启慢查询:slow_query_log set GLOBAL slow_query_log= on;
这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句。
2. 设置慢查询时间:long_query_time set GLOBAL long_query_time= 2;
当SQL语句执行时间超过此数值时,就会被记录到日志中,建议设置为1或者更短。
3. 指定慢查询日志记录位置:slow_query_log_file set GLOBAL slow_query_log_file= 2;
4. 捕获所有未使用索引的SQL语句 log_queries_not_using_indexes set GLOBAL log_queries_not_using_indexes= on;
4. 字符串排序
有一个字符串str=”235568523134”;请写程序将字符串str进行升序排序。(请使用一切可以使用的JDK API,但仅限JDK API)
String str = "235568523134";char[] arr = str.toCharArray();// 升序排序Arrays.sort(arr);// 处理结果StringBuffer sbs = new StringBuffer();for(char s :arr){ sbs.append(s);}System.out.println("排序后结果是:"+sbs.toString());
5.spring事务
请简单介绍Spring支持的常用数据库事务传播属性和事务隔离级别,及对它们的使用场景?
参考:
http://jaeger.blog.51cto.com/11064196/1761660
http://blog.csdn.net/willfcareer/article/details/5695530
Spring事务的隔离级别
什么是脏数据,脏读,不可重复读,幻读?
脏读: 指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据, 那么另外一个事务读到的这个数据是脏数据,依据脏数据所做的操作可能是不正确的。
不可重复读: 指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的数据 可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。
幻读: 指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。
3.springMVC底层实现
4. mybatis底层实现原理
5.mybatis里的“#”与“$”的区别
6.描述mybatis里的resultMap
- 2017年5月面试总结
- 2017年5-6月面试总结
- 2017年10月16日面试总结
- 2011年5月中兴实习生面试总结
- 2016年5月百度php实习生电话面试总结
- 2014年10月Android面试总结
- 4月面试总结
- 2017年5月面试(记要)
- 华为9月面试总结
- 6月英语+面试总结
- 2017年6月19号YaXin公司Android面试总结
- 2011年1月7日大恒图像面试总结
- 2013年08月15左右面试问题总结
- 2014年9月27 网新恒天面试总结
- 面试总结--2014年11月10日
- 2015年05月15日面试总结
- 2015年05月18日面试总结
- 2016年3月android面试总结(1)
- Android动画(三)之属性动画(Property Animation)
- Pytorch入门——概述
- thinkpad S3笔记本无线网速慢的解决方案
- Why-How-What黄金圈法则 的理解和运用
- 5月17日云栖精选夜读:大数据浪潮下_前端工程师眼中的完整数据链图
- 2017年5月面试总结
- 怎样用Java写一个简单的计算器?
- java内部类
- springboot自定义错误页面
- 利用文件流实现通讯录
- 【MySQL】存储引擎简介
- iOS数据类型简介及NSLog打印输出
- CodeForces 616E(数学规律)
- 算法——查找之二叉查找树