面试官:Sentinel是如何实现限流的?

2 月 4 日
阅读 6 分钟
362
限流是一种通过控制系统对外提供的资源、服务或接口的访问数量或速率,以保护系统免受过载的一种策略。它的目的是确保系统能够在承受范围内提供稳定和可靠的服务,避免因过多的请求而导致系统崩溃、资源耗尽或响应延迟过高的情况发生。在 Sentinel 中,实现限流的方法有以下两种:通过代码方法实现限流。通过 Sentinel ...
封面图

面试官:SpringCloudGateway过滤器类型有哪些?

2 月 1 日
阅读 3 分钟
274
在 Spring Cloud Gateway 中,过滤器是在请求到达目标服务之前或之后,执行某些特定操作的一种机制。例如,它可以实现对传入的请求进行验证、修改、日志记录、身份验证、流量控制等各种功能。
封面图

面试官:什么是JIT、逃逸分析、锁消除、栈上分配和标量替换?

1 月 31 日
阅读 3 分钟
337
JIT、逃逸分析、锁消除、栈上分配和标量替换等都属于 JVM 的优化手段,JVM 优化手段是指在运行 Java 程序时,通过对字节码的编译和执行过程进行优化,以提升程序的性能和效率。
封面图

面试官:说一下零拷贝技术的实现原理?

1 月 29 日
阅读 2 分钟
250
零拷贝(Zero-copy)技术是一种计算机操作系统中用于提高数据传输效率的优化策略。在传统的数据传输过程中,需要将数据从一个缓冲区拷贝到另一个缓冲区,然后再传输给目标。这涉及到多次的 CPU 和内存之间的数据拷贝操作,会消耗 CPU 的时间和内存带宽。而零拷贝技术通过直接共享数据的内存地址,避免了中间的拷贝过程,...
封面图

解决跨域问题的8种方法,含网关、Nginx和SpringBoot~

1 月 25 日
阅读 8 分钟
814
跨域问题是浏览器为了保护用户的信息安全,实施了同源策略(Same-Origin Policy),即只允许页面请求同源(相同协议、域名和端口)的资源,当 JavaScript 发起的请求跨越了同源策略,即请求的目标与当前页面的域名、端口、协议不一致时,浏览器会阻止请求的发送或接收。
封面图

目前实习,要不要辞职回家过年?

1 月 23 日
阅读 2 分钟
180
A 同学是 25 届的学生,目前在国内某知名公司实习,该公司的薪资是出了名的高,普通应届生也能轻松拿到 30W 以上的年薪,而 A 同学的困惑是:
封面图

面试官:Redis持久化能关吗?怎么关?

1 月 22 日
阅读 1 分钟
308
数据持久化是指将数据从内存中,保存到磁盘或其他持久存储介质的过程,这样做的目的是为了保证数据不丢失。而 Redis 的持久化功能默认是开启的,这样做的目的也是为了保证程序的稳定性(防止缓存雪崩、缓存击穿等问题)和数据不丢失。Redis持久化能关吗?怎么关?Redis 持久化默认是开启的,但可以手动关闭。Redis 4 之...
封面图

面试官:SpringBoot如何实现缓存预热?

1 月 19 日
阅读 3 分钟
261
缓存预热是指在 Spring Boot 项目启动时,预先将数据加载到缓存系统(如 Redis)中的一种机制。那么问题来了,在 Spring Boot 项目启动之后,在什么时候?在哪里可以将数据加载到缓存系统呢?实现方案概述在 Spring Boot 启动之后,可以通过以下手段实现缓存预热:使用启动监听事件实现缓存预热。使用 @PostConstruct 注...
封面图

面试官:分库分表后如何生成全局ID?

1 月 17 日
阅读 5 分钟
258
分库分表后就不能使用自增 ID 来作为表的主键了,因为数据库自增 ID 只适用于单机环境,但如果是分布式环境,是将数据库进行分库、分表或数据库分片等操作时,那么数据库自增 ID 就会生成重复 ID,从而导致业务查询上的问题。所以此时,可以使用 UUID 或雪花 ID 来作为全局主键 ID。
封面图

