写点什么

面试造火箭!连续轰炸 50 问,我却靠这些"java 复习宝典"一一攻克!

作者:收到请回复
  • 2022 年 9 月 15 日
    湖南
  • 本文字数:2999 字

    阅读完需:约 10 分钟

前言

985 学渣渣一枚,毕业一年,四处飘荡了几个月,最终决心从事后端开发工作。上周腾讯那边打电话过来叫我准备面试(提前批),有点香喷喷的呀。不过可能还是疫情原因吧,一面选择的是电话面,上来就开干,连续 50 问,人都傻了...不过幸好,我有复习宝典,一一攻克!

腾讯一面连环 50 问

  • 1、个人履历简述

  • 2、项目简述

  • 3、SpringAOP 实现

  • 4、AOP 用的哪种?

  • 5、JDK 动态代理以及 CGLib 动态代理性能比较

  • 6、Java 的线程池用过吗,具体参数讲一下

  • 7、线程池的 Execute 和 Submit 区别

  • 8、继续问,还有别的区别吗?

  • 9、线程池如何保证当前线程获取池内的 worker 的时候不产生争用

  • 10、volatile 的特性

  • 11、内存屏障分几种?

  • 12、除了在 volatile 当中使用了内存屏障,JAVA 还有哪里使用了内存屏障

  • 13、你之前讲到了 CountDownLatch,你知道它的内部实现吗

  • 14、简单讲一下 AQS

  • 15、加锁之后 AQS 是如何响应中断的?

  • 16、OK 问点别的,AQS 存在什么实现呢?

  • 17、讲讲实现

  • 18、听说过 ReadWriteLock 吗,你之前提到 AQS 当中只有一个 State 那你如何用一个 State 去支撑读写两种状态

  • 19、Int 几个字节

  • 20、你们用过缓存吗

  • 21、你说说下分布式锁怎么做的?


  • 22、除了 redis 还有什么可以做分布式锁?

  • 23、如果让你用 Mysql 做分布式锁你怎么做

  • 24、zookeeper 了解吗

  • 25、那我们继续聊聊 Redis 吧,Redis 有什么数据结构?

  • 26、Zset 怎么实现的?

  • 27、什么是跳表?

  • 28、如果我要找一个 score 为 A 的节点应该如何去找?

  • 29、zrange 是如何实现的?

  • 30、Redis 持久化

  • 31、AOF 重写的时候会不会 block 主线程?

  • 32、在载入的时候是怎么做的

  • 33、Redis 有哪些多机部署方案?

  • 34、在主备环境下,如果一个备库中途断链了,重新上线的时候怎么执行同步?

  • 35、如果备库的 offset 过于落后已经不在 buffer 当中了呢?

  • 36、cluster 如何做的故障转移?

  • 37、Mysql 了解吗,里面有哪些锁?

  • 38、行锁怎么实现的?

  • 39、讲一下事务隔离级别吧

  • 40、你们用的是哪个隔离级别

  • 41、在默认隔离级别下会产生幻读问题吗?

  • 42、描述一下幻读

  • 43、MVCC 机制了解吗?

  • 44、讲一下原理

  • 45、慢 sql 怎么处理?

  • 46、你关注 explain 的那些 col?

  • 47、https 了解吗?

  • 48、线上机器 cpu100%你怎么处理?

  • 49、你们线上 JVM 一般调整什么参数?

  • 50、反问

问题就是上面这些,关于每个问题的详细回答和解释有整理成如下:


复习学习笔记:知识大纲+面试刷题+并发编程+性能调优+Spring全家桶+缓存数据库+分布式&微服务​docs.qq.com/doc/DVlhtRkhnbEtGTG9h


再看我的 java 复习宝典

可能有很多小伙伴说:面试造火箭,工作拧螺丝,这次的腾讯一面问题虽然多但是涉入的不是很深(那毕竟我是个渣渣吧)。虽然有很多是比较基础概念的东西,但是呢,涉及很广呀。所以,不得不面试造火箭呢!我自己有整理一套我的 java 复习宝典,从知识脑图出发,一步一步深入,面试+学习+复习,不漏掉任何一个细节。

