![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
文章平均质量分 72
Java学习小屋
小火车Thomasc
呜呼啦呼,小火车变身
展开
-
Java学习----ConcurrentHashMap put()源码解析
ConcurrentHashMap源码解析ConcurrentHashMap底层与HashMap类似,都是哈希表+链表+红黑树。树化阈值、链化阈值、加载因子等主要参数默认值也都相同,用sizeCtl代替了扩容阈值,但sizeCtl的含义不止表示这个。而且加载因子好像没用到。重要参数/** * hash表初始化或扩容时的一个控制位标识量。 * 负数代表正在进行初始化或扩容操作 * -1代表正在初始化 * -N 表示有N-1个线程正在进行扩容操作原创 2022-01-14 12:58:06 · 342 阅读 · 0 评论 -
Java学习笔记----JUC并发编程(下)
13. JMM13.1、对Volatile 的理解Volatile 是 Java 虚拟机提供 轻量级的同步机制1、保证可见性2、不保证原子性3、禁止指令重排如何实现可见性volatile变量修饰的共享变量在进行写操作的时候回多出一行汇编:0x01a3de1d:movb$0×0,0×1104800(%esi);0x01a3de24**:lock** addl $0×0,(%esp);Lock前缀的指令在多核处理器下会引发两件事情。1)将当前处理器缓存行的数据写回到系统内存。2)这个写回原创 2022-01-08 15:26:29 · 273 阅读 · 0 评论 -
Java学习笔记----JUC并发编程(上)
文章目录并发编程1、进程和线程2、Synchronized 与Lock 的区别3、虚假唤醒4、集合不安全4.1、List不安全4.2、Set不安全4.3、Map不安全5、Callable6、JUC的常用辅助类6.1、CountDownLatch6.2、CyclickBarrier6.3、Semaphore7、读写锁8、阻塞队列8.1、BlockQueue8.2、同步队列9、线程池(重点)9.1、线程池的好处:9.2、线程池:三大方法9.3、七大参数9.4、拒绝策略9.5、如何设置线程池的大小10、四大函数式原创 2022-01-08 15:23:40 · 550 阅读 · 0 评论 -
Java学习----泛型详解
文章目录泛型优点泛型类泛型接口泛型方法泛型类中的泛型方法方法中的可变参数类型也可以为泛型。静态方法与泛型泛型在继承方面的细节泛型通配符常用泛型通配符'?'无界通配符基本用法extends和super上下界? 和 T 的区别泛型原理(泛型擦除)类型擦除类型擦除后保留的原始类型泛型方法调用编译时类型安全检测类型擦除与多态的冲突及其解决办法泛型类型不能是基本数据类型编译时集合的instanceOf协变、逆变与不变常见类型转换的三种特性泛型数组方法泛型实现协变和逆变小总结泛型在创建对象或调用方法的时候才明确下原创 2022-01-06 17:47:06 · 1212 阅读 · 0 评论 -
为什么 Lambda 表达式(匿名类) 不能访问非 final 的局部变量呢?
这里记一个知识点Lambda 表达式(匿名类) 不能访问非 final 的局部变量因为实例变量存在堆中,而局部变量是在栈上分配,存在于虚拟机栈的局部变量表中,Lambda 表达(匿名类) 有可能会在另一个线程中执行。如果在线程中要直接访问一个局部变量,可能线程执行时该局部变量已经被销毁了,而 final 类型的局部变量在 Lambda 表达式(匿名类) 中其实是局部变量的一个拷贝...原创 2022-01-06 10:31:59 · 670 阅读 · 0 评论 -
thymeleaf中${}和 #{} 和 *{}用法
遇到*和$的用法了,在网上搜了一下,记录一下$符号取上下文中的变量#符号取thymeleaf工具中的方法、文字消息表达式*{…}选择表达式一般跟在th:object后,直接选择object中的属性参考thymeleaf中${}和 #{} 和 *{}的作用和意义...转载 2021-11-22 11:20:08 · 1383 阅读 · 0 评论