环境搭建 zookeeper 下载安装(环境变量配置)使用3.4.14版本https://archive.apache.org/dist/zookeeper/zookeepe...
环境搭建 zookeeper 下载安装(环境变量配置)使用3.4.14版本https://archive.apache.org/dist/zookeeper/zookeepe...
相对synchronized不同点 可以设置超时时间(阻塞多久获取不到锁就放弃) 可以中断(阻塞状态可以被中断放弃) 可以设置多个条件变量(wait notify相当于是一个...
为什么需要线程池 线程也是对象,频繁的创建销毁,系统开销较大,也会影响垃圾回收。 因为系统中的线程数量如果过多,会导致上下文切换,影响效率。 线程池实现原理 需要一个容器存储...
Semaphore 信号量或者说叫管理器,它其实不是对资源加锁,而是控制最多N个线程可以同时访问资源。类似停车场,如果停满了,只能等待。 CountDownLatch 完成线...
synchronized原理 Monitor对象 每个对象都可以关联一个Monitor对象,如果使用 synchronized 给对象上锁(重量级)之后,该对象头的Mark ...
无锁 通过CAS+volatile来实现 CAS特点 基于乐观锁设计,不怕修改共享变量,修改了也没事,继续等待就可以。 synchronized是基于悲观锁,锁住操作,会导致...
AQS是阻塞式锁和相关同步器框架。 特点: 使用state来表示资源状态,子类维护状态,通过状态控制是否获取到锁getState - 获取 state 状态setState ...
HashMap HashMap存储的时key-value格式的实例。底层的存储结构是数组+链表格式。单个实例的格式 一些成员变量 transient Node<K,V>[] ...
String不可变说明 final说明 修饰类,标识该类不能被继承,该类的所有方法自动成为final方法 修饰方法,方法不能被重写 修饰基本数据类型,表示为常量,值不能修改 ...
强引用-如果对象还可达,发生OOM也不回收 Java大部分对象都是强引用的,对于强引用的对象,超过其作用域或者显示的复为null,则可能在垃圾回收时将其回收掉。 软引用(So...
举例:代码 反编译 执行流程1、一开始局部变量表和操作数栈都是空的 2、执行bipush 10,将10压入操作数栈中 3、执行istore_1,表示把栈顶元素存入局表变量表索...
一个进程对应一个运行时数据区,一个进程又存在多个线程,方法区和堆区是线程共享的,虚拟机栈、本地方法栈、程序计数器是线程私有的。 PC计数器 PC寄存器,用来存储虚拟机字节码指...
类文件结构 Class文件是一组以8字节为基础单位的二进制流,中间没有分隔符。 魔数:4个字节CA FE BA BE版本号:2个字节的次版本号2个字节的主版本号 常量池 接下...
inbound 事件和 outbound 事件的流向是不一样的, inbound 事件的流行是从下至上, 而 outbound 刚好相反, 是从上到下. 并且 inbound...