乐趣区

关于java:2021-金三银四的最后一次-Java-面试快手三面一轮游如今已拿意向书

2021 金三银四的最初一次 Java 面试,我去了快手。快手的面试挺有挑战性的,而且还特地有意思,感觉啥都能问到。(二面是 10 天前约的面试,差点要忘了)而后是 HR 面,前天我就收到 offer。

一面二面啥的我都遗记具体的了,就简略的总结一下

1 根底

  • 为什么 Java 中只有值传递?
  • int 范畴?float 范畴?
  • hashCode 与 equals,什么关系?
  • String StringBuffer 和 StringBuilder 的区别是什么?String 为什么是不可变的?
  • Java 序列化中如果有些字段不想进行序列化 怎么办?
  • 结构器 Constructor 是否可被 override?
  • java 异样体系?RuntimeException Exception Error 的区别,举常见的例子
  • 字符型常量和字符串常量的区别?
  • 在调用子类构造方法之前会先调用父类没有参数的构造方法,其目标是?

2 汇合

汇合这块关注一下 1.8 的实现吧,和 1.7 相比变动了很多

  • ArrayList 和 linkedList 的区别?
  • 堆是怎么存储的,插入是在哪里?
  • HashMap 和 HashTable 的区别?讲一下 hashMap 原理。hashMap 能够并发读么?并发写会有什么问题?
  • 汇合类寄存于 Java.util 包中,次要有几种接口?
  • Array 与 ArrayList 有什么不一样?简略介绍下 ArrayList 怎么实现,加操作、取值操作,什么时候扩容?
  • 说说 ConcurrentHashMap?头插法还是尾插法?扩容怎么做?
  • 汇合在迭代的过程中,插入或删除数据会怎么?

3 并发

  • notify() 和 notifyAll() 有什么区别?
  • volatile 是什么? 能够保障有序性吗?
  • 为什么 wait, notify 和 notifyAll 这些办法不在 thread 类外面?
  • SynchronizedMap 和 ConcurrentHashMap 有什么区别?
  • 什么是线程平安?Vector 是一个线程安全类吗?
  • 线程过程和线程的区别?并行和并发的区别?理解协程么?过程间如何通信:过程 A 想读取过程 B 的主存怎么办?线程间通信?线程的生命周期有哪些状态?怎么转换?wait 和 sleep 有什么区别?什么状况下会用到 sleep?怎么进行线程?怎么管制多个线程按序执行?
  • 说说本人是怎么应用 synchronized 关键字,在我的项目中用到了吗?synchronized 关键字最次要的三种应用形式
  • 为什么要用 join() 办法?
  • 什么是多线程中的上下文切换?
  • 死锁与活锁的区别,死锁与饥饿的区别?
  • Java 中用到的线程调度算法是什么?
  • 什么是原子操作?在 Java Concurrency API 中有哪些原子类 (atomic classes)?
  • 什么是阻塞队列?阻塞队列的实现原理是什么?如何应用阻塞队列来实现生产者 - 消费者
  • 模型?
  • AQS 理解 AQS 么?讲讲底层实现原理 AQS 有那些实现?讲讲 AtomicInteger 的底层实现
  • 为什么咱们调用 start() 办法时会执行 run() 办法,为什么咱们不能间接调用 run() 方
  • 法?
  • Java 中你怎么唤醒一个阻塞的线程?
  • 什么是线程组,为什么在 Java 中不举荐应用?

4 IO

IO 这块我不熟,没有多讲

  • 理解 NIO 么?讲讲
  • NIO 与 BIO 有什么区别?
  • 理解 Netty 原理么

JVM

1 内存与 GC

  • GC 是什么?为什么要有 GC?
  • jvm 内存区域散布?gc 产生在哪些局部?
  • 你能保障 GC 执行吗?
  • 怎么获取 Java 程序应用的内存?堆应用的百分比?
  • 介绍一下垃圾回收过程。
  • 垃圾回收算法的理解。当初用的什么回收算法?
  • 什么时候会触发 FullGC
  • 当初应用的什么垃圾回收器?晓得哪些?讲讲 G1
  • 容器的内存和 jvm 的内存有什么关系?参数怎么配置?