百度面试,跪了!凉经分享

1 月 16 日
阅读 2 分钟
219
前两天有位朋友去应聘百度测试开发工程师,面试完自我感觉还行,手撕算法、手撕 SQL 都写出来了,八股也回答的不错,但被通知没通过一面。所以朋友就有点不解,于是就跑来问我原因。
封面图

面试官:如何保证本地缓存的一致性?

1 月 15 日
阅读 2 分钟
283
然而,这就像你有一辆超级豪华的房车一样,虽然它空间很大,设备很全,但你去市中心的时候,依然会开小轿车一样,为啥?好停车啊!所以,不同的缓存类型是有不同得使用场景的。
封面图

面试官:实际工作中哪里用到了自定义注解?

1 月 12 日
阅读 5 分钟
247
自定义注解可以标记在方法上或类上,用于在编译期或运行期进行特定的业务功能处理。在 Java 中,自定义注解使用 @interface 关键字来定义,它可以实现如:日志记录、性能监控、权限校验等功能。
封面图

面试官:单例Bean一定不安全吗?实际工作中如何处理此问题?

1 月 11 日
阅读 3 分钟
246
默认情况下,Spring Boot 中的 Bean 是非线程安全的。这是因为,默认情况下 Bean 的作用域是单例模式,那么此时,所有的请求都会共享同一个 Bean 实例,这意味着这个 Bean 实例,在多线程下可能被同时修改,那么此时它就会出现线程安全问题。
封面图

面试官:禁用Cookie后Session还能用吗?

1 月 10 日
阅读 2 分钟
253
Cookie 是由服务器在 HTTP 响应中发送给客户端(通常是浏览器)的一小段数据。客户端将这些信息保存在本地,并在后续的请求中自动将其发送回服务器。
封面图

面试官:分布式锁最终解决方案是RedLock吗?为什么?

1 月 9 日
阅读 5 分钟
225
RedLock 算法旨在解决单个 Redis 实例作为分布式锁时可能出现的单点故障问题,通过在多个独立运行的 Redis 实例上同时获取锁的方式来提高锁服务的可用性和安全性。
封面图

什么是布隆过滤器?如何实现布隆过滤器?

1 月 5 日
阅读 2 分钟
260
布隆过滤器(Bloom Filter)是一种空间效率极高的概率型数据结构,用于判断一个元素是否在一个集合中。它基于位数组和多个哈希函数的原理,可以高效地进行元素的查询,而且占用的空间相对较小,如下图所示:根据 key 值计算出它的存储位置,然后将此位置标识全部标识为 1(未存放数据的位置全部为 0),查询时也是查询对...
封面图

如何使用Redisson实现分布式锁?

1 月 2 日
阅读 5 分钟
230
在分布式系统中,当多个线程(或进程)同时操作同一个资源时,为了保证数据一致性问题,所以就需要一种机制来确保在同一时间只有一个线程(或进程)能够对资源进行修改,这就是分布式锁的作用。
封面图

2023年总结:不上班的这半年!

2023-12-30
阅读 2 分钟
226
2023 年 6 月 13 日,告别了待了近 3 年的公司,自己出来做 Java 培训了。做的事虽然和之前没太大区别,无非是备新课、带新班,只是没有了固定薪水,却而代之的是自己挣钱自己花。没了稳定,却得了自在。
封面图

面试官:说一下MySQL主从复制的原理?

2023-12-29
阅读 3 分钟
166
MySQL 主从复制(Master-Slave Replication)是一种数据复制技术,用于在多个数据库服务器之间的数据同步。在主从复制架构中,一个服务器被设置为主服务器(Master),充当数据源,其他服务器被设置为从服务器(Slave),用来复制主服务器的数据。
封面图

什么是意向锁?它和意向书有什么区别?

