首页 > 其他分享 >拿到鹅厂的Offer啦!

拿到鹅厂的Offer啦!

时间:2024-04-16 15:36:26浏览次数:25  
标签:缓存 查询 删除 Offer Spring 拿到 索引 线程 鹅厂

企鹅想必是大部分开发者梦寐以求的归宿了,除了有丰富的福利之外,还有优厚的薪资待遇,以及大厂光环,即使干几年跳槽了,也能有很多选择。

这不,训练营的小伙伴在拿下字节跳动之后,又拿下一城,顺便把腾讯也给收了:
4fd85302bcbf429015cd4c39c5373d8.png
但弱水三千只取一瓢饮,去哪家公司变成了最大的苦恼了,果然,优秀的人从来都不缺机会。

好了,那咱们这些吃瓜群众来看看腾讯面试题的难度吧,看看咱们这些普通人是不是也能搞定这场面试呢?

1.自我介绍一下?

好的自我介绍要讲清楚以下问题:

  1. 你是谁?我是张三,今年有N年工作经验/XXX大学毕业的24届学生。
  2. 你会啥?技术栈 -> 招聘岗位的技术要求去说。
  3. 你最大的成就是啥?-> 程序设计大赛的名次/XXX个项目。

2.ThreadLocal什么情况内存泄漏?

ThreadLocal 内存泄漏的场景有以下两个:

  1. 使用完 ThreadLocal 之后没有进行 remove 操作。
  2. ThreadLocal 相关的线程未关闭(ThreadLocal 生命周期和线程相关)。

3.Spring AOP实现原理?

AOP 底层实现是:动态代理

动态代理的具体实现:

  1. JDK Proxy
  2. CGLib

4.单例模式的好处?

  1. 整个生命周期只有一个对象 -> 对象复用
  2. 性能比较好(对象在使用前初始化好了)。

5.Redis内存结构知道哪些?

内存结构=数据类型,总共有以下几种:

  • 字符 -> 简单动态字符。
  • Hash -> 哈希表。
  • List -> 双向链表。
  • Set -> 哈希表 + 数组。
  • ZSet -> 压缩列表(ziplist)/紧凑列表(listpack) + 跳跃表(skiplist)。

6.说说Redis过期键的删除策略?

Redis 过期删除策略包含以下两种:

  1. 惰性删除:查询时在检查 key 是否过期 -> 内存利用率比较低。
  2. 定期删除:每秒检查设置了过期键的键值对,把过期的数据进行删除 -> 不是检索所有的数据进行删除、定期删除有最大的执行时间。

7.缓存雪崩以及如何解决?

缓存雪崩是指有大量缓存同时失效,造成了大量请求发送到数据库。

缓存雪崩的常见解决方案:

  1. 设置随机的过期时间。
  2. 缓存预热:当缓存快要过期之前,先去预加载缓存。
  3. 使用多级缓存:分布式缓存(Redis)+本地缓存。
  4. 使用限流手段。

8.MySQL为什么要选用B+树?

使用排除法:Hash、链表(查询慢)、AVL(二叉树添加、删除、查询性能低)、黑红树(二叉树添加、删除、查询性能低),所以只剩下多叉树:B 树、B+ 树。

B+ 相比于 B 树的优势:

  1. B+ 树 IO 次数更少,查询效率高。
  2. B+ 树有冗余节点,写入(新增/删除)通常改动小,速度快。
  3. B+ 节点之间使用有序链表来连接,所以更适合范围查询。

9.如何优化MySQL查询效率?

MySQL 查询效率优化的手段有以下几个:

  1. 使用正确的索引进行查询。
  2. 尽量能够实现索引覆盖(无需回表查询效率高)。
  3. 不能使用 select *。
  4. 不能进行函数运算。
  5. 数据量比较大的情况下,可以分库分表。
  6. 使用分布式数据库,例如 TiDB。

10.说说联合索引和覆盖索引?

