10 多家公司的 Java 开发面试常见问题合集

用户头像
Java架构师迁哥
关注
发布于: 2020 年 09 月 29 日

上篇文章我请几个大佬帮我总结了一下,整理了三套模拟面试题,细心的大佬已经发现我中间断更了一天,为什么断更呢,也讲一下原因吧。我把我以前去面试过的那些东东扒出来了,今天我分享一下我的。





本人是做java开发的,这是我参加工作几年面试总结所得,当然面得那些公司自然是跟在座的大佬比不得。有一些互联网大厂也有一些小的创业型公司的面试问题,与之前的几篇分享的会有一些重复,弄清楚这些,相信面试会轻松许多。



一次面试事故



面试官:你看过哪些源码?

我:都挺熟悉的

面试官:对hashMap了解程度怎么样?

面试官:那你能讲讲 HashMap的实现原理吗?

面试官:HashMap什么时候会进行 rehash?

面试官:结合源码说说 HashMap在高并发场景中为什么会出现死循环?

我:…

我:抱歉…

面试官:嗯。

面试官:… 把门关上。

我:… 要干嘛?先关上再说。

面试官:我说出去把门关上。

我:what ?,夺门而去



116道面试题





  1. junit用法,before,beforeClass,after, afterClass的执行顺序

  2. nginx的请求转发算法,如何配置根据权重转发

  3. 用hashmap实现redis有什么问题(死锁,死循环,可用ConcurrentHashmap)

  4. 线程的状态

  5. 线程的阻塞的方式

  6. sleep和wait的区别

  7. hashmap的底层实现

  8. 一万个人抢100个红包,如何实现(不用队列),如何保证2个人不能抢到同一个红包,可用分布式锁

  9. java内存模型,垃圾回收机制,不可达算法

  10. 两个Integer的引用对象传给一个swap方法在方法内部交换引用,返回后,两个引用的值是否会发现变化

  11. aop的底层实现,动态代理是如何动态,假如有100个对象,如何动态的为这100个对象代理

  12. 是否用过maven install。maven test。git(make install是安装本地jar包)

  13. tomcat的各种配置,如何配置docBase

  14. spring的bean配置的几种方式

  15. web.xml的配置

  16. spring的监听器。

  17. zookeeper的实现机制,有缓存,如何存储注册服务的

  18. IO会阻塞吗?readLine是不是阻塞的

  19. 用过spring的线程池还是java的线程池?

  20. 字符串的格式化方法 (20,21这两个问题问的太低级了)

  21. 时间的格式化方法

  22. 定时器用什么做的

  23. 线程如何退出结束

  24. java有哪些锁?乐观锁 悲观锁 synchronized 可重入锁 读写锁,用过reentrantlock吗?reentrantlock与synmchronized的区别

  25. ThreadLocal的使用场景

  26. java的内存模型,垃圾回收机制

  27. 为什么线程执行要调用start而不是直接run(直接run,跟普通方法没什么区别,先调start,run才会作为一个线程方法运行)

  28. qmq消息的实现机制(qmq是去哪儿网自己封装的消息队列)

  29. 遍历hashmap的三种方式

  30. jvm的一些命令

  31. memcache和redis的区别

  32. mysql的行级锁加在哪个位置

  33. ConcurrentHashmap的锁是如何加的?是不是分段越多越好

  34. myisam和innodb的区别(innodb是行级锁,myisam是表级锁)

  35. mysql其他的性能优化方式

  36. linux系统日志在哪里看

  37. 如何查看网络进程

  38. 统计一个整数的二进制表示中bit为1的个数

  39. jvm内存模型,java内存模型

  40. 如何把java内存的数据全部dump出来





  1. Java 会出现内存溢出吗?什么情况下会出现?

  2. 双亲委派模型,为什么这样做?

  3. 对象什么情况下进入老年代?

  4. mongodb和hbase的区别

  5. 如何解决并发问题

  6. 为什么使用 Executor 框架?

  7. 什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者模型?

  8. 快速排序说一下过程

  9. 垃圾回收算法

  10. Tomcat 类加载器

  11. 读写分离何时强制要读主库,读哪个从库是通过什么方式决定的,从库的同步mysql用的什么方式

  12. Redis 的数据类型?

  13. 一个字符串类型的值能存储最大容量是多少?

  14. 将一个链表反转(用三个指针,但是每次只发转一个)

  15. spring Aop的实现原理,具体说说

  16. 在 java 中守护线程和本地线程区别?

  17. 是否用过Autowire注解

  18. spring的注入bean的方式

  19. sql语句各种条件的执行顺序,如select, where, order by, group by

  20. select xx from xx where xx and xx order by xx limit xx;如何优化这个(看explain)

  21. 四则元算写代码

  22. 统计100G的ip文件中出现ip次数最多的100个ip

  23. zookeeper的事物,结点,服务提供方挂了如何告知消费方

  24. 5台服务器如何选出leader(选举算法)

  25. 适配器和代理模式的区别

  26. 读写锁

  27. static加锁

  28. Jedis 与 Redisson 对比有什么优缺点?

  29. 为什么 edis 需要把所有数据放到内存中?

  30. mybatis如何映射表结构

  31. 二叉树遍历

  32. 如何使用 Spring Boot 实现分页和排序?

  33. mysql引擎区别

  34. 你使用了哪些 starter maven 依赖项?

  35. class文件编译后加载到了哪

  36. web的http请求如何整体响应时间变长导致处理的请求数变少,该如何处理?用队列,当处理不了那么多http请求时将请求放到队列



