Java面试 一年两年工作经验都问些什么

一年经验与应届生的区别,基础少了,项目多了

目录

 自我介绍

 项目

Java基础

 进阶


 自我介绍

不管是几年都会自我介绍吧。。

 项目

  •  说说项目吧,项目的整体架构你了解多少(我觉得这个比较重要,如果你连你负责的项目整体的架构都不清楚,每天盲目的就负责自己的模块,让你做什么你就做什么,从来不对整个项目关心,说明工作态度不太。。。)
  • 说说你负责的模块
  • 说说你遇到的问题以及如何解决的(多少得说几个,不出问题的项目你觉得???)
  • 说说你负责得模块你认为比较好的地方
  • 在你介绍自己项目的途中,会根据项目中所用到的中间件问你(RabbitMQ、Redis、MySql、es等等)

Java基础

一两两年的工作经验,会比起应届生少了基础,但也会问,不会那么的基础。

  • 反射:什么是反射,例如一个接口有两个实现类,如何根据业务需要,Controller中利用反射执行不同的实现类的方法(举例子 根据用户的积分多少,调用不同的实现类)
  • 常用集合:底层是如何实现的,HashMap(问的比较多),HashMap Put的过程,发生碰撞会作什么,使用ArrayList如何保证线程安全。。。等等,***搜Java高级基础一大片。。
  • 多线程,线程池,常用队列,拒绝策略,为什么选择他们。不同拒绝策略应用场景
  • Redis:五种存储类型,分别的应用场景,为什么,缓存雪崩,缓存穿透,你们是怎么解决的(解决办法),如何保证缓存与数据库的数据一致性
  • 消息队列:RabbitMQ如何保证消息的幂等性,事务性,消费方消费消息的过程中出异常怎么办(ACK机制),线上你们的RabbitMQ宕机过吗,如何恢复消息的。
  • MySql:表连接的区别,遇到过慢查询吗,如何解决的,索引的底层是什么,B+树与B树的区别可以简单说一下吗?如何避免索引失效,说一说你分析一条SQL的流程或者说你写完一条SQL后会怎么做(Explain)

 进阶

  • 订单表数据量某一天太大了,大到无法插入数据了,你会怎么做(因为我做的是电商项目),首先先分表,如何根据不同的用户插入到不同的表呢(Hash取余)
  • 线程池遇到过死锁吗,你是如何解决的,synchronized 和Lock区别能简单说说吗,比如说一个接口,开启了多个线程去跑不同的任务(比如,一个去查询广告,一个去查询首页的一些热点商品),如何解决FutureTask.get的时候等待问题。
  • 数据库的表你有没有设计过,如果要是你根据一个新的业务场景设计表,你会怎样设计
  • 部署过项目吗,比如说我要把一个项目在一台服务器上开启多个,即多个端口吗,我如何指定他们(Java-Jar设置参数,别傻到说修改yml重新打包生成)
  • Linux常用的命令。查看端口号的命令是什么**(常问)

差不多了吧,半个小时四十分钟的面试时间,一年两年的面试,觉得我写的不足的,欢迎大家留言。

猜你喜欢

转载自blog.csdn.net/weixin_44912855/article/details/115259558