![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
文章平均质量分 93
Money、坤
人间烟火 各有遗憾 今天比昨天好就有希望
展开
-
【Java基础】HashMap底层数据结构及其原理
假设线程 1 和线程 2 同时进行 put 操作,恰好这两条不同的数据的 hash 值是一样的,并且该位置数据为null,这样,线程 1 和线程 2 都会进入这段代码进行插入元素。运算那么高十六位所代表的部分特征就可能被丢失,将高十六位无符号右移之后与低十六位做异或运算使得高十六位的特征与低十六位的特征进行了混合得到的新的数值中就高位与低位的信息都被保留了 ,而在这里采用异或运算而不采用。运算的原因是 异或运算能更好的保留各部分的特征,如果采用 **&**运算计算出来的值会向1靠拢,采用。原创 2022-09-13 22:40:18 · 850 阅读 · 0 评论 -
【Java基础】ArrayLsit 和 LinkedList区别、底层原理以及扩容算法
【Java基础】ArrayLsit 和 LinkedList区别、底层原理以及扩容算法。原创 2022-09-09 17:03:35 · 519 阅读 · 0 评论 -
【Java基础】ThreadLocal的底层原理以及应用场景
2. Threadocal底层是通过ThreadLoclMap来实现的,每个Thread对象(注意不是Threadlocal对象)中都存在一个ThreadlocalMap,Map的key为ThreadLocal对象,Map的value为需要缓存的值。原创 2022-09-09 09:01:47 · 500 阅读 · 0 评论 -
【Java基础】浮点数精度丢失问题剖析
(6)因为我们是把小数点左移3位,因此将3减去1得2,化为二进制,并补足7位得到0000010,放入第29到第23位。(6)如果n是左移得到的,则将n减去1后化为二进制,并在左边加“0”补足七位,放入第29到第23位。如果n是右移得到的或n=0,则将n化为二进制后在左边加“0”补足七位,再各位求反,再放入第29到第23位。作为有符号整数的指数可以有正负之分。(6)因为小数点被右移了3位,所以将3化为二进制,在左边补“0”补足七位,得到0000011,各位取反,得到1111100,放入第29到第23位。原创 2022-09-04 14:26:56 · 4311 阅读 · 0 评论 -
【Java基础】七种常用的设计模式详解
增加新的具体工厂和产品族很方便,比如说,我们想要增加小米,只需要创建一个小米工厂AppleFactory实现手机工厂接口PhoneFactory,合理的解决的简单工厂模式不能修改代码的缺点。我们通过创建一个PhoneFactory类,成功的完成工厂的创建。(1)抽象工厂(Abstract Factory)提供了创建产品的接口,它包含多个创建产品的方法newProduct(),可以创建多个不同等级的产品。:实现抽象处理者的处理方法,判断能否处理本次请求,如果可以处理请求则处理,否则将该请求转给它的后继者。原创 2022-09-04 12:52:22 · 3588 阅读 · 0 评论 -
【Java基础】Java基础之反射
反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 Java 语言的反射机制。......原创 2022-08-09 19:06:42 · 420 阅读 · 0 评论