中慢慢处理,web如何实现队列



  1. 线程安全的单例模式

  2. 什么是 AOP?

  3. 你能否举一个以 ReadOnly 为事务管理的例子?

  4. 求表的size,或做数据统计可用什么存储引擎





  1. 哪个命令专门用来查看后台任务?

  2. 把后台任务调到前台执行使用什么命令?

  3. 怎么查看系统支持的所有信号?

  4. 搜索文件用什么命令? 格式是怎么样的?

  5. 使用什么命令查看用过的命令列表?

  6. 使用什么命令查看磁盘使用空间?空闲空间呢?

  7. java的concurrent包用过没

  8. Java 中用到的线程调度算法是什么?

  9. java虚拟机的区域分配,各区分别存什么

  10. 在 Java 中 CycliBarriar 和 CountdownLatch 有什么区别?

  11. Mybatis 是如何进行分页的?分页插件的原理是什么?

  12. Mybatis 是如何将 sql 执行结果封装为目标对象并返回的?都有哪些映射形式?

  13. 在 mapper 中如何传递多个参数?

  14. 什么是 MyBatis 的接口绑定?有哪些实现方式?

  15. redis能存哪些类型

  16. 服务注册和发现是什么意思?Spring Cloud 如何实现?

  17. Spring Cloud 和dubbo区别?

  18. 什么是 Spring Cloud Bus?我们需要它吗?

  19. 什么是 Netflix Feign?它的优点是什么?

  20. SpringBoot和SpringCloud的区别?

  21. 可重入锁中的lock和trylock的区别

  22. innodb对一行数据的读会枷锁吗?不枷锁,读实际读的是副本

  23. redis做缓存是分布式存的?不同的服务器上存的数据是否重复?guava cache呢?是否重复?不同的机器存的数据不同

  24. 用awk统计一个ip文件中top10

  25. 对表做统计时可直接看schema info信息,即查看表的系统信息

  26. mysql目前用的版本

  27. 公司经验丰富的人给了什么帮助?(一般boss面会问这些)

  28. 自己相对于一样的应届生有什么优势

  29. 自己的好的总结习惯给自己今后的工作带了什么帮助,举例为证

  30. 原子类,线程安全的对象,异常的处理方式

  31. 4Zookeeper 对于 Kafka 的作用是什么?

  32. 数据传输的事务定义有哪三种?

  33. Kafka 判断一个节点是否还活着有那两个条件?

  34. Kafka 与传统 MQ 消息系统之间有三个关键区别

  35. 讲一讲 kafka 的 ack 的三种机制

  36. kafka 如何不消费重复数据?比如扣款,我们不能重复的扣。



面试题答案



好了各位, 本文到这里就结束了! 关于面试题答案为什么没有直接写出来,我想说的是把面试题写下来会显得文章很长,(现在已经很长了…)这样就影响文章的可读性。可以直接关注我的公众号【Java斗帝】自取答案哦;

看完三件事❤️

如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:

  1. 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。

  2. 关注公众号 『 Java斗帝 』,不定期分享原创知识。

  3. 同时可以期待后续文章ing🚀



用户头像

还未添加个人签名 2020.09.07 加入

还未添加个人简介

评论

发布
暂无评论
10多家公司的Java开发面试常见问题合集