先来看面试题(从基础-中级-高级),再来看具体知识点的知识脑图与笔记

  • 比如基础部分:

  • 面向对象和面向过程的区别?

  • Java 语言有哪些特点?

  • 关于 JVM JDK 和 JRE 最详细通俗的解答

  • Oracle JDK 和 OpenJDK 的对比

  • Java 和 C++的区别?

  • 什么是 Java 程序的主类?应用程序和小程序的主类有何不同?

  • Java 应用程序与小程序之间有哪些差别?

  • 字符型常量和字符串常量的区别

  • 构造器 Constructor 是否可被 override?

  • 重载和重写的区别?

  • Java 面向对象编程三大特性: 封装 继承 多态

  • String StringBuffer 和 StringBuilder 的区别是什么?String 为什么是不可变的?

  • 自动装箱与拆箱

  • 在一个静态方法内调用一个非静态成员为什么是非法的?

  • 在 Java 中定义一个不做事且没有参数的构造方法的作用?

  • import java 和 javax 有什么区别?

  • 接口和抽象类的区别是什么?

  • 成员变量与局部变量的区别有哪些?

  • 创建一个对象用什么运算符?对象实体与对象引用有何不同?

  • 什么是方法的返回值?返回值在类的方法里的作用是什么?

  • 一个类的构造方法的作用是什么 若一个类没有声明构造方法,该程序能正确执行吗 ?为什么?

  • 构造方法有哪些特性?

  • 静态方法和实例方法有何不同?

  • 对象的相等与指向他们的引用相等,两者有什么不同?

  • 在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是?

  • == 与 equals(重要)

  • hashCode 与 equals(重要)

  • 为什么 Java 中只有值传递?

  • 简述线程,程序、进程的基本概念。以及他们之间关系是什么

  • 线程有哪些基本状态?

  • 关于 final 关键字的一些总结

  • Java 中的异常处理

  • Java 序列化中如果有些字段不想进行序列化 怎么办?

  • 获取用键盘输入常用的的两种方法?

  • 中级部分:

  • HashMap 底层实现原理,红黑树,B+树,B 树的结构原理,volatile 关键字,CAS(比较与交换)实现原理

  • Spring 的 AOP 和 IOC 是什么?使用场景有哪些?Spring 事务,事务的属性,传播行为,数据库隔离级别

  • Spring 和 SpringMVC,MyBatis 以及 SpringBoot 的注解分别有哪些?SpringMVC 的工作原理,SpringBoot 框架的优点,MyBatis 框架的优点

  • SpringCould 组件有哪些,他们的作用是什么?(说七八个)微服务的 CAP 是什么?BASE 是什么?

  • 设计模式(说五六个)

  • Redis 支持的数据类型以及使用场景,持久化,哨兵机制,缓存击穿,缓存穿透

  • 线程是什么,有几种实现方式,它们之间的区别是什么,线程池实现原理,JUC 并发包,ThreadLocal 与 Lock 和 Synchronize 区别?

  • 分布式事务(不同系统之间如何保证数据的一致性(A 系统写入数据,B 系统因为某些原因没有写入成功,造成数据不一致))

  • 安全性问题(数据篡改(拿到别人的 URL,篡改数据(金额)发送给系统))

  • 索引使用的限制条件,sql 优化有哪些,数据同步问题(缓存,数据库数据同步)

  • 初始化 Bean 对象有几个步骤,它的生命周期

  • JVM 内存模型,算法,垃圾回收器,调优,类加载机制(双亲委派),创建一个对象,这个对象在内存中是怎么分配的?

  • 如何设计一个秒杀系统?(高并发高可用分布式集群)

  • 悲观锁,乐观锁,读写锁,行锁,表锁,自旋锁,死锁,分布式锁,线程同步锁,公平锁,非公平锁分别是什么?

  • 堆溢出,栈溢出的出现场景以及解决方案

  • 说出几种 MQ 之间的区别,以及为什么使用这种 MQ,消息重复发送(幂等性),消息发送失败,消息掉包,长时间收不到消息,发送的消息太大造成接收不成功

  • 单点登录实现原理

  • 假如有上亿条数据,你如何快速找到其中一条你想要的数据(几种简单的算法)

  • Dubbo 的运行原理,支持什么协议,与 SpringCould 相比它为什么效率要高一些,Zookeeper 底层原理

  • 假如你带一个团队,让你设计一个系统,你需要考虑哪些?

  • 高级部分(消息队列+Redis 缓存+分库分表+读写分离+分布式系统+高可用+微服务架构)

再看:并发编程+性能调优+Spring 全家桶+缓存数据库+分布式 &微服务等知识点脑图与笔记

第一个是并发编程

  • 知识汇总(思维脑图)

  • 并发编程的手写笔记:并发编程+并发编程_原理+并发编程_应用+并发编程_模式

(1)并发编程

(2)并发编程_原理

(3)并发编程_应用

(4)并发编程_模式

第二个是性能调优

Java 性能调优实战:Java 编程性能调优+多线程性能调优+JVM 性能监测及调优+设计模式调优+数据库性能调优+实战演练

第三个是 Spring 全家桶(关注这一部分,我将 Spring、MVC、Cloud、Boot 归整在一块了)

  • Spring:思维脑图+笔记

  • SpringCloud:思维脑图+笔记+面试

SpringBoot:思维脑图+笔记

  • SpringMVC

第四个是缓存架构


第五个是分布式 &微服务


总结

虽然这次去腾讯,也是抱着试水的心态的,一连 50 问我也的确有点懵逼的,不过很庆幸之前朋友有赠我这份JAVA面试复习宝典:基础-中级-高级的面试+并发编程+性能调优+Spring全家桶+缓存数据库+分布式&微服务等等全都有,一个不落(上面全都有一一解说),也比较顺利的在等待二面。


用户头像

加V:amchenzi-获取文中Java文档和面试资料 2021.06.08 加入

还未添加个人简介

评论

发布
暂无评论
面试造火箭!连续轰炸50问,我却靠这些"java复习宝典"一一攻克!_Java_收到请回复_InfoQ写作社区