就比如JDK8中的HashMap就用到了红黑树(当hash值相同时,会转换为链表,链表长度超过8时,就转化成红黑树),那么正好借此机会,和大家分享一下大聪明在学习红黑树时的一些经验与心得。 这时候大聪明产生了一个疑问:红黑树和AVL树有什么区别呢?什么时候用红黑树?什么时候用AVL树呢?AVL树是一棵严格的平衡树,它所有的子树都满足二叉平衡树的定义。 大聪明有了疑问:为什么会用到旋转呢?其实道理很简单,添加或删除红黑树中的节点之后,红黑树就发生了变化,可能不满足红黑树的上述5条性质,当然也就不再是一颗红黑树了,变成了一颗普通的树。 这时候大聪明有了一个问题:为什么要把新增加的节点着色为红色呢? 大聪明:那它会违背哪一条特性呢?下面我们逐一进行分析:特性①:红黑树顾名思义,其节点不是黑色就是红色,我们已经给新增的节点着色为红色了,那就肯定不会违背特性①了。
今天大聪明就跟各位小伙伴深入浅出的聊一聊ThreadLocal。什么是ThreadLocalThreadLocal是一种线程隔离机制,它提供了在多线程场景下对共享变量访问的安全性。
支持作者:点赞、关注、留言~在之前的博客中,大聪明给各位小伙伴分享了一下如何在Win10环境下搭建Kafka,相信各位小伙伴都有了属于自己的一套Kafka环境。 今天咱们书接上文,大聪明继续和大家深入浅出的聊一聊Kafka。 传送门:大聪明教你学kafka|Windows10系统下kafka安装及使用假设你在工作中维护了两个服务,分别是服务A和服务B,B服务每秒只能处理100个消息,但A服务却每秒发出200个消息。 在这种情况下,B服务是顶不住这么大压力的,分分钟就被堆积如山的消息给压垮了。那么问题就来了,有没有办法让B服务在不被压垮的同时还能处理掉A服务发来的消息呢? Zookeeper相信各位聪明的小伙伴也发现了,我们刚刚讲到的组件实在是太多了,而且每个组件都有自己的数据和状态,所以还需要有个组件去统一维护这些组件的状态信息。
那么今天大聪明就就跟大家一起聊一聊ConcurrentHashMap。
那么今天大聪明就跟各位小伙伴来一起学习一下如何使用ThreadPoolExecutor创建线程池不允许使用Executors创建线程池在介绍ThreadPoolExecutor之前,我们先来解答一下上面的问题 priority;}publicThreadTask(){}publicThreadTask(intpriority){this.priority=priority;}/***当前对象和其他对象做比较,当前优先级大就返回
🍊作者简介: 不肯过江东丶,一个来自二线城市的程序员,致力于用“猥琐”办法解决繁琐问题,让复杂的问题变得通俗易懂。 🍊支持作者: 点赞👍、关注💖、留言💌~
🍊作者简介: 不肯过江东丶,一个来自二线城市的程序员,致力于用“猥琐”办法解决繁琐问题,让复杂的问题变得通俗易懂。 🍊支持作者: 点赞👍、关注💖、留言💌~
之前我们一起学习了聚簇索引和非聚簇索引,今天大聪明就再跟各位小伙伴分享一下关于联合索引的一些心得。
这个也好解决,我们可以不定期合并多个小的Segment从而生成一个大的Segment文件,也就是段合并SegmentMerging,这样文件数量也就变的可控了。
其实各位小伙伴开动一下聪明的小脑瓜应该可以猜得到~为了提升效率,CopyOnWriteArrayList的get方法中并未加锁,那么这就意味着,读操作可以在执行增、删、改操作中的任何一步读取数组里的值。
今天大聪明就跟各位小伙伴深入浅出的聊一聊@Async注解。@Async注解@Async注解的使用非常简单,需要两个步骤:在启动类上添加注解@EnableAsync,开启异步任务。 MyApplication.class,args);}}//异步服务类@ServicepublicclassMyService{@AsyncpublicStringdoSomething(){return"大聪明教你学
因为JVM本身就是为这种低延时高并发大吞吐的服务设计和优化的,我们真的很少很少需要去改变什么,所以即便是遇到了需要调优的情况,我们也应该注重于对应用本身进行调优(如果贸然的对JVM进行调优,或许引发的问题更大 而且也不知道为什么,好多公司在面试程序员的时候就喜欢抓着JVM不放,问一大堆关于JVM的问题,其实我感觉这就有点舍本逐末了。
那么今天大聪明就就跟大家一起聊一聊Java内存模型。 下面我们就一起来看看Happen-Before原则中的八大规则程序顺序规则(ProgramOrderRule):同一个线程中,按照程序代码的顺序,前面的操作Happen-Before后面的操作。 八大Happen-Before规则确保了操作的正确执行顺序。这些规则为开发者提供了一个清晰的指导,帮助他们编写正确且高效的并发代码。
🍊作者简介: 不肯过江东丶,一个来自二线城市的程序员,致力于用“猥琐”办法解决繁琐问题,让复杂的问题变得通俗易懂。 🍊支持作者: 点赞👍、关注💖、留言💌~
StreamAPI中为我们提供了很多高效且易用的方法,大聪明的好朋友——大明白就对这些方法情有独钟,但是就在前几天,却因为他在项目中使用了Stream.parallel()而引发了一个小小的意外情况.. 在这里我们就先对Fork/Join框架做一个简单的介绍,后续大聪明会单独出一篇博客对Fork/Join框架进行详细的介绍。
🍊作者简介: 不肯过江东丶,一个来自二线城市的程序员,致力于用“猥琐”办法解决繁琐问题,让复杂的问题变得通俗易懂。 🍊支持作者: 点赞👍、关注💖、留言💌~
🍊作者简介: 不肯过江东丶,一个来自二线城市的程序员,致力于用“猥琐”办法解决繁琐问题,让复杂的问题变得通俗易懂。 🍊支持作者: 点赞👍、关注💖、留言💌~
:点赞、关注、留言~前几天大明白在面试的过程中因为没有回答出来Tomcat调优的问题就被面试官刷下来了,于是他利用假期恶补了一番后又去参加了一场面试,但是这次面试依然是以失败告终了...大明白失望的给大聪明发了一条消息 我咋都没听过这个名词呢...”聪明看到消息后回复道:“MySQL你肯定用过吧,InnoDB你也知道吧,InnoDB就是存储引擎中的一种”大明白:“啊! 这个就是搜索引擎啊,我之前还真没听说过这个名词”大聪明:“你还是了解的太少了,今天正好没啥事,就给你说说我对MySQL存储引擎的见解”MySQL的存储引擎MySQL中的数据用各种不同的技术存储在文件中,
支持作者:点赞、关注、留言~大聪明前两天刚写了一篇博客,同事看完博客后说:“写的不错,你在博客里提到了Binlog的三种模式,那你知道Redis里也有类似的东西嘛?” 大聪明听完同事的话以后突然愣住了没错! 大聪明果然还是不知道...不过这再一次激起了大聪明的求知欲,我们今天就一起看看大聪明的求知之路Redis中的RDB与AOF其实大聪明的同事说的就是Redis中的RDB与AOF,他们类似于Binlog中的
今天大聪明就跟各位小伙伴聊一聊这个问题。