首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏进阶之路

    聪明教你Java | 浅析红黑树

    就比如JDK8中的HashMap就用到了红黑树(当hash值相同时,会转换为链表,链表长度超过8时,就转化成红黑树),那么正好借此机会,和大家分享一下聪明在学习红黑树时的一些经验与心得。 这时候聪明产生了一个疑问:红黑树和AVL树有什么区别呢?什么时候用红黑树?什么时候用AVL树呢?AVL树是一棵严格的平衡树,它所有的子树都满足二叉平衡树的定义。 聪明有了疑问:为什么会用到旋转呢?其实道理很简单,添加或删除红黑树中的节点之后,红黑树就发生了变化,可能不满足红黑树的上述5条性质,当然也就不再是一颗红黑树了,变成了一颗普通的树。 这时候聪明有了一个问题:为什么要把新增加的节点着色为红色呢? 聪明:那它会违背哪一条特性呢?下面我们逐一进行分析:特性①:红黑树顾名思义,其节点不是黑色就是红色,我们已经给新增的节点着色为红色了,那就肯定不会违背特性①了。

    26410编辑于 2025-12-02
  • 来自专栏进阶之路

    聪明教你Java | 深入浅出聊 ThreadLocal

    今天大聪明就跟各位小伙伴深入浅出的聊一聊ThreadLocal。什么是ThreadLocalThreadLocal是一种线程隔离机制,它提供了在多线程场景下对共享变量访问的安全性。

    11920编辑于 2025-11-20
  • 来自专栏进阶之路

    聪明教你Java | 深入浅出聊 Kafka

    支持作者:点赞、关注、留言~在之前的博客中,聪明给各位小伙伴分享了一下如何在Win10环境下搭建Kafka,相信各位小伙伴都有了属于自己的一套Kafka环境。 今天咱们书接上文,聪明继续和大家深入浅出的聊一聊Kafka。 传送门:聪明教你kafka|Windows10系统下kafka安装及使用假设你在工作中维护了两个服务,分别是服务A和服务B,B服务每秒只能处理100个消息,但A服务却每秒发出200个消息。 在这种情况下,B服务是顶不住这么压力的,分分钟就被堆积如山的消息给压垮了。那么问题就来了,有没有办法让B服务在不被压垮的同时还能处理掉A服务发来的消息呢? Zookeeper相信各位聪明的小伙伴也发现了,我们刚刚讲到的组件实在是太多了,而且每个组件都有自己的数据和状态,所以还需要有个组件去统一维护这些组件的状态信息。

    18721编辑于 2025-12-10
  • 来自专栏进阶之路

    聪明教你Java | 深入浅出聊 ConcurrentHashMap

    支持作者:点赞、关注、留言~在Java的集合框架中,HashMap是一种非常常用的数据结构,它提供了键值对形式的存储和访问方式。然而,在多线程环境下,HashMap的线程安全性问题逐渐凸显出来。 为了解决这个问题,Java7引入了一种新的线程安全的哈希表实现——ConcurrentHashMap。 ConcurrentHashMap是Java中一种高效的、线程安全的哈希表实现,它在设计上采用了分段锁技术,将整个Hash桶进行了分段,每个分段上面都有锁存在。 那么今天大聪明就就跟大家一起聊一聊ConcurrentHashMap。

    35420编辑于 2025-11-24
  • 来自专栏进阶之路

    聪明教你Java | 深入浅出聊 MySQL

    🍊作者简介: 不肯过江东丶,一个来自二线城市的程序员,致力于用“猥琐”办法解决繁琐问题,让复杂的问题变得通俗易懂。 🍊支持作者: 点赞👍、关注💖、留言💌~

    15310编辑于 2025-12-04
  • 来自专栏进阶之路

    聪明教你Java | 深入浅出聊 ThreadPoolExecutor

    支持作者:点赞、关注、留言~在《阿里巴巴Java开发手册》中有这么一个强制要求:“线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,这样的处理方式让写的同学更加明确线程池的运行规则 那么今天大聪明就跟各位小伙伴来一起学习一下如何使用ThreadPoolExecutor创建线程池不允许使用Executors创建线程池在介绍ThreadPoolExecutor之前,我们先来解答一下上面的问题 :“为什么线程池不允许使用Executors去创建,而要通过ThreadPoolExecutor方式”线程池是Java中一个非常重要的并发编程工具,它可以在多线程环境下有效地管理和重复利用线程,从而提高程序的性能和资源利用率 在Java中,线程池通常使用Executors类中的静态方法来创建,例如Executors.newFixedThreadPool(intnThreads)、Executors.newCachedThreadPool priority;}publicThreadTask(){}publicThreadTask(intpriority){this.priority=priority;}/***当前对象和其他对象做比较,当前优先级就返回

    30510编辑于 2025-11-26
  • 来自专栏进阶之路

    聪明教你Java | 深入浅出聊 LinkedHashMap

    LinkedHashMap 简介LinkedHashMap 是 Java 提供的一个集合类,它继承自 HashMap,并在 HashMap 基础上维护一条双向链表,所以 LinkedHashMap 就拥有了以下特性 展开 代码语言: Java ; import java.util.Map; public class LRUCache<K, V> extends LinkedHashMap<K, V> { private final 展开 代码语言: Java 展开 代码语言: Java

    28620编辑于 2025-11-18
  • 来自专栏进阶之路

    聪明教你Java | 深入浅出聊 Java 内存模型

    Java内存模型的设计目标是在不同的硬件平台和操作系统上实现一致的多线程语义。它为我们提供了一组规则和保证,确保多线程程序的正确性和可预测性。那么今天大聪明就就跟大家一起聊一聊Java内存模型。 Java内存模型(JMM)JMM的由来提到Java内存模型,我们不得不提到另一个名词——JSRJSR是Java规范请求(JavaSpecificationRequest)的缩写。 通过JSR机制,Java社区能够共同参与到Java规范的制定过程中,提出自己的需求、建议和意见。这有助于确保Java平台的开放性和灵活性,使得Java技术能够不断地适应新的需求和发展趋势。 下面我们就一起来看看Happen-Before原则中的八规则程序顺序规则(ProgramOrderRule):同一个线程中,按照程序代码的顺序,前面的操作Happen-Before后面的操作。 Happen-Before原则是Java内存模型中的重要概念,它描述了操作之间的顺序关系。八Happen-Before规则确保了操作的正确执行顺序。

    14110编辑于 2025-11-19
  • 来自专栏进阶之路

    聪明教你Java | 深入浅出聊联合索引

    之前我们一起学习了聚簇索引和非聚簇索引,今天大聪明就再跟各位小伙伴分享一下关于联合索引的一些心得。

    14910编辑于 2025-11-21
  • 来自专栏进阶之路

    聪明教你Java | 深入浅出聊 CopyOnWriteArrayList 原理

    的原理CopyOnWriteArrayList开始聊CopyOnWriteArrayList原理之前,我们先来看看什么是CopyOnWriteArrayListCopyOnWriteArrayList是Java 是如何实现的线程安全展开代码语言:JavaAI代码解释publicclassCopyOnWriteArrayList<E>implementsList<E>,RandomAccess,Cloneable,java.io.Serializable 其实各位小伙伴开动一下聪明的小脑瓜应该可以猜得到~为了提升效率,CopyOnWriteArrayList的get方法中并未加锁,那么这就意味着,读操作可以在执行增、删、改操作中的任何一步读取数组里的值。

    17810编辑于 2025-11-25
  • 来自专栏进阶之路

    聪明教你Java | 深入浅出聊 Elastic search

    这个也好解决,我们可以不定期合并多个小的Segment从而生成一个的Segment文件,也就是段合并SegmentMerging,这样文件数量也就变的可控了。

    12720编辑于 2025-12-09
  • 来自专栏进阶之路

    聪明教你Java | 深入浅出聊 @Async 注解

    今天大聪明就跟各位小伙伴深入浅出的聊一聊@Async注解。@Async注解@Async注解的使用非常简单,需要两个步骤:在启动类上添加注解@EnableAsync,开启异步任务。 MyApplication.class,args);}}//异步服务类@ServicepublicclassMyService{@AsyncpublicStringdoSomething(){return"聪明教你 Java";}}下面我们一起来看看@Async的底层原理~@Async原理分析@Async可以异步执行任务,本质上是通过动态代理来实现的。

    49310编辑于 2025-11-19
  • 来自专栏进阶之路

    聪明教你Java | Win10 环境下安装部署 RabbitMQ

    🍊作者简介: 不肯过江东丶,一个来自二线城市的程序员,致力于用“猥琐”办法解决繁琐问题,让复杂的问题变得通俗易懂。 🍊支持作者: 点赞👍、关注💖、留言💌~

    44120编辑于 2025-12-11
  • 来自专栏进阶之路

    聪明教你Java | 深入浅出聊 JVM 调优

    引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。 Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。 各位小伙伴应该都听过这么一句话:Java是一个和平台无关的编程语言,之所以这么说,就是因为有Java虚拟机的存在,因为Java虚拟机知道底层硬件平台的指令长度和其他特性,同时Java源文件可以被编译成能被 因为JVM本身就是为这种低延时高并发吞吐的服务设计和优化的,我们真的很少很少需要去改变什么,所以即便是遇到了需要调优的情况,我们也应该注重于对应用本身进行调优(如果贸然的对JVM进行调优,或许引发的问题更大 而且也不知道为什么,好多公司在面试程序员的时候就喜欢抓着JVM不放,问一堆关于JVM的问题,其实我感觉这就有点舍本逐末了。

    30410编辑于 2025-11-28
  • 来自专栏进阶之路

    聪明教你Java | 深入浅出聊 Stream.parallel()

    支持作者:点赞、关注、留言~相信各位小伙伴对Stream都不陌生,它是Java8及以后版本中引入的一个新特性,用于处理集合数据。 StreamAPI中为我们提供了很多高效且易用的方法,聪明的好朋友——大明白就对这些方法情有独钟,但是就在前几天,却因为他在项目中使用了Stream.parallel()而引发了一个小小的意外情况.. Fork/Join框架是Java7中引入的用于支持并行计算的框架,是一种并行计算模式,用于解决可以被分解成更小的可并行任务的问题。该模式包含两个关键操作:Fork(分解)和Join(合并)。 Java平台提供了Fork/Join框架,用于实现该模式。它包括了一个线程池(ForkJoinPool)和任务(ForkJoinTask)的概念。任务可以是可分解的子问题,也可以是执行最终计算的任务。 在这里我们就先对Fork/Join框架做一个简单的介绍,后续聪明会单独出一篇博客对Fork/Join框架进行详细的介绍。

    14811编辑于 2025-12-13
  • 来自专栏进阶之路

    聪明教你Java | 深入浅出聊 Redis epoll 模型

    🍊作者简介: 不肯过江东丶,一个来自二线城市的程序员,致力于用“猥琐”办法解决繁琐问题,让复杂的问题变得通俗易懂。 🍊支持作者: 点赞👍、关注💖、留言💌~

    13210编辑于 2025-12-05
  • 来自专栏进阶之路

    聪明教你Java | Win10 环境下安装部署 RocketMQ

    =%JAVA_OPT%-XX:-OmitStackTraceInFastThrow"set"JAVA_OPT=%JAVA_OPT%-XX:-UseLargePages"set"JAVA_OPT=%JAVA_OPT =%JAVA_OPT%-server-Xms256m-Xmx256m"#2.注释以下3行remset"JAVA_OPT=%JAVA_OPT%-XX:+UseG1GC-XX:G1HeapRegionSize -XX:GCLogFileSize=30m"set"JAVA_OPT=%JAVA_OPT%-XX:-OmitStackTraceInFastThrow"set"JAVA_OPT=%JAVA_OPT%-XX :+AlwaysPreTouch"set"JAVA_OPT=%JAVA_OPT%-XX:MaxDirectMemorySize=15g"set"JAVA_OPT=%JAVA_OPT%-XX:-UseLargePages-XX :-UseBiasedLocking"set"JAVA_OPT=%JAVA_OPT%-cp%CLASSPATH%""%JAVA%"%JAVA_OPT%%*小结本人经验有限,有些地方可能讲的没有特别到位,

    60320编辑于 2025-12-11
  • 来自专栏进阶之路

    聪明教你Java | 谈谈你对 MySQL 存储引擎的见解

    :点赞、关注、留言~前几天大明白在面试的过程中因为没有回答出来Tomcat调优的问题就被面试官刷下来了,于是他利用假期恶补了一番后又去参加了一场面试,但是这次面试依然是以失败告终了...大明白失望的给聪明发了一条消息 我咋都没听过这个名词呢...”聪明看到消息后回复道:“MySQL你肯定用过吧,InnoDB你也知道吧,InnoDB就是存储引擎中的一种”大明白:“啊! 这个就是搜索引擎啊,我之前还真没听说过这个名词”聪明:“你还是了解的太少了,今天正好没啥事,就给你说说我对MySQL存储引擎的见解”MySQL的存储引擎MySQL中的数据用各种不同的技术存储在文件中,

    14820编辑于 2025-11-18
  • 来自专栏进阶之路

    聪明教你Java | 带你了解 Redis 中 RDB 与 AOF 的区别

    支持作者:点赞、关注、留言~聪明前两天刚写了一篇博客,同事看完博客后说:“写的不错,你在博客里提到了Binlog的三种模式,那你知道Redis里也有类似的东西嘛?” 聪明听完同事的话以后突然愣住了没错! 聪明果然还是不知道...不过这再一次激起了聪明的求知欲,我们今天就一起看看聪明的求知之路Redis中的RDB与AOF其实聪明的同事说的就是Redis中的RDB与AOF,他们类似于Binlog中的

    16710编辑于 2025-12-03
  • 来自专栏进阶之路

    聪明教你Java | 深入浅出聊分布式锁

    那么今天大聪明就和大家一起深入浅出的聊一聊分布式锁。为什么要用到锁在聊分布式锁之前,各位小伙伴可以先考虑一个问题:什么时候需要加锁?

    13910编辑于 2025-12-04
领券