面试题4
来源:互联网 发布:广东中标数据科技 编辑:程序博客网 时间:2024/06/05 18:20
上午面试题
1.数据结构
链表有很多种不同的类型:单向链表,双向链表以及循环链表。1、常见数据结构线性:数组,链表,队列,堆栈,块状数组(数组+链表),hash表,双端队列,位图(bitmap)树:堆(大顶堆、小顶堆),trie树(字母树or字典树),后缀树,后缀树组,二叉排序/查找树,B+/B-,AVL树,Treap,红黑树,splay树,线段树,树状数组图:图其它:并查集2、常见算法(1) 基本思想:枚举,递归,分治,模拟,贪心,动态规划,剪枝,回溯(2) 图算法:深度优先遍历与广度优先遍历, 最短路径,最小生成树,拓扑排序(3) 字符串算法:字符串查找,hash算法,KMP算法(4) 排序算法:冒泡,插入,选择,快排,归并排序,堆排序,桶排序(5) 动态规划:背包问题,最长公共子序列,最优二分检索树(6) 数论问题:素数问题,整数问题,进制转换,同余模运算,(7) 排列组合:排列和组合算法(8) 其它:LCA与RMQ问题
堆栈问题
object obj=new Object();
obj存放在堆内存里面,只存放对象本身 object存放到栈里面,基本数据和对象的引用
下午面试题
1.数据库删除重复的记录
用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 delete from people where peopleName in ( select peopleName from people having count(peopleName) > 1) and peopleId not in ( select min(peopleId) from people having count(peopleName)>1) 3、查找表中多余的重复记录(多个字段) select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) 4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录 delete from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1) 5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录 select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1) 6.消除一个字段的左边的第一位:update tableName set [Title]=Right([Title],(len([Title])-1)) where Title like '村%'7.消除一个字段的右边的第一位:update tableName set [Title]=left([Title],(len([Title])-1)) where Title like '%村'8.假删除表中多余的重复记录(多个字段),不包含rowid最小的记录 update vitae set ispass=-1where peopleId in (select peopleId from vitae group by peopleId
2.session和cache
(1)最大的区别是Cache提供缓存依赖来更新数据, 而Session只能依靠定义的缓存时间来判断缓存数据是否有效。(2)只要Cache.Add方法中定义的缓存时间未过期,下次开启应用程序时,缓存的数据依然存在。而Session缓存只是存在于一次会话中,会话结束后,数据也就失效了。(3)Session容易丢失,导致数据的不确定性,而Cache不会出现这种情况。(4)由于Session是每次会话就被加载,所以不适宜存放大量信息,否则会导致服务器的性能降低。而Cache则主要用来保存大容量信息,如数据库中的多个表。Session是由应用服务器维持的一个服务器端的存储空间Cookie是客户端的存储空间,由浏览器来维持。CACHE ,则是服务器端的缓存,是所有用户都可以访问和共享的。
3.session的存储位置,格式
Tomcat 中的 Session 是放在org.apache.catalina.session.ManagerBase 类中,以 HashMap 格式存放,key 为 sessionId, value 为 org.apache.catalina.Session 接口,他有三种存储方式(自定义存储在这里不做讨论): 1.1保存在IIS进程中: 1.2.保存在StateServer上 1.3.保存在SQL Server数据库中 这种方式在服务器挂掉重启后都还在,因为他存储在内存和磁盘中。
4.servlet的生命周期
对每一个客户端的请求,Servlet引擎载入Servlet,调用它的init()方法,完成Servlet的初始化。Servlet对象通过为每一个请求单独调用service()方法来处理所有随后来自客户端的请求调用Servlet的destroy()方法把Servlet删除掉。
5.IOC的实现原理
1.创建xml配置文件,配置要创建的对象2.创建工厂类,使用dom4j来解析配置文件3.使用反射创建类对象
0 0
- 英文面试题(4)
- Java面试题(4)
- C++面试题4
- C++面试题4
- .net面试题4
- 面试题4
- 面试题4
- 面试题(4)
- .net面试题4
- .NET面试题 - 4
- 面试题4
- 面试题4
- 面试题4
- hibernate面试题4
- 面试题4
- 网络面试题4
- 面试题4
- 面试题4
- 2、SQL Server:SQL利用Case When Then多条件判断SQL 语句
- Ubuntu14.04lts wifi连接不稳定问题
- POJ 3693 Maximum repetition substring (后缀数组+RMQ 求重复最多的连续子串)
- 机器视觉之镜头景深概念与计算
- 链表:自引用结构
- 面试题4
- Service(远程服务)
- Glide-入门教程
- MyEclipse汉字乱码问题
- poj 1611 并查集
- 树状数组(二)与poj2155
- AlertDialog对话框的简单使用
- MacOS不可或缺的套件管理工具---Homebrew
- android开发第一弹:短信SMS