第一面
辞职后第一次面试,记录下面试题,查缺补漏。
1、最近在做什么项目?在项目中担当什么角色?
2、java的特性,继承,多态,封装。更深层次的理解,问了我一个为什么使用封装?我答似乎不是他想要的答案
3、String是对象引用吗?我说是,懵逼!然后他说那我String a="abc"是吗?我说不是,因为"abc"是放在字符常量区,然后他就是你既然知道还说是,我。。。
4、集合的结构。集合的区别
5、内存泄漏,例如数据库没有关闭的连接,IO流没有释放,解释是对堆栈的理解
6、Spring除了IOC和AOP还有什么?
7、Spring的注入方式
8、Spring的加载过程
9、Spring Boot的启动原理
10、SpringMVC的请求过程,SpringMVC的一些注解解释
11、谈谈自己对restful的理解
12、 .properties原理,继承HashTable
13、jsp的加载过程
14、js选择器有哪些?
15、js的底层结构
16、平时用的jquery有哪些方法?
17、ajax Js原理
18、除了http协议,还使用了哪些协议,面试官说了socket,还有一个不记得了
19、知道webserver吗?
20、平时使用线程吗?什么场景下使用?
21、线程冲突怎么解决?这里我是这样说的:是指线程安全方面吗?可以使用synchronized关键字,还有volatile字段修饰,然后他说阻塞怎么办呢?出一道题,假如十张票有一百个人抢,你怎么保证把票买出去?
我第一想法肯定是synchronized修饰,但是感觉他不想要这个答案,我就问为什么会出现阻塞(个人感觉很逗比),他说synchronized修饰就会出现阻塞啊,然后我说是因为一直占着资源不放吗?那可以通过lock()和unlock(),因为lock锁是乐观锁,lock会检测资源时否冲突,冲突则会一直请求,不冲突就占用,然后他露出了满意的笑容(这段真是有惊无险啊,我应该一开始就说出来的)
22、知道什么设计原则?我说是工厂模式吗?反正我不是很懂,就随便问,他说不是,然后问我知道开/闭原则吗?我说知道,就说什么对外开放,对内闭合,但是他说你知道这些,你知道关键点在哪里吗?我懵了,我说是修改吗?他又说但是具体的使用场景呢?你们在开发的时候有用过吗?然后我就卡壳了,我努力想了很久,说是指写好一个类然后尽量不去修改吗?然后使用继承去扩展它,他恩了一下,继续说那你知道单一设计原则吗?我赶紧点头,说知道,然后他就跟我说什么依赖倒置原则,原谅我,我真的对设计原则不太懂,所以就是不知道。后来他就停了,这里需要了解一下。
23、工作中遇到难解决的问题是什么?
24、知道POI吗?
25、hibernate知道吗?我说我工作中使用的是mybatis,然后他很遗憾。问了一些mybatis的东西
26、数据库连接池的原理?
27、xml的结构和原理
28、bootstrap表单提交用过吗?我说没有,然后他说那你简历上写的是?我说我们只用bootstrap css风格,
然后他指出我的简历是这个单词拼错了(囧),这里需要了解一下
29、还有一些项目上的问题