java3年左右面试题

Posted xuyou551

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java3年左右面试题相关的知识,希望对你有一定的参考价值。

1:首先三分钟自我介绍(从大学开始)

2:为什么要从上家公司离职

3:什么时候能到岗

 

 

里面写的绝大多数都是多次问到的

一:java基础部分

1:具体讲解一下java三大特性

24种访问修饰符的范围

3:工作中接触的排序方法有哪些,用java代码写出一个

4:什么是反射,反射有什么用,如何用反射技术获取一个类私有的方法

5:什么是线程安全

6:你知道的线程同步的方法有哪些

7:如何避免死锁

8:你用过线程池吗,讲一讲你了解的线程池

9:线程池顶层接口是什么

10:线程池能和工厂模式一起使用吗,为什么

11:如何才能实现线程安全

12:同步代码块和同步方法有什么区别

13:你了解的设计模式有哪几种,分别描述一下,用java代码写出一个设计模式

14cookiesession的区别

15:讲一讲你了解的listsetmap,有没有看过集合的源码

16hashmap为什么不是线程安全的

17map有没有线程安全的子类,有的话是什么,如何实现的

18:讲一讲 过滤器 拦截器 监听器,以及如何配置

19:你用没用过多线程,有那些实现方式,平时用哪种,为什么

20:如何处理高并发的现象,有什么建议

21:代理模式有哪几种实现方式  如何实现动态代理

22jvm以及 java内存模型

23:多台服务器之间如何实现session共享的

24:悲观锁 乐观锁的实现方式

25java jdk并发包在哪个路径  讲一讲并发包做了什么事

26: jdbc mybatis的区别

27hash冲突怎么解决

28:生成hashcode的方式(原理)

29hashmap如何实现线程安全

29:如何保证hashmap线程安全

30:垃圾回收

31:数据结构  以及 数据结构算法

32java 在那些场景用到了ThreadLocal  怎么用的

33jdk1.8 新特性

别的忘了还有好多 以后想起来在补充

 

框架篇:(不全,好多都遗忘了)

Spring

1:讲一讲你理解的spring

2:平时开发中怎么用的spring 有没有看过源码,有什么什么使用心得

3springioc 有几种注入方式,具体讲一讲如何实现的

4:讲一讲springaop   你们开发中都用了哪些功能

5aop是靠什么实现的

6:你有没有用aop自己实现日志监测功能

7:你们开发中是如何使用spring事物的

8:谈一谈spring事物的隔离级别以及传播行为,默认的是什么

9spring用了哪些设计模式

10spring的动态代理

11spring常用的注解有哪些

12spring的事物是怎么实现的

 

 

Springmvc

1springmvc的工作原理

2:平时开发中都用了哪些注解

3controller层 都使用了哪些注解

4controller层除了加@controller 还有什么注解可以使这个类交给spring管理

5:你们工作中如何接收参数的,用的什么注解

6get请求和post请求接收的参数有什么不同,都是怎么接收的

7:用过resultful 风格吗 讲一讲如何用的

8springmvc 的拦截器如何配置

9:在springmvc 视图渲染这一流程中 freemarker模板引擎和jsp引擎能同时使用吗

10@Autowired @Resource的区别

Mybatis

1${} #{} 的区别

2:什么是sql注入   如何用mybatis防止sql注入

3:如何用mybatis实现添加一条数据时将主键返回

4:谈一谈mybatis的一二级缓存,如何开启已经如何使用

5:如何用mybatis批量添加或者修改数据

6mybatis的工作流程

7mybatissession是如何关闭的

8mybatis怎么创建selsession

9mybatis如何获取配置文件中配置的内容的

 

struts2

1struts2能否是单例的,为什么

2:你们工作中是如何使用struts2

 

Hibernate

1mybatishibernate的区别

2:谈一谈hibernate的缓存

3hibernateget方法和load方法哪一个可以导致懒加载

4:懒加载获得的对象是什么态的

5:为什么hibernate会用到hql语句 hql语句和sql语句有什么区别,哪个更有优势

 

Spring boot

1:用没用过Spring boot ,谈一谈你了解的Spring boot

2Spring boot如何启动的

3Spring boot的启动类上面加的是哪一个注解

4Spring boot如何将项目打成jar包的,如何启动这个jar

5Spring boot和传统的开发相比 具备哪些优势

 

mysql

