摘要:
细节决定成败,面试本质上是“自我推销”的过程。如何在短短的几十分钟内打动面试官,从来都不是一个简单的问题。 所以怎么开场?怎么让面试官对我产生兴趣?非常关键。 所以,接下来,我们就来聊聊,如何进行自我介绍?如果一开场就让面试官对你印象深刻。 先说结论 好的自我介绍,一定要讲明白以下 4 点: 你是谁 阅读全文
摘要:
几年前,我在看新三国时,有一段记忆深刻的话,司马懿获胜之后说:“我挥剑只有一次,却磨了十几年”。但万万没想到的是,这句话在几年后的今天,在我的徒弟身上应验了。 事情是这样的,我徒弟是今年 24 届的学生,他在今年 7.4 号找到我,说自己马上就要秋招找工作了,但现在技术还没学好,并发编程、JVM 基 阅读全文
摘要:
在海量数据如何确定一个值是否存在?这是一道非常经典的面试场景题。 那怎么回答这个问题呢?接下来咱们就详细的聊一聊。 参考答案 判断一个值是否存在?通常有以下两种解决方案: 使用哈希表:可以将数据进行哈希操作,将数据存储在相应的桶中。查询时,根据哈希值定位到对应的桶,然后在桶内进行查找。这种方法的时间 阅读全文
摘要:
在 Spring Boot 中,拦截器和动态代理都是用来实现功能增强的,所以在很多时候,有人会认为拦截器的底层是通过动态代理实现的,所以本文就来盘点一下他们两的区别,以及拦截器的底层实现。 1.拦截器 拦截器(Interceptor)准确来说在 Spring MVC 中的一个很重要的组件,用于拦截 阅读全文
摘要:
分布式锁是一种用于保证分布式系统中多个进程或线程同步访问共享资源的技术。同时它又是面试中的常见问题,所以我们本文就重点来看分布式锁的具体实现(含实现代码)。 在分布式系统中,由于各个节点之间的网络通信延迟、故障等原因,可能会导致数据不一致的问题。分布式锁通过协调多个节点的行为,保证在任何时刻只有一个 阅读全文
摘要:
MyBatis 的缓存机制属于本地缓存,适用于单机系统,它的作用是减少数据库的查询次数,提高系统性能。 MyBaits 中包含两级本地缓存: 一级缓存:SqlSession 级别的,是 MyBatis 自带的缓存功能,默认开启,并且无法关闭,因此当有两个 SqlSession 访问相同的 SQL 时 阅读全文
摘要:
延迟队列是指当消息被发送以后,并不是立即执行,而是等待特定的时间后,消费者才会执行该消息。 延迟队列的使用场景有以下几种: 1. 未按时支付的订单,30 分钟过期之后取消订单。 2. 给活跃度比较低的用户间隔 N 天之后推送消息,提高活跃度。 3. 新注册会员的用户,等待几分钟之后发送欢迎邮件等。 阅读全文
摘要:
负载均衡策略是实现负载均衡器的关键,而负载均衡器又是分布式系统中不可或缺的重要组件。使用它有助于提高系统的整体性能、可用性、可靠性和安全性,同时支持系统的扩展和故障容忍性。对于处理大量请求的应用程序和微服务架构来说,负载均衡器是不可或缺的重要工具。 ## 负载均衡分类 负载均衡分为服务器端负载均衡和 阅读全文
摘要:
限流是一种控制访问速率的策略,用于限制系统、服务或API接口的请求频率或数量。它的目的是为了保护系统免受过多请求的影响,防止系统因过载而崩溃或变得不可用。限流是一种重要的性能优化和资源保护机制。 限流的好处有以下几个: - **保护系统稳定性**:如果系统接受太多请求,超出了其处理能力,可能导致系统 阅读全文
摘要:
首先来说 Redis 作为一个独立的三方系统,其天生的优势就是可以作为一个分布式系统来使用,因此使用 Redis 实现的锁都是分布式锁,理解了这个概念才能看懂本文所说的内容。 分布式锁的示意图,如下所示: ![image.png](https://cdn.nlark.com/yuque/0/2023 阅读全文
摘要:
HttpServletRequest 简称 Request,它是一个 Servlet API 提供的对象,用于获取客户端发起的 HTTP 请求信息。例如:获取请求参数、获取请求头、获取 Session 会话信息、获取请求的 IP 地址等信息。 那么问题来了,在 Spring Boot 中,获取 Re 阅读全文
摘要:
幻读是 MySQL 中一个非常普遍,且面试中经常被问到的问题,如果你还搞不懂什么是幻读?什么是 MVCC?以及 MySQL 中的锁?那么请好好收藏和阅读本篇文章,因为它非常重要。 ## RR 隔离级别 在 MySQL 中,RR 代表 Repeatable Read(可重复读),是数据库事务隔离级别中 阅读全文
摘要:
无论是在项目开发中,还是在面试中过程中,总会被问到或使用到并发编程来完成项目中的某个功能。 例如某个复杂的查询,无法使用一个查询语句来完成此功能,此时我们就需要执行多个查询语句,然后再将各自查询的结果,组装之后返回给前端了,那么这种场景下,我们就必须使用线程池来进行并发查询了。 > PS:磊哥做的最 阅读全文
摘要:
线程通信是指多个线程之间通过某种机制进行协调和交互,例如,线程等待和通知机制就是线程通讯的主要手段之一。 在 Java 中,线程等待和通知的实现手段有以下几种方式: 1. Object 类下的 wait()、notify() 和 notifyAll() 方法; 2. Condition 类下的 aw 阅读全文
摘要:
在分布式事务中,通常使用两阶段协议或三阶段协议来保障分布式事务的正常运行,它也是 X/Open 公司定义的一套分布式事务标准。 > X/Open 公司是由多家国际计算机厂商所组成的联盟组织,它建立之初是为了向 UNIX 环境提供标准。 分布式事务是指在分布式系统中,多个节点之间进行的事务操作。比如在 阅读全文
摘要:
话说 TP-LINK 联洲的秋招提前批已经开启很久了,6 月份就已经开启了,并且最近已经有人陆陆续续拿到口头 Offer 了,所以今天就来给大家介绍一下 TP-LINK 的面试流程和真题及答案解析。 ## 秋招提前批投递地址 官网投递地址:[https://hr.tp-link.com.cn/job 阅读全文
摘要:
问题来源于某客,如下图所示: ![image.png](https://cdn.nlark.com/yuque/0/2023/png/92791/1688455500257-b68d20d7-06b1-4105-82ab-5925feb4d3fd.png#averageHue=%23fbfaf9&c 阅读全文
摘要:
问题来源如下: > 问题链接:[https://www.nowcoder.com/discuss/493178141461041152](https://www.nowcoder.com/discuss/493178141461041152) # 答案解析 ## 1.解释脏读/不可重复读/幻读 - 阅读全文
摘要:
今天分享的这道题来自于蔚来的真实面试题。 Java 面试不可能不问 Redis,问到 Redis 不可能不问 Redis 的常用数据类型,问到 Redis 的常用数据类型,不可能不问跳跃表,当问到跳跃表经常会被问到跳跃表的查询和添加流程,所以接下来我们一起来看这道题的答案吧。 Redis 有序集合 阅读全文
摘要:
最近朋友圈被阿里的 Chat2DB 刷屏了,磊哥也是第一时间下载并体验了阿里巴巴的 Chat2DB,今天就迫不及待和大家分享一下。 ## 什么是 Chat2DB? Chat2DB 是一款由阿里巴巴开源免费的多数据库客户端工具,支持 windows、mac 本地安装,也支持服务器端部署,web网页访问 阅读全文
摘要:
问题如下: ![image.png](https://cdn.nlark.com/yuque/0/2023/png/92791/1687573711593-3af01c01-92b6-4a09-8a2c-355a7dde1033.png#averageHue=%23f9f8f7&clientId=u 阅读全文
摘要:
MVCC 和间隙锁是两种完全不同的机制,但它们的目的都是相同的,都是用来保证数据库并发访问的,我们先来看二者的定义。 MVCC 定义 MVCC 是多版本并发控制(Multi-Version Concurrency Control)的缩写,是一种并发控制的方法。 在 MVCC 中,每个读操作会看到一个 阅读全文
摘要:
限流的实现算法有很多,但常见的限流算法有三种:计数器算法、漏桶算法和令牌桶算法。 1.计数器算法 计数器算法是在一定的时间间隔里,记录请求次数,当请求次数超过该时间限制时,就把计数器清零,然后重新计算。当请求次数超过间隔内的最大次数时,拒绝访问。 计数器算法的实现比较简单,但存在“突刺现象”。 突刺 阅读全文
摘要:
熔断和降级都是系统自我保护的一种机制,但二者又有所不同,它们的区别主要体现在以下几点: 概念不同 触发条件不同 归属关系不同 1.概念不同 1.1 熔断概念 “熔断”一词早期来自股票市场。熔断(Circuit Breaker)也叫自动停盘机制,是指当股指波幅达到规定的熔断点时,交易所为控制风险采取的 阅读全文
摘要:
在 JVM 中,有两个非常重要的知识点,一个是 JVM 的内存布局(JVM 运行时的数据区域),另一个就是垃圾回收。而垃圾回收中又有两个重要的知识点,一个是如何确定 JVM 中的垃圾对象,另一个是使用不同的垃圾收集器进行垃圾回收。而本篇要讨论的是前者,后面的内容咱们下一篇再聊。 垃圾对象的判定有两种 阅读全文