2017年5月面试总结
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支持的常用数据库事务传播属性和事务隔离级别,及对它们的使用场景?
事务传播行为类型 | 说明 |
---|---|
propagation_required(常用) | 如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是 最常见的选择。 |
propagation_supports | 支持当前事务,如果当前没有事务,就以非事务方式执行。 |
propagation_mandatory | 使用当前的事务,如果当前没有事务,就抛出异常。 |
propagation_requires_new | 新建事务,如果当前存在事务,把当前事务挂起。 |
propagation_not_supported | 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。 |
propagation_never | 以非事务方式执行,如果当前存在事务,则抛出异常。 |
propagation_nested | 如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与 propagation_required类似的操作。此时, 底层的数据源必须基于 JDBC 3.0 ,并且实现者需要支持保存点事务机制。 |
参考:
http://jaeger.blog.51cto.com/11064196/1761660
http://blog.csdn.net/willfcareer/article/details/5695530
Spring事务的隔离级别
隔离级别 | 说明 |
---|---|
DEFAULT | 这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别. |
READ_UNCOMMITTED | 这是事务最低的隔离级别,它充许令外一个事务可以看到这个事务未提交的数据。 这种隔离级别会产生脏读,不可重复读和幻像读。 |
READ_COMMITTED | 保证一个事务修改的数据提交后才能被另外一个事务读取。另外一个事务不能读取该事务未提交的数据 |
REPEATABLE_READ | 这种事务隔离级别可以防止脏读,不可重复读。但是可能出现幻像读。 |
SERIALIZABLE | 这是花费最高代价但是最可靠的事务隔离级别。事务被处理为顺序执行。除了防止脏读,不可重复读外,还避免了幻像读。 |
什么是脏数据,脏读,不可重复读,幻读?
脏读: 指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据, 那么另外一个事务读到的这个数据是脏数据,依据脏数据所做的操作可能是不正确的。
不可重复读: 指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的数据 可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。
幻读: 指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。
3.springMVC底层实现
4. mybatis底层实现原理
5.mybatis里的“#”与“$”的区别
6.描述mybatis里的resultMap
2017年5月面试总结相关推荐
- 2017年5月5号课堂笔记
2017年5月5号 星期五 沙尘暴转晴 内容:U2 HTML5第一节课 一.01第一个霸气的网页 1.老师代码: <!DOCTYPE html><html><head l ...
- 2017年10月历史文章汇总
2017年10月历史文章汇总 2017-11-01 机器学习研究会 机器学习研究会 25610017年1月历史文章汇总 2017年2月历史文章汇总 2017年3月历史文章汇总 2017年4月历史文章汇 ...
- 2017年1月历史文章汇总
2017年1月历史文章汇总 原创 2017-02-01 机器学习研究会 机器学习研究会 2017年1月1日 [推荐]Pandas数据处置速查表 [学习]决策树在商品购买能力预测案例中的算法实现 [学习 ...
- 2017年6月历史文章汇总
2017年1月历史文章汇总 2017年2月历史文章汇总 2017年3月历史文章汇总 2017年4月历史文章汇总 2017年5月历史文章汇总 2017年6月1日 [推荐]特征降维算法:优势与不足 [论文 ...
- 西工大计算机夏令营经验贴:2017~2019笔试、面试及完整流程
前言:非常感谢多位学弟学妹的支持,他们提供了第一手资料,本着乐于助人的心态,一再要求我不署名,在此我们应该感谢这些同学的无私奉献!!! 资料来源:凤凰考研 公众号 西北工业大学2017年计算机学院硕士 ...
- 【面经】陌陌-2017年8月28日,散招实习生
现在坐着公交车回学校,刚面试完脑仁炸疼,实在无力复习,写篇面经权当放松了.陌陌面试只问了项目和源码,最后据HR说前面两面的面试官评价都不错,向人力总监确认后可能会发offer,不过随便发不发吧,竟然还 ...
- 个人学习过程(从2017年8月9开始写)
开始学习C# 2017年8月9日 面试广州光娱失败 面试官指出我基础不扎实的缺点 先学好C#和Lua作为我的主语言,然后着眼未来再学习图形学,shader,网络编程,算法,设计模式 现在,先开始我的C ...
- 转计算机学院面试,计算机与通信工程学院2017年转专业面试方案
<计算机与通信工程学院2017年转专业面试方案>由会员分享,可在线阅读,更多相关<计算机与通信工程学院2017年转专业面试方案(2页珍藏版)>请在人人文库网上搜索. 1.计算机 ...
- 2017年4月26号课堂笔记
2017年4月26号 晴 空气质量:优 内容:U1知识总结 以下为补充或者自己薄弱的环节:(很多是网上搜的,回头慢慢消化) 一.Tips ctrl+shift+r : open resource, 打 ...
最新文章
- gradle zip task 排除文件
- 编程之美2.17 数组循环移位
- 19道Python练习题
- 带弹簧的Hazelcast分布式执行
- 中科院开源 RISC-V 处理器“香山”流片,已成功运行 Linux
- ecs php mysql集成环境_在阿里云 CentOS 服务器(ECS)上搭建 nginx + mysql + php-fpm 环境...
- 一个简单的学生成绩管理软件(ODBC开发)
- 计算机opnet仿真实验心得,SIMULINK仿真实验心得体会
- 数字图像直方图匹配或规定化Histogram Matching (Specification)处理
- 图片底色去除vue+canvas(简易版)
- 蓝狐SEO关键词按天计费系统_seo扣费系统源码
- 前端如何修改网页的标题栏图标和名称
- Java学习方法的一点个人见解-完整版
- C++学习笔记【1】——\n与endl的区别是什么?
- 上海财经应用统计考python_上海财经大学应用统计专硕考研经验帖
- scheme唤醒外部APP
- 蚂蚁金服软件测试开发工程师电话面试记录
- 华为交换机BFD配置
- VBS脚本病毒的特点!
- EPS首席执行官——荣获2021年安永年度企业家提名