
为什么Java String哈希函数乘数为31?-20240421
哈喽,大家好,我是了不起。 今天给大家介绍一个底层数字问题------为什么Java String哈希函数乘数为31? ### 1、源码重现 {#1源码重现}  在这个实现中,`31` 被用作乘数。那么,为什么选择 31 作为乘数呢? ### 2、降低哈希冲突 {...
哈喽,大家好,我是了不起。 今天给大家介绍一个底层数字问题------为什么Java String哈希函数乘数为31? ### 1、源码重现 {#1源码重现}  在这个实现中,`31` 被用作乘数。那么,为什么选择 31 作为乘数呢? ### 2、降低哈希冲突 {...
哈喽,大家好,我是了不起。 今天给大家介绍一个很常见的数据库面试题:MySQL误删数据怎么办? 大家都知道数据库最重要的就是数据,数据安全是重中之重,对于这种事后面试题,其实面试者回答一些提前规划,比如提前避免误删数据的措施是很加分的。 ### 1、如何回答? {#1如何回答} 在面试中,如果被问到"MySQL误删数据怎么办?",可以按照以下步骤回答...
哈喽,大家好,我是了不起。 最近项目团队找人,我面试了很多人,非常喜欢问一个问题,Java线程池为什么先入队列再增加线程数? **Spring Cloud Gateway 优化:提升网关性能,突破瓶颈** **背景** 在一次压力测试中,我们惊讶地发现 Spring Cloud Gateway 的性能令人失望,阻碍了系统整体的效率。经过深入调查,我们发现罪魁祸首是 Ga...
<p>哈喽,大家好,我是了不起。</p> <p>最近项目团队找人,我面试了很多人,非常喜欢问一个问题,Java线程池为什么先入队列再增加线程数?</p> <p>在Java编程中,线程池是一种重要的并发编程工具,能够有效地管理线程的生命周期、控制并发资源的使用情况。</p> <p>关于线程池的理解...
哈喽,大家好,我是指北君。 自从开始学Java,就知道Java是一门面向对象编程的语言,所以在指北君眼中,Java就是完全面向对象的。 有一天老大问到我这个事情,我脱口而出,结果老大过来就是一jio...... 老大问我说static关键词是面向对象的吗?没有对象,能不能调用static关键词修饰的方法,变量,我瞬间哑口无言。 于是,我绞尽脑汁,写下了这篇文章,彻...
哈喽,大家好,我是指北君。 日常开发中,我们会使用各种工具类,利用封装好的轮子,能让我们的开发事半功倍。但是在JDK中,有一个特别的工具类------java.lang.Arrays.class,其源码实现还是挺精湛,接下来让我们来揭开它神秘的面纱。 java.util.Arrays 类是 JDK 提供的一个工具类,用来处理数组的各种方法,而且每个方法基本上都是静态方法,能直...
哈喽,大家好,我是指北君。 不知道大家开发过程中,有没有写过不是Java语言实现的方法,没有不要紧,因为指北君百分之百相信你一定用过不是Java语言实现的方法,为什么这么肯定呢? 我们前面在介绍 JDK 源码 Object.class 类的时候,讲过 getClass() 方法、hashCode()方法、clone() 方法,其中方法签名如下: |-----------...
<p>" 最近朋友小B去面试了,面试官问了代理模式,小B开心的差点笑出了声。原来就是因为小B刚好撸了这篇Java代理模式,然后就对面试官滔滔不绝。那么我们来看看Java中的代理模式是怎么回事,看完还不懂,直接来怼。</p> <h3>1 代理模式的模型。 {#1-代理模式的模型}</h3> <p>代理模...
大家好,我是指北君。 我的好朋友小 B 又又又被上司踢了一 jio,这次是因为写的代码太烂了。上司说可以用第三方库类快速实现的方法,小 B 不听还在坚持使用原生代码。 ![](http://static.51tbox.com/static/2024-12-05/col/c26504a32fd6ced32d79ef70d34c941c/872f1f4aaf214313b9dfd...
大家好,我是指北君。 俗话说,铁要趁热打,指北君在写完AQS第一篇文章后,就马不停蹄的输出第二篇了,这篇主要是讲AQS是如何解决互斥问题的,如果没看过AQS系列第一篇的童鞋,建议先把第一篇看完,它是后面两篇的基础。 说到互斥,我们第一个反应是什么?锁!对,AQS就是利用的锁来解决互斥的,那我们就来看看AQS是如何实现这个锁的。 AQS提供了两种锁,独占锁和共享锁。独占锁只...