Fork me on GitHub
上一页 1 2 3 4 5 6 7 8 9 ··· 27 下一页
摘要: 在 Spring Boot 中,拦截器和动态代理都是用来实现功能增强的,所以在很多时候,有人会认为拦截器的底层是通过动态代理实现的,所以本文就来盘点一下他们两的区别,以及拦截器的底层实现。 1.拦截器 拦截器(Interceptor)准确来说在 Spring MVC 中的一个很重要的组件,用于拦截 阅读全文
posted @ 2023-09-15 11:39 磊哥|www.javacn.site 阅读(424) 评论(0) 推荐(1) 编辑
摘要: 分布式锁是一种用于保证分布式系统中多个进程或线程同步访问共享资源的技术。同时它又是面试中的常见问题,所以我们本文就重点来看分布式锁的具体实现(含实现代码)。 在分布式系统中,由于各个节点之间的网络通信延迟、故障等原因,可能会导致数据不一致的问题。分布式锁通过协调多个节点的行为,保证在任何时刻只有一个 阅读全文
posted @ 2023-09-13 10:07 磊哥|www.javacn.site 阅读(622) 评论(0) 推荐(2) 编辑
摘要: MyBatis 的缓存机制属于本地缓存,适用于单机系统,它的作用是减少数据库的查询次数,提高系统性能。 MyBaits 中包含两级本地缓存: 一级缓存:SqlSession 级别的,是 MyBatis 自带的缓存功能,默认开启,并且无法关闭,因此当有两个 SqlSession 访问相同的 SQL 时 阅读全文
posted @ 2023-09-12 14:59 磊哥|www.javacn.site 阅读(485) 评论(0) 推荐(2) 编辑
摘要: 延迟队列是指当消息被发送以后,并不是立即执行,而是等待特定的时间后,消费者才会执行该消息。 延迟队列的使用场景有以下几种: 1. 未按时支付的订单,30 分钟过期之后取消订单。 2. 给活跃度比较低的用户间隔 N 天之后推送消息,提高活跃度。 3. 新注册会员的用户,等待几分钟之后发送欢迎邮件等。 阅读全文
posted @ 2023-09-05 16:00 磊哥|www.javacn.site 阅读(532) 评论(1) 推荐(1) 编辑
摘要: 负载均衡策略是实现负载均衡器的关键,而负载均衡器又是分布式系统中不可或缺的重要组件。使用它有助于提高系统的整体性能、可用性、可靠性和安全性,同时支持系统的扩展和故障容忍性。对于处理大量请求的应用程序和微服务架构来说,负载均衡器是不可或缺的重要工具。 ## 负载均衡分类 负载均衡分为服务器端负载均衡和 阅读全文
posted @ 2023-09-01 15:36 磊哥|www.javacn.site 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 限流是一种控制访问速率的策略,用于限制系统、服务或API接口的请求频率或数量。它的目的是为了保护系统免受过多请求的影响,防止系统因过载而崩溃或变得不可用。限流是一种重要的性能优化和资源保护机制。 限流的好处有以下几个: - **保护系统稳定性**:如果系统接受太多请求,超出了其处理能力,可能导致系统 阅读全文
posted @ 2023-08-25 17:02 磊哥|www.javacn.site 阅读(1101) 评论(1) 推荐(3) 编辑
摘要: 首先来说 Redis 作为一个独立的三方系统,其天生的优势就是可以作为一个分布式系统来使用,因此使用 Redis 实现的锁都是分布式锁,理解了这个概念才能看懂本文所说的内容。 分布式锁的示意图,如下所示: ![image.png](https://cdn.nlark.com/yuque/0/2023 阅读全文
posted @ 2023-08-21 19:42 磊哥|www.javacn.site 阅读(38) 评论(0) 推荐(0) 编辑
摘要: HttpServletRequest 简称 Request,它是一个 Servlet API 提供的对象,用于获取客户端发起的 HTTP 请求信息。例如:获取请求参数、获取请求头、获取 Session 会话信息、获取请求的 IP 地址等信息。 那么问题来了,在 Spring Boot 中,获取 Re 阅读全文
posted @ 2023-08-14 17:49 磊哥|www.javacn.site 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 幻读是 MySQL 中一个非常普遍,且面试中经常被问到的问题,如果你还搞不懂什么是幻读?什么是 MVCC?以及 MySQL 中的锁?那么请好好收藏和阅读本篇文章,因为它非常重要。 ## RR 隔离级别 在 MySQL 中,RR 代表 Repeatable Read(可重复读),是数据库事务隔离级别中 阅读全文
posted @ 2023-08-09 17:27 磊哥|www.javacn.site 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 无论是在项目开发中,还是在面试中过程中,总会被问到或使用到并发编程来完成项目中的某个功能。 例如某个复杂的查询,无法使用一个查询语句来完成此功能,此时我们就需要执行多个查询语句,然后再将各自查询的结果,组装之后返回给前端了,那么这种场景下,我们就必须使用线程池来进行并发查询了。 > PS:磊哥做的最 阅读全文
posted @ 2023-08-04 11:25 磊哥|www.javacn.site 阅读(564) 评论(2) 推荐(1) 编辑
摘要: 线程通信是指多个线程之间通过某种机制进行协调和交互,例如,线程等待和通知机制就是线程通讯的主要手段之一。 在 Java 中,线程等待和通知的实现手段有以下几种方式: 1. Object 类下的 wait()、notify() 和 notifyAll() 方法; 2. Condition 类下的 aw 阅读全文
posted @ 2023-08-03 16:12 磊哥|www.javacn.site 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 在分布式事务中,通常使用两阶段协议或三阶段协议来保障分布式事务的正常运行,它也是 X/Open 公司定义的一套分布式事务标准。 > X/Open 公司是由多家国际计算机厂商所组成的联盟组织,它建立之初是为了向 UNIX 环境提供标准。 分布式事务是指在分布式系统中,多个节点之间进行的事务操作。比如在 阅读全文
posted @ 2023-07-27 09:24 磊哥|www.javacn.site 阅读(588) 评论(1) 推荐(0) 编辑
摘要: 话说 TP-LINK 联洲的秋招提前批已经开启很久了,6 月份就已经开启了,并且最近已经有人陆陆续续拿到口头 Offer 了,所以今天就来给大家介绍一下 TP-LINK 的面试流程和真题及答案解析。 ## 秋招提前批投递地址 官网投递地址:[https://hr.tp-link.com.cn/job 阅读全文
posted @ 2023-07-11 13:25 磊哥|www.javacn.site 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 问题来源于某客,如下图所示: ![image.png](https://cdn.nlark.com/yuque/0/2023/png/92791/1688455500257-b68d20d7-06b1-4105-82ab-5925feb4d3fd.png#averageHue=%23fbfaf9&c 阅读全文
posted @ 2023-07-05 15:23 磊哥|www.javacn.site 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 问题来源如下: > 问题链接:[https://www.nowcoder.com/discuss/493178141461041152](https://www.nowcoder.com/discuss/493178141461041152) # 答案解析 ## 1.解释脏读/不可重复读/幻读 - 阅读全文
posted @ 2023-06-29 11:41 磊哥|www.javacn.site 阅读(114) 评论(1) 推荐(0) 编辑
摘要: 今天分享的这道题来自于蔚来的真实面试题。 Java 面试不可能不问 Redis,问到 Redis 不可能不问 Redis 的常用数据类型,问到 Redis 的常用数据类型,不可能不问跳跃表,当问到跳跃表经常会被问到跳跃表的查询和添加流程,所以接下来我们一起来看这道题的答案吧。 Redis 有序集合 阅读全文
posted @ 2023-06-27 16:43 磊哥|www.javacn.site 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 最近朋友圈被阿里的 Chat2DB 刷屏了,磊哥也是第一时间下载并体验了阿里巴巴的 Chat2DB,今天就迫不及待和大家分享一下。 ## 什么是 Chat2DB? Chat2DB 是一款由阿里巴巴开源免费的多数据库客户端工具,支持 windows、mac 本地安装,也支持服务器端部署,web网页访问 阅读全文
posted @ 2023-06-26 09:30 磊哥|www.javacn.site 阅读(895) 评论(0) 推荐(0) 编辑
摘要: 问题如下: ![image.png](https://cdn.nlark.com/yuque/0/2023/png/92791/1687573711593-3af01c01-92b6-4a09-8a2c-355a7dde1033.png#averageHue=%23f9f8f7&clientId=u 阅读全文
posted @ 2023-06-25 08:59 磊哥|www.javacn.site 阅读(76) 评论(0) 推荐(0) 编辑
摘要: MVCC 和间隙锁是两种完全不同的机制,但它们的目的都是相同的,都是用来保证数据库并发访问的,我们先来看二者的定义。 MVCC 定义 MVCC 是多版本并发控制(Multi-Version Concurrency Control)的缩写,是一种并发控制的方法。 在 MVCC 中,每个读操作会看到一个 阅读全文
posted @ 2023-03-26 21:31 磊哥|www.javacn.site 阅读(282) 评论(1) 推荐(0) 编辑
摘要: 限流的实现算法有很多,但常见的限流算法有三种:计数器算法、漏桶算法和令牌桶算法。 1.计数器算法 计数器算法是在一定的时间间隔里,记录请求次数,当请求次数超过该时间限制时,就把计数器清零,然后重新计算。当请求次数超过间隔内的最大次数时,拒绝访问。 计数器算法的实现比较简单,但存在“突刺现象”。 突刺 阅读全文
posted @ 2023-02-20 07:36 磊哥|www.javacn.site 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 熔断和降级都是系统自我保护的一种机制,但二者又有所不同,它们的区别主要体现在以下几点: 概念不同 触发条件不同 归属关系不同 1.概念不同 1.1 熔断概念 “熔断”一词早期来自股票市场。熔断(Circuit Breaker)也叫自动停盘机制,是指当股指波幅达到规定的熔断点时,交易所为控制风险采取的 阅读全文
posted @ 2023-02-17 08:31 磊哥|www.javacn.site 阅读(2806) 评论(2) 推荐(0) 编辑
摘要: 在 JVM 中,有两个非常重要的知识点,一个是 JVM 的内存布局(JVM 运行时的数据区域),另一个就是垃圾回收。而垃圾回收中又有两个重要的知识点,一个是如何确定 JVM 中的垃圾对象,另一个是使用不同的垃圾收集器进行垃圾回收。而本篇要讨论的是前者,后面的内容咱们下一篇再聊。 垃圾对象的判定有两种 阅读全文
posted @ 2023-02-16 08:01 磊哥|www.javacn.site 阅读(481) 评论(0) 推荐(1) 编辑
摘要: 宽表在BI业务中比比皆是,每次建设BI系统时首先要做的就是准备宽表。有时系统中的宽表可能会有上千个字段,经常因为“过宽”超过了数据库表字段数量限制还要再拆分。 为什么大家乐此不疲地造宽表呢?主要原因有两个。 一是为了提高查询性能。现代BI通常使用关系数据库作为后台,而SQL通常使用的HASH JOI 阅读全文
posted @ 2023-02-15 08:20 磊哥|www.javacn.site 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 永久代和元空间都是 HotSpot 虚拟机中的概念,HotSpot 虚拟机是 Sun JDK 和 Open JDK 中自带的虚拟机,也是目前使用范围最广泛的 Java 虚拟机,当我们提到虚拟机时,大概率指的就是 HotSpot 虚拟机。 但从《Java 虚拟机规范》的层面来说,并没有所谓的“永久代” 阅读全文
posted @ 2023-02-13 08:37 磊哥|www.javacn.site 阅读(476) 评论(0) 推荐(1) 编辑
摘要: 对于 JVM(Java 虚拟机)来说,它有两个非常重要的区域,一个是栈(Java 虚拟机栈),另一个是堆。堆是 JVM 的存储单位,所有的对象和数组都是存储在此区域的;而栈是 JVM 的运行单位,它主管 Java 程序运行的。那么为什么它有这样的魔力?它存储的又是什么数据?接下来,我们一起来看。 1 阅读全文
posted @ 2023-02-09 08:40 磊哥|www.javacn.site 阅读(418) 评论(0) 推荐(1) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 27 下一页