联合索引是一种在数据库中对多个字段同时建立的索引,它包含这些字段的值,并且这些值在索引中有特定的顺序。

联合索引的特征是:

  1. 多字段组合:联合索引可以包含两个或更多的字段,这些字段的值一起构成了索引键。
  2. 有序性:组成联合索引的字段顺序是重要的,不同的顺序会创建不同的索引。例如,ABC 和 ACB 是两种不同的联合索引。
  3. 最左匹配原则:在使用联合索引进行查询时,SQL 语句中的条件应该涉及到联合索引的最左边的字段,这样才能充分利用索引的优势。如果不遵循最左匹配原则,索引可能不会被使用。

索引覆盖是数据库优化查询性能的重要手段之一,索引覆盖是指查询所需的所有列数据都可以从索引中直接获取,而不需要回表查询原始数据行。

例如,我们员工表中有一个联合索引 age,id,此时我们使用以下 SQL 查询时就是索引覆盖(无需进行回表查询):

select id from users where age>18

但如果是 select * 的话就需要回表查询了,因此索引覆盖是数据库优化查询性能的重要手段之一,能不使用 select * 就不要使用 select *。

11.JVM 永久代存的是什么内容?

永久代是 Hotspot JVM 在 JDK 7 之前的叫法,而 JDK 8 之后就更改为元空间了。

永久代包含的内容如下:

  • 类信息。
  • 常量池。
  • 静态变量(JDK 7 后移动到堆上)。
  • 字符串常量池(JDK 7 后移动到堆上)。

12.SpringBoot如何做到启动的时候注入一些Bean?

依靠的是自动装配机制 -> 自动装配的底层实现是反射机制

13.SpringBoot 默认的包扫描路径?

默认的包扫描路径是 Spring Boot 启动类(添加了 @SpringBootApplication 注解的类)的同级目录,为默认的包扫描路径。

14.TCP 为什么需要 4 次挥手?

  1. 第一次挥手原因(客户端发消息给服务器端):此请求一定需要,因为我要告诉对方要断开连接。
  2. 第二次挥手原因(服务器端消息应答):TCP 本身它有消息应答,我要告诉发送方我收到你的消息了。
  3. 第三次挥手原因(服务器端发消息给客户端):服务器端要将接收缓冲区的任务执行完之后,才能真正的断开连接。
  4. 第四次挥手原因(客户端消息应答):对第三次握手的确认应答,真正的断开连接的回应。

15.java.util.concurrent包下了解哪些?

JUC 下的四个著名类:

  1. ReentrantLock:加锁机制,保证线程安全。
  2. Semaphore:基于计数器实现的限流器。
  3. CountDownLatch:用于一个线程等待其他多个线程完成各自工作之后才能继续执行的场景。它像是一个倒计数器,当计数达到零时,等待的线程被唤醒继续执行。
  4. CyclicBarrier:允许一组线程相互等待,直到所有线程都准备好继续执行。与 CountDownLatch 不同的是,CyclicBarrier 可以重用,并且可以指定在释放等待之前每个线程必须完成的工作。

一起刷面试真题

我最近晚上 20:00~22:00 都在直播间带大家一起刷大厂面试真题,大家可以关注一波:
image.png

本文已收录到我的面试小站 www.javacn.site,其中包含的内容有:Redis、JVM、并发、并发、MySQL、Spring、Spring MVC、Spring Boot、Spring Cloud、MyBatis、设计模式、消息队列等模块。

标签:缓存,查询,删除,Offer,Spring,拿到,索引,线程,鹅厂
From: https://www.cnblogs.com/vipstone/p/18138249

