秋招找了一个月工作,也算积累了一些面试经验,一般面试官会问到的问题包括以下几个方面。(仅列出我所遇到的)
一、数据结构
1.几种数据结构
2.数组和链表的区别
3.二叉树相关知识,二叉树前中后序
4.几种排序方式(冒泡、快速...)
5.Map,HashMap和HashTable等,及互相的区别
6.==和equal的区别,什么时候相等
1)对于==,比较的是值是否相等
如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;
如果作用于引用类型的变量,则比较的是所指向的对象的地址
2)对于equals方法,注意:equals方法不能作用于基本数据类型的变量,equals继承Object类,比较的是是否是同一个对象
如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;
诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。
二、Java基础
1.JSP
session和cookie
servlet生命周期
2.线程及相关方法(怎么实现线程同步) 【可以看这篇文章: https://blog.csdn.net/jiangbr/article/details/79337573 】
3.关键字violate synchornized final static wait notify 等
4.设计模式(旁观者模式等),MVC
5.内存模型和垃圾回收机制gc
6.常见错误(outofmerory error 等)
7.Java虚拟机中的堆和栈
8.框架(Hyberite和MyBatis区别)
9.各种区别
类变量,实例变量的区别
面向对象,面向过程的区别
重载和重写的区别
接口和抽象类的区别
三、计算机基础
1.HTTP协议
2.网络(七层)
3.Linux 操作(删除非空文件夹,根据进程名或端口号寻找进程)
4.死锁及解决办法
5.泛型
四、数据库
1.数据库三范式
2.事务及其特点
3.数据库触发器及写法
4.索引
5.数据库删除某一列语句怎么写
五、算法
1.List的遍历
2.贪心算法
3.二叉树遍历某一层的几种方法
4.一个5L容器,一个3L容器,装4L水
5.11个不同重量的球,一个天平,找出重量在中间的那个球(要求效率)
6.逻辑问题
六、项目经验
1.谈一谈用到的技术,遇到的问题及怎么解决的
2.团队协作和团队管理
3.用过哪些框架,设计模式等