说明:此文中的面试题是我2020年四月份面试过程所遇到过的,面试的是工作经验三年左右的Java开发工程师。
目录
Java基础方面
Java框架方面
Java数据库方面
前端
Java其他方面
Linux方面
其他方面
Java基础方面
1.if(0.1*3 == 0.3){}else{},这段代码会执行if还是else,为什么?
2.==与equals的区别?
3.string、stringbuffer和stringbuilder的区别?为什么stringbuffer比string快?
4.string类为什么设置成final类型,有什么好处?
5.overload和override的区别?
6.说说Java中static的用法?
7.final的用法知道吗?怎么用?
8.Java中的集合有哪些,具体说一说?
9.ArrayList、linkedList和vector的区别?为什么ArrayList查询快,增删慢,而linkedList增删快,查询慢?
10.list和array是否可以互换?如果可以,怎么互换?
11.hashmap和hashtable的区别?hashmap的键可以重复吗?键和值允许是空的吗?
12.map的循环方式有几种?请说明一下。
13.多线程有几种创建方式?
14.线程有几种状态?
15.synchronized和lock的区别知道吗?说一下。
16.throw和throws能说一下有什么区别嘛?
17.字节流和字符流有什么区别?什么情况下用字符流,什么情况下用字节流?
Java框架方面
1.MVC指的什么,能说下嘛?
2.spring的IOC和AOP有了解吗?具体说说。
3.事务的特性知道吗?
4.spring的传播行为知道吗,具体列举一下。
5.spring的隔离级别有几种,说明一下。可重复读,能具体解释一下吗?
6.springMVC的组件知道吗?springMVC的流程呢?
7.springMVC的注解有用到哪些?能具体说一下注解和其作用吗?
8.mybatis用过吗?能具体说明一下吗?
9.mybatis的动态SQL知道吗,列举一下你用到的标签。
10.mybatis的自增主键了解吗?
11.mybatis的一对一、一对多用过吗?说一下。
12.mybatis种的#{}和${}有什么不同?
13.hibernate中的一对多、多对一、多对多、一对一在实体中的注解是什么?
14.mybatis和hibernate都用过吗?有什么区别?能具体结合你的项目说一下嘛?
15.springboot了解吗?既然有了spring,为什么要用到springboot,相比spring,它有什么好处?
16.springboot中常用的注解知道吗?列举一下。
Java数据库方面
1.jdbc操作数据库步骤知道吗,说一下。
2.Oracle中的varchar和varchar2有什么区别,能具体说一下嘛?
3.having和where都用过吗,有什么区别?
4.MySQL和Oracle都了解吗?有什么区别?分页查询,它们的区别,能具体说一下吗?
5.mybatis的乐观锁和悲观锁,能说一下嘛?
6.有一张学生表,表的字段有学生id、课程、成绩,请查询至少一门课程分数大于80分的学生信息。
7.写一条SQL,查询出一个班级中男生、女生的人数。
8.数据库的优化有做过哪些工作,具体说明你是怎么优化数据库查询的?
9.索引创建过吗?怎么创建索引,哪些字段适合创建索引?
10.有四十万的数据要插入数据库,要保证跟目前数据库中的数据不重复,问你怎么做?
11.Redis有用过吗?Redis相比MySQL有什么好处?
12.Redis的数据类型有哪些?它的持久化机制了解吗?说一下。
13.如何保证Redis和数据库数据的一致性?
前端
1.jQuery了解吗?jQuery常用的选择器知道吗,能具体说一下嘛?
2.ID选择器、class选择器、标签选择器的优先级,说一下?
Java其他方面
1.session和cookie知道吗?具体说一下。
2.get和post有什么区别,知道吗?
3.单例模式说一下,饿汉式和懒汉式的区别知道吗?
4.排序知道几种,试说明其中一种的思路。
Linux方面
1.说一下你常用的Linux命令,并说明其作用。
2.Linux下怎么查看进程?
其他方面
1.你也用Java好久了,说说你自己擅长的。
2.你在实际项目当中,解决过哪些问题?怎么解决的,说一下。
3.针对你做过的项目,你有哪些优化建议?你会怎么去做?