相关文章

  • Offer必备算法23_两个数组dp_八道力扣题详解(由易到难)
    目录①力扣1143.最长公共子序列解析代码②力扣1035.不相交的线解析代码③力扣115.不同的子序列解析代码④力扣44.通配符匹配解析代码⑤力扣10.正则表达式匹配解析代码⑥力扣97.交错字符串解析代码⑦力扣712.两个字符串的最小ASCII删除和解析代码⑧力扣71......
  • 揭秘程序员面试技巧,助你轻松拿offer!
    上文程序员面试是求职者展现自身技术实力、沟通能力和职业素养的关键环节。为了在面试中脱颖而出,求职者需要掌握一些实用的面试技巧。以下将详细阐述程序员面试技巧,助您在面试中取得更好的成绩。一、面试前准备了解公司及职位在面试前,务必对目标公司及职位进行深入了解......
  • Offer必备算法22_优先级队列_堆_四道力扣题详解(由易到难)
    目录①力扣1046.最后一块石头的重量解析代码②力扣703.数据流中的第K大元素解析代码③力扣692.前K个高频单词解析代码④力扣295.数据流的中位数解析代码本篇完。①力扣1046.最后一块石头的重量1046.最后一块石头的重量难度简单有一堆石头,每块石头的重......
  • 鸿蒙开发火到不行!2024年你还等什么,高薪offer等你拿!
    一、鸿蒙生态:一场席卷科技圈的“狂风巨浪”鸿蒙操作系统,这个曾经只存在于华为内部研发名单上的神秘名字,如今已如狂风巨浪般席卷了整个科技圈。鸿蒙系统的诞生,不仅标志着我国在操作系统领域的重大突破,更是对全球科技格局的一次重新洗牌。它打破了传统操作系统的局限,实现了......
  • Offer必备算法21_回文串dp_六道力扣题详解(由易到难)
    目录①力扣647.回文子串解析代码②力扣5.最长回文子串解析代码③力扣1745.分割回文串IV解析代码④力扣132.分割回文串II解析代码⑤力扣516.最长回文子序列解析代码⑥力扣1312.让字符串成为回文串的最少插入次数解析代码本篇完。①力扣647.回文子串64......
  • 26岁女硕士:被省烟草局提前录取了,但我实在高兴不起来,因为我是学计算机的,华为也发了offe
    刷到一则网友爆料感觉挺有意思,一位女硕士研究生,本科学的是计算机专业,因为父母建议报考了省烟草局,没曾想被提前录取,而这位同学却怎么也高兴不起来。她的理由是不想年纪轻轻就过一眼望得到头的日子,想出去闯一闯。有的网友却不干了,省编制多好呀,比铁饭碗还多了一层金属!......
  • 剑指Offer题目笔记24(集合的组合、排序)
    面试题79:问题:​输入一个不含重复数字的数据集合,找出它的所有子集。解决方案:​使用回溯法。子集就是从一个集合中选出若干元素。如果集合中包含n个元素,那么生成子集可以分为n步,每一步从集合中取出一个数字,此时面临两个选择,将该数字添加到子集中或不将该数字添加到子集......
  • 剑指Offer题目笔记25(使用回溯法解决其他类型问题)
    面试题85:问题:​输入一个正整数n,输出所有包含n个左括号和n个右括号的组合,要求每个组合的左括号和右括号匹配。解决方案:​使用回溯法。因为要生成n个左括号和n个右括号,故需要走2n步,每一步生成一个括号,每一步都面临两个选项,既可能生成左括号也可能生成右括号。有限制条......
  • 如何拿到接口返回的消耗token
    SemanticKernel以下引用自官方案例Text模型使用KernelFunctionResultfunctionResult=awaitkernel.InvokePromptAsync(promptTestDataGeneration);CompletionsUsage?usage=FunctionResult.Metadata?["Usage"]asCompletionsUsage;//回答消耗的Token......
  • Offer必备算法20_队列_宽搜bfs_四道力扣题详解(由易到难)
    目录①力扣429.N叉树的层序遍历解析代码②力扣103.二叉树的锯齿形层序遍历解析代码③力扣662.二叉树最大宽度解析代码④力扣515.在每个树行中找最大值解析代码本篇完。①力扣429.N叉树的层序遍历429.N叉树的层序遍历难度中等给定一个N叉树,返回其节......