1:创建一张学生表 字段包括 学号 姓名 年龄 学历 性别 手机号 家庭住址

2:将 年龄小于20岁的学生学历改成大专

3:查出 手机号 为18开头的学生

4:查出前30条学生全部信息  (limit 后面跟什么参数)

5:按照性别统计出学生的平均年龄

6:平时对mysql进行调优过吗

7:平时用的mysql的哪一种引擎

8mysql innodb myisam的 区别

9myisam可以使用事物吗

10: 谈一谈你了解的sql索引优化

11byte字段可以用作索引吗

12innodb myisam 索引有什么区别

13:说出几种会导致索引失效的场景

14:谈一谈你理解的mysql的事物

15:给你需求文档,你如何设计一张表

16:除了索引优化以外 你还做过哪些优化

17:在做商品秒杀活动的时候,如何设计才能避免库存表的高并发

18:谈一谈行锁和表锁

19mysql索引怎么实现的

20:存储过程

 

 

 

 

Mycat篇:

1:为什么用项目中选择用mycat,用在了什么地方

2mycat的路由规则都有哪几种

3:如果用mycat查询已经分库的表中数据的时候 查了一张表还是都查了

4:在mysql中间加了一层数据库中间件mycat会不会导致查询性能变慢

5mycat如果挂掉的时候会不会导致查询崩溃

 

nginx

1:说一说什么是负载均衡 和反向代理

2:如何配置 负载均衡 有哪几种方案 配置的参数名称叫什么

3:如何配置 反向代理 配置的参数名称是什么

4:反正代理和正向代理的区别

5 :  你们项目中用到了几台nginx 如何实现集群的

6:一台nginx挂掉之后 如何切换到备机的

7:你们公司用没用F5 或者一些别的方案实现 nginx的高可用的

FastDfs

1:为什么选择用FastDfs存储图片,有什么优势

2FastDfs hdfs 有什么区别

 

Dubbo

1:讲一讲dubbo的工作原理

2dubbo 信息提供方如何在配置文件中配置的

3dubbo 信息消费方如何在配置文件中配置的

4dubbo 如何连接zookeeper

5:你搭没搭建过dubbo 以及监控中心

6:在使用dubbo的时候 如果消息提供方挂掉了 如何排查出是那一台挂掉了

7:在使用duboo的时候 如果你在server方修改了一个方法但是还没有测试修改的正不正确,如何配置才能够在往zookeeper注册的时候不影响同组其他成员的正常使用

 

 

Redis

1:如何搭建集群的,怎么搭建的

2:了解哨兵模式吗

3redis是单线程还是多线程 为什么这样设计

4:你用过 redis那些命令 讲一讲

5:有一个使用场景,在注册的时候用到了redis ,如何设计才能防止用户恶意注册

(就是如何设计让用户在单位时间内操作5次以后不能再访问了)

6redis如何实现数据备份

7redissetzset有什么区别

8redismemcache的区别

9:为什么用redis作缓存,在java中自己用map写缓存不也可以么?

10redis是单线程的,那么同时发送2个请求,第一个请求获取返回的String类型的字符串太长,会有一段响应时间,那么第二个请求为什么可以添加数据?

activeMQ

1activeMQkafka有什么区别

2:还知道什么消息中间件吗

3:你在项目中如何使用的activeMQ

4:讲一讲activeMQ 的队列以及主题模式

5:单位时间内 activeMQ 的队列模式和主题模式那个吞吐量多 为什么

6:你搭没搭建过activeMQ 的集群

7:你改没改过 或者你了解activeMQ的相关配置吗

Kafka

1zkkafka怎么配合使用

2:为什么要用zk

3kafka如何保证生产消息不丢失,消费消息不冲突

 

Freemarker

1:你在项目中哪些地方用到了Freemarker,如何使用的

2:使用Freemarker有什么优势

3:你们是通过定时任务生成的静态化页面还是别的方式

 

 

Maven

1: 你们工作中用到了maven的那些功能

2maven如何依赖传递的

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年左右面试题的主要内容,如果未能解决你的问题,请参考以下文章

最新美团点评Java团队面试题:大厂高级测试面试题

吃透这份Android高级工程师面试497题解析,真香!

吊打面试官-Java中高级面试题,进阶学习

2021上海中级前端面试常问问题整理

python面试题:redis数据库

Java高级程序员(5年左右)面试的题目集