2 异样与调优

  • 线上有什么 jvm 参数调整?
  • oom 问题排查思路
  • 线上问题排查,忽然长时间未响应,怎么排查,oom
  • cpu 使用率特地高,怎么排查?通用办法?定位代码?cpu 高的起因?
  • 频繁 GC 起因?什么时候触发 FGC?
  • 怎么获取 dump 文件?怎么剖析?

3 类加载器

  • 怎么实现本人的类加载器?
  • 类加载过程?
  • 初始化程序?

Spring

  • 不同版本的 Spring Framework 有哪些次要性能?
  • 讲一下 ioc、aop
  • ioc 怎么避免循环依赖
  • aop 的实现原理、动静代理过程
  • 辨别 BeanFactory 和 ApplicationContext?
  • spring bean 容器的生命周期是什么样的?
  • @Autowired 注解有什么用?
  • 应用 Spring 拜访 Hibernate 的办法有哪些?
  • Spring 解决申请的过程?

Redis

  • 为什么要用 redis / 为什么要用缓存(高性能、高并发)
  • redis 常见数据结构以及应用场景剖析(String、Hash、List、Set、Sorted Set)
  • Redis 常见异样及解决方案(缓存穿透、缓存雪崩、缓存预热、缓存降级)
  • 分布式环境下常见的利用场景(分布式锁、分布式自增 ID)
  • Redis 集群计划应该怎么做?都有哪些计划?
  • Redis 集群的主从复制模型是怎么的?
  • redis 长久化机制(怎么保障 redis 挂掉之后再重启数据能够进行复原)
  • 如何解决 Redis 的并发竞争 Key 问题?
  • 如何保障缓存与数据库双写时的数据一致性?
  • redis 的 zset 的应用场景?底层实现?为什么要用跳表?

MySQL

  • 事务的并发?事务隔离级别,每个级别会引发什么问题,MySQL 默认是哪个级别?
  • MySQL 的 MyISAM 与 InnoDB 两种存储引擎在,事务、锁级别,各自的实用场景?
  • 有哪些锁(乐观锁乐观锁),select 时怎么加排它锁?
  • sql 查问语句确定创立哪种类型的索引? 如何优化查问?
  • 什么是长期表,长期表什么时候删除?
  • mysql 脏页?
  • 分库分表有哪些策略?怎么保障 id 惟一?
  • 非关系型数据库和关系型数据库区别,劣势比拟?
  • 数据库的读写拆散、主从复制,主从复制剖析的 7 个问题?
  • MySQL 都有什么锁,死锁断定原理和具体场景,死锁怎么解决?
  • 数据库解体时事务的复原机制(REDO 日志和 UNDO 日志)?
  • 对 uuid 的了解?晓得哪些 GUID、Random 算法?
  • 主键选随机 id、uuid 还是自增 id?为什么?主键有序无序对数据库的影响?
  • 主从复制的过程?复制原理?怎么保障强一致性?

Kafka

  • 生产者和消费者的命令行是什么?
  • Kafka 怎么保证数据可靠性?
  • 讲讲 kafka 保护生产状态跟踪的办法
  • 为什么须要音讯零碎,mysql 不能满足需要吗?
  • Kafka 判断一个节点是否还活着有那两个条件?
  • Kafka 与传统 MQ 音讯零碎之间有三个要害区别?
  • kafka 分布式(不是单机)的状况下,如何保障音讯的程序生产?
  • kafka 如何不生产反复数据?比方扣款,咱们不能反复的扣

网络

  • tcptcp 有哪些机制确保可靠性?拥塞管制怎么实现?close_wait 太多怎么解决?为什么会呈现这种状况?
  • 讲讲三次握手,四次挥手?
  • keepalive 有什么用?Https 原理?晓得哪些 http 状态码有哪些?http 有哪些申请办法?put、post 实现上有什么区别?
  • 前后端拆散与不拆散的区别?各有什么优缺点?
  • 常见 web 攻打有哪些?理解 csrf 攻打么?
  • nginx 达到下限了怎么办?怎么对 nginx 负载平衡?dns?
  • nginx 负载平衡有哪些算法?各自有什么优缺点?
  • restful 的作用?有哪些长处和毛病?
  • 什么是 cdn?header 中波及到缓存的字段有哪些?cookie session 介绍一下 html 页面,怎么与后端交互?流程是什么?波及到哪些组件?http 协定,报文格式?

