CS-Notes/notes/面经/亚辉的面试经验-cvte.md.txt

93 lines
3.1 KiB
Plaintext
Raw Normal View History

2018-02-22 14:47:22 +08:00
# 一面
## 问有没有做过JAVA Web的项目选一个讲
选择了一个做的CMS来讲因为我是这个项目的总负责人
## 问项目上有没有遇到什么困难
答:没有。。
## 技术选型是如何决定的。
感觉不是真让回答技术选型的过程。我就对比了SpringMVC和struts的优缺点Mybatis和Hibernate的区别。
然后他又问了为什么选择了shiro而不是spring security。我就说因为之前没有接触过权限管理的框架在网上看帖子说spring security比shiro更为复杂和庞大对于我们项目没有很多的时间和学习成本去接触spring securityshiro更容易上手。
## 数据库查询
三个表,其中一个表是其他两个表的关系表。问如何根据一个表的字段查找出另外一张表的字段。
回答出sql。
我回答了子查询其实用join更好点但是一时间不知道怎么join。
## 数据库索引有了解吗?索引的优缺点。
查询快,插入慢。所以适合查询为主的字段。
## 常用的集合有哪些
LinkedListArrayListHashmap。
## LinkedList和ArrayList的区别
底层实现不同。LinkedList双向链表ArrayList数组。ArrayList插入慢但是查询快。LinkedList插入快查询慢。
## LinkedList的底层实现是怎么样的假如往LinkedList的第k个位置插入数据时间复杂度最后一个位置插入呢
双向链表。
第k个位置插入数据k+1 遍历k位插入一次。
最后一个位置1。因为是双向链表。
## Hashmap能不能用对象做key。
可以。但是得重写hashcode方法和equals方法。
## Hashmap用对象做key时put后又修改了这个对象会发生什么。
我就说那得看你设计的这个hashcode和equals方法跟你修改得属性有没有关系假如有那会导致put进去get不出来
## java的异常分类
Error、Exception,还有一个比较特别的RuntimeException
## Java如何捕获异常
回答try...catch..
然后问finally不是吗
回答不是。finally只是配合使用的没有异常的时候单独使用finally也是可以的。
然后问 什么情况下会在finally里面写代码
回答:举了数据库连接的例子。。
## JVM何时会发生内存泄露
不知道。。可以看这个帖子
http://blog.csdn.net/anxpp/article/details/51325838
看了这个帖子。。估计面试官是想问我数据库连接也会导致内存泄露吧。。。
## JVM的内存划分是如何的
堆,栈,方法区,程序计数器什么呢。
## 方法区都存放了哪些东西
类的信息,静态类和静态变量。
## 平常私下会做什么事
讲了我github一直在维护的个人项目。爬虫和tinyjvm。
## 算法题0~n共n+1个数,从中随机抽取一个数剩下的n个数都知道是什么问随机抽出的数是什么。
刚开始回答了0~n加起来然后减去剩下的n个数之和就可以得到了。
他问假如n很大会发生什么情况
我说会超出int或者long的最大值。
然后选择了bitmap的方式来解决一个数对应一个bit。
#二面
聊项目
#HR面
聊性格