
java面试题
文章平均质量分 83
码炫课堂-码哥
这个作者很懒,什么都没留下…
展开
-
HashMap 中的 key 为什么强烈推荐使用 String?
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-17 08:38:00 · 163 阅读 · 0 评论 -
什么是 COW?它是如何保证线程安全的?
它的核心思想是当线程尝试修改数据时,不直接在原有的数据上进行修改操作,而是先将原有数据复制一份,在副本上进行修改,修改完成后再将原数据的引用指向新修改过的副本。这样,读操作可以在不加锁的情况下并发进行,因为它们访问的是“不变”的集合。代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等。写采用加锁和复制的技术,保证了线程安全。原创 2025-02-17 08:30:15 · 164 阅读 · 0 评论 -
HashMap 的迭代方式有哪几种?
对于大多数场景,使用entrySet()遍历是最最佳的选择。如果追求代码简洁,推荐使用 Lambda 表达式。如果需要在迭代时修改 HashMap ,推荐使用迭代器entrySet()的方式。原创 2025-02-17 08:29:16 · 469 阅读 · 0 评论 -
HashMap 的线程不安全体现在哪些方面?
其实 HashMap 中存在很多线程安全的问题,还有类似下面这段代码:modCountsize连最基本的可见性都无法保证,何来的线程安全?有一点要注意,Java 8 中并不会出现 Java 7 中那样的死循环链。i < 100;j++) {});启动 100 个线程,每个线程向 HashMap 插入 1000 个数据,如果数据不会丢失,那么最终的结果就是100*1000,那事实呢?:通过该方法可以创建一个所有方法都是同步的Map。原创 2025-02-17 08:27:50 · 995 阅读 · 0 评论 -
HashMap 的扩容机制是怎样的?
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-17 08:26:32 · 711 阅读 · 0 评论 -
HashMap的负载因子为什么默认值设置成0.75?
代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等。作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题。空间利用率比较高,而且避免了相当多的Hash冲突,使得底层的链表或者是红黑树的高度比较低,提升了空间效率。,这个值是基于空间和时间成本之间的一种折中选择。总得来说,负载因子是。原创 2025-02-17 08:25:01 · 445 阅读 · 0 评论 -
HashMap的容量为什么一定是2^n?
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-14 07:48:28 · 665 阅读 · 0 评论 -
HashMap的数据结构是怎样的?
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-14 07:47:04 · 297 阅读 · 0 评论 -
你知道多少种解决 hash 冲突的方法?
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-14 07:45:47 · 1011 阅读 · 0 评论 -
HashMap和HashTable有什么区别?
代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等。作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题。联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。是同步的,这意味着它是线程安全的,它是所有公共方法都使用了同步锁,这确保了。原创 2025-02-14 07:44:00 · 237 阅读 · 0 评论 -
ArrayList、LinkedList与Vector有什么区别?
代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等。作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题。联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。他们在内部实现和功能特性上面存在一些差异。原创 2025-02-14 07:42:46 · 404 阅读 · 0 评论 -
为什么要谨慎使用 ArrayList 的 subList 方法
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-13 07:40:53 · 851 阅读 · 0 评论 -
ArrayList 是如何扩容的
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-13 07:39:17 · 328 阅读 · 0 评论 -
Set 接口是如何保证元素唯一性的?
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-13 07:38:00 · 467 阅读 · 0 评论 -
Java 对 List有几种排序的方式?
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-13 07:36:26 · 273 阅读 · 0 评论 -
什么是fail-fast 机制?
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-13 07:33:50 · 712 阅读 · 0 评论 -
Netty 的核心组件有哪些?各有什么作用?
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-12 18:30:22 · 266 阅读 · 0 评论 -
谈谈什么是零拷贝?
技术类型上下文切换次数CPU 拷贝次数DMA 拷贝次数read()write()422mmap +write()412sendfile()212sendfile()+ SG-DMA202零拷贝比传统的read()write()方式减少了 2 次上下文切换和 2 次 CPU 拷贝,性能至少提升了 1 倍。原创 2025-02-12 18:29:31 · 790 阅读 · 0 评论 -
什么是 Netty 的 ChannelPipeline,它是如何工作的?
pipeline 翻译为管道、流水线,在 Netty 这个大工厂中,ChannelPipeline 就像一条流水线,数据流过 ChannelPipeline,被一步一步地加工,最后得到一个成熟的工艺品。在 Netty 中,ChannelPipeline 是 Netty 的核心处理链,用于实现网络时间的动态编排和有序传播。它负责组织和编排各种 ChannelHandler,使他们能够有序地组织在一起,但实际的数据加工还是由 ChannelHandler 处理。原创 2025-02-12 18:27:58 · 861 阅读 · 0 评论 -
Netty 的 Channel 和 EventLoop 之间的关系是什么?
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-12 18:26:05 · 179 阅读 · 0 评论 -
NioEventLoopGroup 默认的构造函数会起多少线程?
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-12 08:01:16 · 178 阅读 · 0 评论 -
EventloopGroup 和 EventLoop了解么?他们两者的关系是什么?
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-12 08:00:14 · 615 阅读 · 0 评论 -
Netty 中的 ByteBuf 是什么,它和 Java NIO 的 ByteBuffer 有什么区别?
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-12 07:58:58 · 1152 阅读 · 0 评论 -
Java NIO 中有一个 Channel 了,为什么 Netty 还重新设计一个?
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-12 07:56:57 · 979 阅读 · 0 评论 -
Netty 中的 BootStrap 有什么作用?
..这个过程是不是非常像一个构造器模式?其实我们真的将其理解为一个构造器,它就是一个构造服务端、客户端的构造器。那我们是不是可以不使用 Bootstrap 来完成服务端和客户端的初始化呢?其实是可以的,只不过非常麻烦,既然 Netty 为我们提供一个这么好用的工厂类我们为什么不用呢?启动器有两个,一个是客户端,一个是服务端,如下:两个类的配置方式大致相同,我们以 ServerBootstrap 为介绍对象。原创 2025-02-12 07:55:13 · 632 阅读 · 0 评论 -
请说下你对 Netty 中Reactor 模式的理解
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-11 07:33:06 · 542 阅读 · 0 评论 -
BIO、NIO和AIO的区别?
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-11 07:31:53 · 545 阅读 · 0 评论 -
你知道几种 I/O 模型?
五种IO模型,层层递进,一个比一个性能高,当然模型的复杂度也一个比一个复杂。原创 2025-02-11 07:29:56 · 986 阅读 · 0 评论 -
你知道有多少种方式可以生成全局唯一 id?
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-11 07:26:17 · 859 阅读 · 0 评论 -
雪花算法的时钟回拨怎么解决?
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-11 07:24:24 · 727 阅读 · 0 评论 -
你知道雪花算法吗?简单介绍下?
百度uid-generator项目针对snowflake算法落地进行了一些改造,主要是对workId的获取上,对分布式集群环境下面,实例自动伸缩,docker容器化的场景,通过每次重启获取新的workId进行优化。提供了DefaultUidGenerator实时生成UID与CachedUidGenerator预生成UID两种方式。CachedUidGenerator通过借用未来时间来解决雪花算法sequence存在的并发限制,而且通过时间值递增的方式解决雪花算法存在的时间回拨问题。原创 2025-02-11 07:22:20 · 817 阅读 · 0 评论 -
单库系统如何迁移到分库分表系统?
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-10 21:00:15 · 892 阅读 · 0 评论 -
分库分表后,有哪些查询问题?该如何解决?
比如引入 ES,在 ES 中执行聚合操作。又或者引入数据库仓库等等。原创 2025-02-10 20:58:38 · 1064 阅读 · 0 评论 -
分库分表后,如何解决分页查询问题?
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-10 20:56:44 · 1283 阅读 · 0 评论 -
分库分表后,如何解决 join 的问题?
对于简单的列表查询或者详情查询时,码哥推荐采用应用层。原创 2025-02-10 20:53:03 · 347 阅读 · 0 评论 -
分库分表后的读扩散问题怎么解决?
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-10 08:39:05 · 440 阅读 · 0 评论 -
分库分表中的分表策略该如何选择?
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-10 08:37:29 · 754 阅读 · 0 评论 -
为什么 MySQL 中单表操作千万后就要分库分表?
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-10 08:35:53 · 313 阅读 · 0 评论 -
什么时候进行分库分表?
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-10 08:34:29 · 385 阅读 · 0 评论 -
我们为什么需要分库分表?
作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。原创 2025-02-10 08:32:44 · 397 阅读 · 0 评论