02 2022 档案

摘要:前言:前文讨论了volatile保证工作内存和主内存之间的数据一致性问题(可见性),但是运算的原子性没有保证,那么使用CAS就可以用来解决这个原子性运算问题。 CAS,即Compare And Swap,是一种典型乐观锁的实现。来自大佬的定义:CAS需要有3个操作数:内存地址V,旧的预期值A,即将要 阅读全文
posted @ 2022-02-23 20:24 小皮睡不醒 阅读(83) 评论(0) 推荐(0) 编辑
摘要:前言:volatile可以说是JVM提供的最轻量级的同步机制,人们常说volatile保证变量的可见性和禁止重排序,那么怎么理解呢?应该从Java内存模型说起。 一、可见性 由于处理器和内存的运算速度存在较大差异,为了保证效率,现代计算机引入读写速度接近内存读取速度的高速缓存区,这样一来就有了内存一 阅读全文
posted @ 2022-02-23 13:40 小皮睡不醒 阅读(54) 评论(0) 推荐(0) 编辑
摘要:问题的源头:HashMap数据结构是? 数组加链表,1.8增加了红黑树,那么为什么使用数组加链表?如果简单回答:“数组的特点查找快,增删慢,链表查找慢,增删快,数组加链表是结合两者优点”,其实这种描述并不对。在使用HashMap的时候数组插入并不慢,而链表增删快的特点也没有发挥出来,因为每次put都 阅读全文
posted @ 2022-02-22 08:02 小皮睡不醒 阅读(1759) 评论(0) 推荐(0) 编辑
摘要:工欲善其事,必先利其器,最近在学习源码,先学习下使用快捷键。 转载,原文链接:https://www.jianshu.com/p/ece572e6a5d2 Ctrl + e 查看最近打开的文件 caps + tab 同样也是查看最近打开的文件 ctrl + { 返回上一步编辑获取鼠标停留的位置 ct 阅读全文
posted @ 2022-02-21 23:16 小皮睡不醒 阅读(568) 评论(0) 推荐(0) 编辑
摘要:一·、equals 顾名思义为逻辑上的“相等”,不重写时Object类使用的是== 二、hashCode 每一个对象的散列码,同一个对象(或逻辑意义上相等)hashCode必须相同 三、== 八大基本数据类型比较时,比的是数据的大小。引用类型比较时,比较的是内存地址。 为什么重写equals时需要重 阅读全文
posted @ 2022-02-20 05:38 小皮睡不醒 阅读(33) 评论(0) 推荐(0) 编辑
摘要:前言:本文只是总结,具体实现需要结合源码理解,本问题旨在探讨跟着JDK的迭代,理解设计者的思维模式,思考为什么这么设计(Talk is cheap,show me the code) 有关HashMap的面试常见问题可以参考大佬的总结:https://blog.csdn.net/v123411739 阅读全文
posted @ 2022-02-20 05:34 小皮睡不醒 阅读(258) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示