2023-12-28
阅读 1 分钟
150
最近受废话文学的影响,所以有了今天的这个标题,希望大家能喜欢。大家不喜欢也没关系,反正我喜欢。鲁迅先生曾经说过“我家门前有两棵树,一棵是枣树,另一棵还是枣树。”,由此可见,这老爷子算是把废话文学给玩明白了。希望大家也能,听君一席话,如听一席话吧。聊正题聊完闲篇,咱们说回正题:什么是意向锁?为什么需...
封面图

面试官:说说MVCC的执行原理?

2023-12-27
阅读 2 分钟
168
MVCC(Multi-Version Concurrency Control)是一种并发控制机制,用于解决数据库并发访问中,数据一致性问题。它通过在读写操作期间保存多个数据版本,以提供并发事务间的隔离性,从而避免了传统的锁机制所带来的资源争用和阻塞问题。
封面图

被面试官PUA了:创建索引时一定会锁表?

2023-12-25
阅读 2 分钟
152
索引主要是用于提高数据检索速度的一种机制,通过索引数据库可以快速定位到目标数据的位置,而不需要遍历整个数据集,它就像书籍的目录部分,有它的存在,可以大大加速查询的效率。
封面图

面试官:什么是虚拟线程?为什么要有虚拟线程?

2023-12-20
阅读 2 分钟
301
Java 中的虚拟线程,也叫做协程或“轻量级线程”,它诞生于 JDK 19(预览 API),正式发布于 JDK 21,它是一种在 Java 虚拟机(JVM)层面实现的逻辑线程,不直接和操作系统的物理线程一一对应,因此它可以减少上下文切换所带来的性能开销。
封面图

finally中的代码一定会执行吗?

2023-12-18
阅读 3 分钟
177
通常在面试中,只要是疑问句一般答案都是“否定”的,因为如果是“确定”和“正常”的,那面试官就没有必要再问了嘛,而今天这道题的答案也是符合这个套路。
封面图

终结篇:==和equals有什么区别?

2023-12-15
阅读 2 分钟
166
== 和 equals 有什么区别?这个问题本身不难,但是被问到的频率很高,且大部分人的回答都不够全面,让人听了有种“恨铁不成钢”的感觉,所以今天咱们就来好好聊聊这个问题。
封面图

面试官:如何实现链式调用?

2023-12-14
阅读 3 分钟
288
从 Java 8 开始,便引入了一种称为“流式 API”的编程风格,当然也被称为“链式设置”或“链式调用”。它主要是通过设置方法的返回值,让返回值变为对象自身,从而实现连续的方法调用,这种风格就叫做“链式设置”或“链式调用”。
封面图

效率工具:Hutool 嘎嘎香,被秀到了!

2023-12-13
阅读 6 分钟
249
Hutool 是一个小而全的 Java 工具类库,通过静态方法封装,降低相关 API 的学习成本,提高工作效率,使 Java 拥有函数式语言般的优雅,让 Java 语言也可以“甜甜的”。Hutool 中的工具方法来自每个用户的精雕细琢,它涵盖了 Java 开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担...

面试官:什么是JWT?为什么要用JWT?

2023-12-06
阅读 6 分钟
476
目前传统的后台管理系统,以及不使用第三方登录的系统,使用 JWT 技术的还是挺多的,因此在面试中被问到的频率也比较高,所以今天我们就来看一下:什么是 JWT?为什么要用 JWT?
封面图

京东面试:说说Cookie、Session和Token的区别?

2023-12-04
阅读 3 分钟
236
东子作为目前传统电商三巨头之一(其他还有阿里巴巴和拼多多),其面试题的难度也中规中矩,总体来说没有其他两家面试难度高,当然薪资也没有其他两家薪资高。
封面图

哈啰一面:如何优化大表的查询速度?

2023-12-01
阅读 3 分钟
301
哈啰出行作为阿里系共享单车的头部企业,在江湖中的知名度还是有的,而今天我们就来看一道哈啰 Java 一面中的经典面试题:当数据表中数据量过大时,应该如何优化查询速度?
封面图