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