![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
优雅代码
文章平均质量分 86
菜鸟猫喵喵
自己给自己点赞的屑
展开
-
异或有什么神奇之处(应用)?
什么是异或?简单理解就是:首先它是对于二进制:相同为0 不同为1;定义:1 ⊕ 1 = 00 ⊕ 0 = 01 ⊕ 0 = 10 ⊕ 1 = 1异或有什么神奇之处(应用)?1)快速比较两个值一般我们使用这个 a==b如果两个数相等 ,a ^ b 的结果为零。所以现在我们可以这样if(a^b == 0) { //相同为true }2)在汇编语言中经常用于将变量置零:xor a,a;3)我们可以使用异或来使某些特定的位翻转因为不管是0 或者是1 与1 做异或将原创 2022-04-12 16:14:01 · 1194 阅读 · 0 评论 -
双重检查锁Double Checked Locking Pattern的非原子操作下的危险性
Double Checked Locking Pattern即双重检查锁模式。双重检查锁模式是一种软件设计模式,用于减少获取锁的开销。程序首先检查锁定条件,并且仅当检查表明需要锁时才才获取锁。延迟初始化就是我们常说的懒加载是一种常用的策略,用于延迟对象初始化,直到它第一次被访问。在多线程环境中,初始化通常不是线程安全的,因此需要锁来保护临界区。由于只有第一次访问需要锁定,因此使用双重检查锁来避免后续访问的锁定开销。然而,在许多语言和硬件上,设计可能是不安全的。Double-Checked Locki原创 2022-01-20 15:44:04 · 622 阅读 · 0 评论 -
[优雅代码]-调用java集合Map.computeIfAbsent()方法
java版本JDK1.8Map是我们经常使用的,在面对复杂Map时,我们怎么更好的去维护呢?这里的复杂Map就是<K,V>中V是一个Collection集合比如:那么它是一个复杂Map,如果一个<K,V>的V是Integer这种atomic value,那就不是复杂Map。无论是开发还是在刷题中,我们经常遇到这种情况,我们先拿到Key值对应的Collection,再往Collection中加入元素。但是这会出现一个问题!!!可能这个Collection根本不存在。原创 2022-01-19 13:13:43 · 658 阅读 · 0 评论