设计模式

  • 什么是设计模式?你是否在你的代码外面应用过?
  • Java 中什么叫单例设计模式?请用 Java 写出线程平安的单例模式
  • 在 Java 中,什么叫观察者设计模式?
  • 举一个用 Java 实现的装璜模式 (decorator design pattern)?它是作用于对象档次还是类档次?
  • 单例对于单例,你晓得哪些实现办法?实现一个懒加载单例双重校验锁为什么须要双重校验?
  • 应用工厂模式最次要的益处是什么?在哪里应用?

分布式

  • 有哪些分布式组件是你最相熟的,简略聊一聊。
  • cap 是指什么?mysql 满足 cap 中哪些?
  • 分布式锁有哪些形式能够实现?各有什么优缺点?
  • 什么是一致性 hash?本人实现一致性 hash,会用什么数据结构?

微服务

  • 微服务架构有哪些劣势?
  • 单片,SOA 和微服务架构有什么区别?
  • 什么是 RPC?怎么实现幂等性?
  • 什么是 REST / RESTful 以及它的用处是什么?
  • 配置核心有哪些选项?apollo 的架构?怎么无感实现已加载数据更新?
  • 讲一下熔断概念?熔断原理?令牌桶?熔断三个状态关系?
  • 熔断会影响性能么?有遇到过线上产生熔断么?不加会怎么?

算法题

根本都会问工夫复杂度

  • 有哪些罕用排序算法?
  • 手写快排,快排工夫复杂度是多少?
  • 快排算法是不是稳固的?什么是稳定性?
  • 给定一个字母组成的字符串,找出不含有反复字符的最长子串的长度。
  • 9 个硬币中有一个劣币,用天平秤,最坏几次?
  • 深度优先,广度优先
  • 括号匹配,工夫复杂度,空间复杂度
  • 单向链表的归并排序
  • 1g 大小文件,外面每行是最大 16k 的单词,限度内存 1m,统计单词频率最多的 100 个单词
  • 手写 100 位带小数的大数字的减法

你有什么想问的?+Offer 抉择?

  • 部门定位?岗位职责?目前在做什么业务?薪酬福利介绍?
  • 目前手头的 offer 状况?这些公司你本人有什么倾向性呢?最看重什么因素?想退出一个怎么样的团队?
  • 你的预期薪酬是多少?目前的薪资状况?
  • 最近一年的绩效状况?

补充一下我 2021 上半年的 offer 状况,其实是拿到了美团架构、快手主 app、猿辅导斑马、腾讯 csig 等意向书的。而且我感觉面试前的““练手””非常重要,像我后期“裸面”就硬生生的节约了阿里、蚂蚁、字节、Shopee 等的面试机会。所以,在这里我给大家伙的倡议就是肯定要做好短缺的筹备,不然也是耽误面试官和本人的工夫,并且面试的时候也会不知所措,毕竟肚子里没有货啊!

最初再三思考,还是抉择了快手,筹备下周一入职了!大家加油,跳槽面试无时不在,若是还没筹备好,我倡议等过完年去加入春招提前批也不错,然而这段空余的工夫你可不能节约,好好把握!

说到这儿了,最初在进去放一波福利吧!心愿能够帮忙到大家!

戳此 – 获取码 –Java

千千万万要记得:多刷题!!多刷题!!

之前算法是我的硬伤,前面硬啃了好长一段时间才补回来,算法才是程序员的灵魂!!!!

篇幅无限,以下只能截图分享局部的资源!!

(1)多线程(这里以多线程为代表,其实整顿了一本 JAVA 外围架构笔记集)

(2)刷的算法题(还有左神的算法笔记)

(3)面经 + 真题解析 + 对应的相干笔记(很全面)

(4)视频学习(局部)

ps:当你感觉学不进或者累了的时候,视频是个不错的抉择

其实以上我所分享的所有货色,大家可能在网上都能找到吧(PS:有很多本人整顿成册的是没有的呢),不过整顿起来会有点麻烦,有需要的话我这边能够收费分享给大家,但请肯定记住获取形式: 戳此 – 获取码 –Java

在这里,最初只一句话:祝大家 offer 拿到手软!!

退出移动版