java3年左右面试题
Posted xuyou551
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java3年左右面试题相关的知识,希望对你有一定的参考价值。
1:首先三分钟自我介绍(从大学开始)
2:为什么要从上家公司离职
3:什么时候能到岗
里面写的绝大多数都是多次问到的
一:java基础部分
1:具体讲解一下java三大特性
2:4种访问修饰符的范围
3:工作中接触的排序方法有哪些,用java代码写出一个
4:什么是反射,反射有什么用,如何用反射技术获取一个类私有的方法
5:什么是线程安全
6:你知道的线程同步的方法有哪些
7:如何避免死锁
8:你用过线程池吗,讲一讲你了解的线程池
9:线程池顶层接口是什么
10:线程池能和工厂模式一起使用吗,为什么
11:如何才能实现线程安全
12:同步代码块和同步方法有什么区别
13:你了解的设计模式有哪几种,分别描述一下,用java代码写出一个设计模式
14:cookie和session的区别
15:讲一讲你了解的list,set,map,有没有看过集合的源码
16:hashmap为什么不是线程安全的
17:map有没有线程安全的子类,有的话是什么,如何实现的
18:讲一讲 过滤器 拦截器 监听器,以及如何配置
19:你用没用过多线程,有那些实现方式,平时用哪种,为什么
20:如何处理高并发的现象,有什么建议
21:代理模式有哪几种实现方式 如何实现动态代理
22:jvm以及 java内存模型
23:多台服务器之间如何实现session共享的
24:悲观锁 乐观锁的实现方式
25:java jdk并发包在哪个路径 讲一讲并发包做了什么事
26: jdbc 与mybatis的区别
27:hash冲突怎么解决
28:生成hashcode的方式(原理)
29:hashmap如何实现线程安全
29:如何保证hashmap线程安全
30:垃圾回收
31:数据结构 以及 数据结构算法
32:java 在那些场景用到了ThreadLocal 怎么用的
33:jdk1.8 新特性
别的忘了还有好多 以后想起来在补充
框架篇:(不全,好多都遗忘了)
Spring篇
1:讲一讲你理解的spring
2:平时开发中怎么用的spring 有没有看过源码,有什么什么使用心得
3:spring的ioc 有几种注入方式,具体讲一讲如何实现的
4:讲一讲spring的 aop 你们开发中都用了哪些功能
5:aop是靠什么实现的
6:你有没有用aop自己实现日志监测功能
7:你们开发中是如何使用spring事物的
8:谈一谈spring事物的隔离级别以及传播行为,默认的是什么
9:spring用了哪些设计模式
10:spring的动态代理
11:spring常用的注解有哪些
12:spring的事物是怎么实现的
Springmvc篇
1:springmvc的工作原理
2:平时开发中都用了哪些注解
3:controller层 都使用了哪些注解
4:controller层除了加@controller 还有什么注解可以使这个类交给spring管理
5:你们工作中如何接收参数的,用的什么注解
6:get请求和post请求接收的参数有什么不同,都是怎么接收的
7:用过resultful 风格吗 讲一讲如何用的
8:springmvc 的拦截器如何配置
9:在springmvc 视图渲染这一流程中 freemarker模板引擎和jsp引擎能同时使用吗
10:@Autowired 和@Resource的区别
Mybatis篇
1:${} 和#{} 的区别
2:什么是sql注入 如何用mybatis防止sql注入
3:如何用mybatis实现添加一条数据时将主键返回
4:谈一谈mybatis的一二级缓存,如何开启已经如何使用
5:如何用mybatis批量添加或者修改数据
6:mybatis的工作流程
7:mybatis的session是如何关闭的
8:mybatis怎么创建selsession的
9:mybatis如何获取配置文件中配置的内容的
struts2篇
1:struts2能否是单例的,为什么
2:你们工作中是如何使用struts2的
Hibernate篇
1:mybatis和hibernate的区别
2:谈一谈hibernate的缓存
3:hibernate的get方法和load方法哪一个可以导致懒加载
4:懒加载获得的对象是什么态的
5:为什么hibernate会用到hql语句 hql语句和sql语句有什么区别,哪个更有优势
Spring boot 篇
1:用没用过Spring boot ,谈一谈你了解的Spring boot
2:Spring boot如何启动的
3:Spring boot的启动类上面加的是哪一个注解
4:Spring boot如何将项目打成jar包的,如何启动这个jar包
5:Spring boot和传统的开发相比 具备哪些优势
1:创建一张学生表 字段包括 学号 姓名 年龄 学历 性别 手机号 家庭住址
2:将 年龄小于20岁的学生学历改成大专
3:查出 手机号 为18开头的学生
4:查出前30条学生全部信息 (limit 后面跟什么参数)
5:按照性别统计出学生的平均年龄
6:平时对mysql进行调优过吗
7:平时用的mysql的哪一种引擎
8:mysql 中innodb myisam的 区别
9:myisam可以使用事物吗
10: 谈一谈你了解的sql索引优化
11:byte字段可以用作索引吗
12:innodb 和myisam 索引有什么区别
13:说出几种会导致索引失效的场景
14:谈一谈你理解的mysql的事物
15:给你需求文档,你如何设计一张表
16:除了索引优化以外 你还做过哪些优化
17:在做商品秒杀活动的时候,如何设计才能避免库存表的高并发
18:谈一谈行锁和表锁
19:mysql索引怎么实现的
20:存储过程
Mycat篇:
1:为什么用项目中选择用mycat,用在了什么地方
2:mycat的路由规则都有哪几种
3:如果用mycat查询已经分库的表中数据的时候 查了一张表还是都查了
4:在mysql中间加了一层数据库中间件mycat会不会导致查询性能变慢
5:mycat如果挂掉的时候会不会导致查询崩溃
1:说一说什么是负载均衡 和反向代理
2:如何配置 负载均衡 有哪几种方案 配置的参数名称叫什么
3:如何配置 反向代理 配置的参数名称是什么
4:反正代理和正向代理的区别
5 : 你们项目中用到了几台nginx 如何实现集群的
6:一台nginx挂掉之后 如何切换到备机的
7:你们公司用没用F5 或者一些别的方案实现 nginx的高可用的
FastDfs篇
1:为什么选择用FastDfs存储图片,有什么优势
2:FastDfs 和 hdfs 有什么区别
Dubbo篇
1:讲一讲dubbo的工作原理
2:dubbo 信息提供方如何在配置文件中配置的
3:dubbo 信息消费方如何在配置文件中配置的
4:dubbo 如何连接zookeeper的
5:你搭没搭建过dubbo 以及监控中心
6:在使用dubbo的时候 如果消息提供方挂掉了 如何排查出是那一台挂掉了
7:在使用duboo的时候 如果你在server方修改了一个方法但是还没有测试修改的正不正确,如何配置才能够在往zookeeper注册的时候不影响同组其他成员的正常使用
Redis篇
1:如何搭建集群的,怎么搭建的
2:了解哨兵模式吗
3:redis是单线程还是多线程 为什么这样设计
4:你用过 redis那些命令 讲一讲
5:有一个使用场景,在注册的时候用到了redis ,如何设计才能防止用户恶意注册
(就是如何设计让用户在单位时间内操作5次以后不能再访问了)
6:redis如何实现数据备份
7:redis的 set和 zset有什么区别
8:redis和memcache的区别
9:为什么用redis作缓存,在java中自己用map写缓存不也可以么?
10:redis是单线程的,那么同时发送2个请求,第一个请求获取返回的String类型的字符串太长,会有一段响应时间,那么第二个请求为什么可以添加数据?
activeMQ篇
1:activeMQ和 kafka有什么区别
2:还知道什么消息中间件吗
3:你在项目中如何使用的activeMQ
4:讲一讲activeMQ 的队列以及主题模式
5:单位时间内 activeMQ 的队列模式和主题模式那个吞吐量多 为什么
6:你搭没搭建过activeMQ 的集群
7:你改没改过 或者你了解activeMQ的相关配置吗
Kafka篇
1:zk与kafka怎么配合使用
2:为什么要用zk
3:kafka如何保证生产消息不丢失,消费消息不冲突
Freemarker篇
1:你在项目中哪些地方用到了Freemarker,如何使用的
2:使用Freemarker有什么优势
3:你们是通过定时任务生成的静态化页面还是别的方式
Maven篇
1: 你们工作中用到了maven的那些功能
2:maven如何依赖传递的
3:如何用maven创建一个分布式的项目
4:如何对传统的项目 用maven 改造成一个分布式的项目
前端篇
1:jq中的ajxa 异步的具备什么优势
2:考察一些标签选择器
3:现在有多个p标签 用 text 和 html 获取 p标签 返回的是什么
4:用没用过AngularJS
Linux篇:
1:讲一讲你熟悉的linux命令
2:如何查看系统的内存使用情况
3:如何查看系统运行的所有进程情况
4:如何在一个文本中 根据指定的关键词 快速搜索
PS:通过面试几家之后,发现外界绝大多数都对 分布式项目感兴趣
以上那些问题都是 对 中高级开发的提问问题 回答出一些常见的问题
只能算初级开发,so 在掌握基础的同时 要侧重学习一下 redis ,dubbo
以及nginx的负载均衡和反向代理的配置 问的最多最多。。。
以上是关于java3年左右面试题的主要内容,如果未能解决你的问题,请参考以下文章