BST 二叉查找树就是一颗二叉树,他的左节点比父节点要小,右节点比父节点要大。他的高度决定的查找效率。 当查找BST时,先进行当前节点比较: 如果相等的话就返回当前节点; 如...
BST 二叉查找树就是一颗二叉树,他的左节点比父节点要小,右节点比父节点要大。他的高度决定的查找效率。 当查找BST时,先进行当前节点比较: 如果相等的话就返回当前节点; 如...
1.WeakReference的referent指向ThreadLocal的原因 ThreadLocal作为WeakReference的referent,只要ThreadLo...
前言 从PC互联网到移动互联网,B/S架构演化为多端/S架构。后端服务SOA模式下的重服务或单服务架构,逐渐按功能模块被切分成微服务架构(延伸阅读《软件工程和架构发展简史》)...
看到第一个图就知道错了,为什么错自己去看官方文档,路过的人不要信
JVM系列(三)内存划分我们的java代码经过了类加载到了JVM运行时候,就需要使用到多块内存空间,不同的空间存放不同的数据,配合代码流程,才能让程真正运行起来。 JVM内存划分在JDK...
redis cluster 集群之间 如何实现通讯 1.gossip 协议pingpongmeet2.10000节点3.交换信息 内存淘汰策略 数据结构 sort set 为...
偏向所锁,轻量级锁及重量级锁 偏向所锁,轻量级锁都是乐观锁,重量级锁是悲观锁。 一个对象刚开始实例化的时候,没有任何线程来访问它的时候。它是可偏向的,意味着,它现在认为只可能...
5. InnoDB 行锁 5.1 行锁介绍 行锁特点 :偏向InnoDB 存储引擎,开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。InnoDB...
对,这就是最简单的锁,看不懂建议先把sql执行顺序复习一遍
并发减库存,怎么保证不超卖?并发减库存 秒杀的场景有很多,比如:抢购、抢票、抢红包等等。总之,就是在极短时间内有大量的请求。 我们都知道,这种系统设计的大方向就是限流,即通过层层过滤,最终只让相对较少的...
面试回答这个直接就可以走人了,一点原理不说
HashMap和HashTable的区别1、线程是否安全:HashMap是非线程安全的,HashTable是线程安全的;HashTable内部的方法基本上都经过synchronized修饰。(如果你要保保证线程安全...
1. b树没有双向指针,b+树有,可有用来范围查找,同理hash结构索引也没办法范围查找 2. b树可以在非叶子节点存储数据,b+树只可以在叶子节点存储数据,故b+树可以存储...
最近在项目中遇到了类似“秒杀”的业务场景,在本篇博客中,我将用一个非常简单的demo,阐述实现所谓“秒杀”的基本思路。 业务场景 所谓秒杀,从业务角度看,是短时间内多个用户“...
前言 如果在日常开发中我们用new对象的方式,若多个构造函数相互依赖的话,程序会在运行时一直循环调用最终导致内存溢出,那么spring是利用三级缓存解决循环依赖的,让开发者无...
Spring什么时候实例化bean,首先要分2种情况 第一:如果你使用BeanFactory作为Spring Bean的工厂类,则所有的bean都是在第一次使用该Bean的...
大家都知道,局部变量是存在于栈里的,随着方法的调用而产生,随着方法的执行完毕而消失,因为栈是线程私有的,所以局部变量也是线程安全的。 那成员变量又是存在于哪里呢,网上有的...
类什么时候被加载/类加载时机: 第一:生成该类对象的时候,会加载该类及该类的所有父类; 第二:访问该类的静态成员的时候; 第三:class.forName("类名");