腾讯Java岗面试,被“锁”给搞晕了?这样复习,春招二战没问题

迈入2020年,我们开始了崭新的一年,也要学会跟过去告别。对于2019年我的个人总结,唯有2个字:可惜!实际上,在2019年末之际,我去腾讯面试了一波,却卡在了第三面,主要是关于“锁”方面的面试题没有答得太好,不过并不气馁,今年春节比以往来得早一些,所以做好准备,春招二战,我也相信自己是没有太大的问题的。

下文的内容主要是分享一下我面试腾讯的一个面试题,以及我个人面试过后的一个知识梳理和总结。内容包括了许多的学习资料和文档,有需要的朋友直接私信我【腾讯】即可免费领取~

腾讯Java岗面试,被“锁”给搞晕了?这样复习,春招二战没问题

腾讯Java岗面经:3面被挂,全败在了“锁”上

腾讯三面核心面试题:

  • 进程和线程有什么区别?进程之间的通信方式有哪些?线程呢?
  • 什么是死锁,如何避免死锁,死锁和饥饿有什么关系?可以给我手写一个产生饥饿的情况吗?如何避免死锁,银行家算法知道吗?
  • 怎么设置一个key的过期时间?
  • redis中的哈希槽你知道吧?
  • 那他和一致性哈希有什么区别呢?
  • 一致性哈希里的虚拟节点是什么?
  • 你用了分布式锁,那分布式锁有哪些实现方式?都有哪些优缺点?
  • Synchronized和Lock哪个更好?
  • HashMap中的get()方法是如何实现的?
  • HashMap可以用在哪些场景?
  • JVM,垃圾回收机制,内存划分等
  • SQL优化,常用的索引?
  • 两个10G的文件,里面是一些url,内存只有1G,如何将这两个文件合并,找到相同的url?
  • 1000个多并发线程,10台机器,每台机器4核的,设计线程池大小。
  • 代码题:两个有序数组,数组中存在重复数字,合并成一个有序数组,去除重复数字。
  • 什么情况会出现雪崩,以及如何应对?
  • 负载均衡的原理
  • 数据库事务属性
  • 与同事沟通的时候,如果遇到冲突了如何解决?
  • 工作中觉得哪方面欠缺?

腾讯面试题答案:

腾讯Java岗面试,被“锁”给搞晕了?这样复习,春招二战没问题

面试必备之“锁”集合

01 面试必备之乐观锁和悲观锁

  • 说一下什么是乐观锁?什么是悲观锁?
  • 简单描述一下悲观锁和乐观锁的使用场景
  • 说一下乐观锁常见的实现方式
  • 乐观锁有什么缺点吗?
  • CAS与Synchronized的使用情景

02 面试必备之分布式锁

  • 为什么用分布式锁?
  • 基于Redis实现分布式锁(实现原理)
  • 基于zookeeper实现分布式锁
  • 讲讲分布式锁的实现与应用场景
  • 讲一讲分布式锁应该具备的条件
  • Redis分布式锁如何续期?
  • 为什么用了分布式锁还出现超卖?

03 面试必备之MySQL锁

  • MySQL 中有哪几种锁?
  • 说一下锁的优化策略
  • 什么是锁?说一下基本类型
  • 如何加表锁?
  • 说一说MyISAM的并发锁
  • InnoDB锁
  • 说一下行锁的实现
  • 什么是死锁?锁等待?如何优化这类问题?通过数据库哪些表可以监控?

04 一个读写锁面试题

  • 一个Spring Bean类中有一个服务地址信息的成员变量,这个bean类中成员函数会根据服务地址调用其接口,同时这个服务地址信息可能会在运行时被用户修改,这种情况下是否存在线程安全问题?
  • 那有哪些方法解决这个问题?
  • 简单讲一下Java读写锁,你会怎么用?
  • 你知道Java读写锁实现原理吗?

面试题答案:

腾讯Java岗面试,被“锁”给搞晕了?这样复习,春招二战没问题

制定复习计划,备战春招,二战腾讯,定拿offer

这次面试腾讯没有拿到好的结果,实际上也在我的意料之中,表面是被“锁”给搞晕了,实际上还是自己的知识储备不足,因此准备春招二战,一定要有一个系统性的学习计划,把知识都要复习到位,做到查漏补缺。

(一)Java面试手册

这份Java面试手册,一共整理了350道一线大厂Java岗的核心面试题,基本上各个知识面都包括了,刷完这本面试手册,差不多就能够对大厂喜欢问什么,做到心中有数了。

  • 性能优化面试专栏(Tomcat+JVM+Mysql)
  • 微服务架构面试专栏(SpringCloud+SpringBoot+Dubbo)
  • 并发编程高级面试专栏
  • 开源框架面试题专栏(Spring+SpringMVC+MyBatis)
  • 分布式面试专栏(分布式限流+分布式通讯+分布式数据库)
腾讯Java岗面试,被“锁”给搞晕了?这样复习,春招二战没问题

(2)阅读学习笔记

关于一些技术知识点,实际上光看书本或面试题是很难加深理解的,所以我们平日可以阅读一些大佬们写的学习笔记。目前,我手上也整理了一些,这里以Redis笔记和SpringBoot笔记为例吧。

  • Redis学习笔记:

简单来说redis就是一个数据库不过与传统数据库不同的是redis的数据是存在内存中的所以存写速度非常快,因此redis被广泛应用于缓存方向。另外, redis也经常用来做分布式锁。redis 提供了多种数据类型来支持不同的业务场景。除此之外, redis支持事务、持久化、 LUA脚本、LRU驱动事件、多种集群方案。

这份Redis学习笔记,实际上对学习Redis是很有帮助的,能够帮助你加快对Redis 的理解和应用。

腾讯Java岗面试,被“锁”给搞晕了?这样复习,春招二战没问题

  • Spring Boot学习笔记

相信小伙伴们在使用 Spring 或 SpringMVC 的过程中,或多或少会被各种配置问题所牵绊,这些配置不仅徒增工作量,而且在跨平台部署时容易出现问题。

因此,Spring Boot 应运而生,它集成了大量常用的第三方库配置(例如 Jackson、JDBC、MongoDB、Redis、Mail 等等),这些第三方库几乎都可以零配置的开箱即用,可以帮助我们快速搭建一个项目,从而让开发者能够更加专注于业务逻辑。

这份Spring Boot学习笔记,能够让我们快速了解到SpringBoot,从入门到进阶,深入理解。

腾讯Java岗面试,被“锁”给搞晕了?这样复习,春招二战没问题

(3)理清思路,提升信心

无论是学习还是面试,都要在自己脑海中有一个清晰的思路,也就是至少自己有一个知识性的脉络在脑海中,这样也能够提升自己的自信心,应对面试官的种种。

关于思路,我自己也是整理了一个比较清晰的脉络大纲,无论是现在的复习也好,还是日后工作以后不断学习来提升自己,都会按照这个大纲一步一步,当我全部掌握时,相信这个台阶上升的不只一星半点。

  • JVM和性能优化为例
腾讯Java岗面试,被“锁”给搞晕了?这样复习,春招二战没问题

腾讯Java岗面试,被“锁”给搞晕了?这样复习,春招二战没问题

写在最后

马上春招就要来临,实际上春招的竞争力要比秋招大的多,毕竟还有考研考公大军的注入,因此要想在春招中拔得头筹,唯有提升自己的竞争力。

最后提醒一次:以上所有的资料均可以免费分享,有需要的朋友,只需要你转发+评论此文,关注我,然后私信【腾讯】即可获取关键词~


分享到:


相關文章: