• 2021最新中高级Java面试题目,Java面试题汇总


    前言

    本人是底层 211 本科,刚毕业,科研经历,但是有些项经历。
    在国内监控行业某头部企业做过一段时间的实习。
    想着投下字节,可以积累下试经验和为金九银十面招做准备。投了简历之后,过了一段时
    间,HR 就打电话跟我约时间,
    说明一下,我投的是北京 office。
    以下就是一个面试的全部过程,分享出来给感兴趣的朋友们一看。

    一面:

    阿里巴巴面试答案文末可以领取!

    1. 触发新生代GC,如果存活对象总量大于survivor区容量,咋办

    2. 如果任务很多,线程池的阻塞队列会撑爆内存的哪个区域

    3. 栈在堆上吗

    4. GC root有哪些

    5. 实例变量可以是GC root吗

    6. 了解哪些GC算法,介绍一下

    7. 给个场景,问怎么设置JVM参数

    8. 问了很多SQL调优,各种语句能不能命中索引,能命中哪些,怎么优化

    9. MySQL的一张表里有三个字段ABC,A的种类有1000种,B有1W种,C有10W种,ABC的联合索引怎么设置,怎么使用

    10. Mybatis # 和 $ 的区别

    11. Mybatis接口里的方法和XML里的SQL名可以不一样吗,不一样怎么办

    12. Mybatis是如何完成SQL和接口里的方法的映射的(我回答了怎么配置),那你知道它是怎么实现的吗

    13. 介绍下Spring的 IOC和AOP

    14. 服务器给客户端发送IO流的过程

    15. IO和NIO了解多少

    16. 线程都有哪些状态,怎么转换的

    17. Notify和notifyAll的区别

    18. 介绍线程池,不同线程池区别在哪,你平时怎么使用线程池的

    19. MySQL索引的数据结构

    20. B+树了解多少

    21. Cookie和SessionId说一下

    22. 锁是怎么实现的

    23. Synchronized同步块和synchronized方法,分别锁的是什么

    24. 单例模式,饿汉和懒汉分别存在的问题

    25. Volatile是怎么实现可见性的

    26. 介绍下JMM

    27. Happen before了解吗

    28. A happen before B,意味着A一定在B之前执行吗

    29. 你做过的最难的项目中,最难的任务是什么,怎么解决的

    二面:

    1. 看过哪些源码

    2. Java都有哪些map,分别怎么实现的,具体讲

    3. 除了LinkedHashMap,你还知道哪些有序map

    4. ConcurrentHashMap讲一讲

    5. 为什么要有线程池

    6. 线程池有哪几类?有什么区别?有哪些参数?拒绝策略有哪些

    7. 阻塞队列都有哪几种,有什么区别

    8. Java的反射怎么理解

    9. Spring的IOC和AOP怎么理解

    10. Spring项目启动的时候会加载哪些资源,顺序是怎么样的

    11. 浏览器输入一个URL,会发生什么,整个过程说一下

    12. Http讲一讲,请求有哪些内容,响应有哪些内容

    三面(leader面):

    1. MySQL的高可用了解多少,高性能了解多少

    2. 淘宝有1000T的数据,单机存不下,怎么办?有没有办法只访问一次服务器?一致性Hash懂多少

    3. MySQL和redis有啥区别

    4. MySQL数据备份怎么做

    5. Redis底层原理会多少

    6. Redis为啥比MySQL快

    7. Redis RDB可能会丢失数据,怎么办

    8. Redis AOF不也要把日志写到磁盘么,那和MySQL的IO有啥区别,凭啥Redis就快

    9. Redis主从复制怎么做

    10. 分布式缓存懂多少

    11. 还知道其他NoSQL么

    12. Java和C的优缺点说一下

    13. 有没有用C写过底层

    14. Java的G1回收器详细讲一讲

    15. G1什么时候会stop the world

    16. Linux操作系统有应用过吗

    17. 对分布式和中间件掌握多少

    18. 详细介绍下你的项目

    四面:

    1. 数据库索引常用的数据结构

    2. Juc源码看过吗?锁的实现原理是什么

    3. CAS能深入的说一下吗

    4. 建造者模式说一下

    5. 谈一谈笔试的心得(笔试分高)

    6. 看过哪些书籍

    7. 平时怎么学习的

    五面(交叉面):

    1. 介绍下项目,项目的来源,是自己一个人做的么

    2. 登录验证怎么做的

    3. 讲一讲ThreadLocal

    4. ThreadLocal怎么避免线程污染

    5. 点赞怎么实现的

    6. Redis持久化方式

    7. MySQL存储引擎区别

    8. Myisam在只读场景下,为什么一般比InnoDB快

    9. Mybatis怎么使用

    10. Mybatis # 和 $ 的区别

    11. Spring中BeanFactory和ApplicationContext的区别

    12. Spring中bean的作用域有哪些,有什么区别

    13. 说出一个原型作用域的具体应用场景

    14. 学习过哪些设计模式,用过哪些设计模式

    15. 生产者消费者模式讲一讲

    16. 怎么实现阻塞队列

    17. 学过Linux吗

    18. 在Linux下,怎么查找一个目录下的所有文件,要求输出顺序按照文件的创建时间排序

    19. 给你一堆学生的信息,包括学号和姓名,让你找出学号最靠前的10个人的姓名

    20. PriorityQueue怎么实现的

    21. 怎么求根号3(我说了二分法,用2的平方,1.5的平方,1.75的平方依次和3比较,缩小区间,直到达到精度要求)

    22. 你这种求法太慢了,可以优化吗(我问:您是想问数值分析的知识么?面试官说:是的,你没学过数值分析么?)

    23. 斐波那契数列,求第n项的值(答了递归和DP两种方式)

    24. 如果数列长度100W,你的DP矩阵不是很大么?怎么优化?(答:用两个变量a,b记录前两个值,temp = a, a = b, b = a + temp,依次递推)

    25. 一个时钟有时针分针和秒针,三针重合的最短时间间隔是多少?(完全没思路,只知道一小时内肯定不行,因为走得速度不一样,一圈内速度快的和速度慢的撞不上)

    最后,附一张自己面试前准备的脑图:

    image

    面试前一定少不了刷题,为了方便大家复习,我分享一波个人整理的面试大全宝典

    • Java核心知识整理

    image

    • Spring全家桶(实战系列)

    image.png

    Step3:刷题

    既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。

    以下是我私藏的面试题库:

    image

    很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。

    资料领取方式:Java全套学习手册

    以下是我私藏的面试题库:*

    [外链图片转存中…(img-0REhYCnI-1620960807611)]

    很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。

    资料领取方式:Java全套学习手册

    以上学习资料均免费分享,最后祝愿各位身体健康,顺利拿到心仪的offer!

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    拼多多API_根据ID取商品详情
    Maya自定义工具架
    C# 串口通信(modbus),自动重连
    风控模型效能提升的秘籍,这三种相关度的处理方法用好就对了
    80%测试员被骗,关于jmeter 的一个弥天大谎!
    JAVA:实现N Queens 皇后问题算法(附完整源码)
    壁挂式SIP网络有源音柱 SIP广播音柱 支持私有协议软件广播
    leetcode 006. 排序数组中两个数字之和
    C语言 —— 函数
    ES6——知识点记录
  • 原文地址:https://blog.csdn.net/web15085599741/article/details/126055196