![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 58
请叫我黄同学
4年经验的java,在博客方面,是个新人,看到博客写的不好方面,多多指教,会把自己平时学的知识,分享给大家,希望可以帮助大家
展开
-
对象的创建过程
如何创建对象在实例化一个对象的时候,JVM首先会去检查目标对象,是否已经被加载并初始化,JVM需要去做的是立刻加载目标类,然后去调用目标类的构造器,去完成初始化,目标类的加载,通过类加载器来实现的,主要就是把一个类加载到内存里面,然后是初始化的过程,主意是对目标类里面的静态变量,成员变量,静态代码块进行初始化,当目标类被初始化以后,就可以从常量池里面去找到对应的类元信息了,并且目标对象的大小,在类加载完成之后呢就已经确定了,所以这个时候,就需要为新创建的对象根据目标对象的大小,在堆内存里面去分配内存空间,原创 2022-04-20 17:45:54 · 467 阅读 · 0 评论 -
HashMap如何解决哈希冲突?
1. Hash算法和Hash表了解Hash冲突首先了解Hash算法和Hash表Hash算法就是把任意长度的输入通过散列算法变成固定长度的输出,这个输出结果就是一个散列值Hash表又叫做“散列表”,它是通过key直接访问到内存存储位置的数据结构,在具体的实现上,我们通过Hash函数,把key映射到表中的某个位置,来获取这个位置的数据,从而加快数据的查找2. Hash冲突Hash冲突是由于哈希算法,被计算的数据是无限的,而计算后的结果的范围是有限的,总会存在不同的数据,经过计算之后得到值是一样,原创 2022-04-19 23:11:40 · 19508 阅读 · 4 评论 -
ConcurrentHashMap底层实现原理
1. ConcurrentHashMap的整体架构如图,这是ConcurrentHashMap在jdk1.8中的存储结构,它是由数据,单项链表,红黑树来构成,当我们去初始化一个ConcurrentHashMap实例的时候,默认会初始化一个长度等于16的数组,由于ConcurrentHashMap它的核心仍然是Hash表,所以必然会存在Hash冲突的问题,所以ConcurrentHashMap采用链式寻址的方式,来解决Hash表的冲突,当Hash冲突比较多的时候,会造成链表长度较长的问题,这种会使得Con原创 2022-04-19 11:23:55 · 6644 阅读 · 3 评论 -
wait和notify 为什么要在synchronized代码块中
什么是wait和notifywait和notify是用来去实现多个线程之间的一个协调,wait表示让线程进入到阻塞状态,notify让阻塞的线程被唤醒,wati和notify必然是成对出现的,如果一个线程被线程被wait()方法阻塞,那么必然需要另外一个线程通过notify()方法来唤醒,从而去实现多个线程之间的一个通信在多线程里面呢,要实现多线程之间的一个通信,除了管道流的以为,只能去通过共享变量的方法来实现,也就是说线程t1修改共享变量s,线程t2获得修改后的共享变量s的值,从而完成数据的一个通讯原创 2022-04-18 22:16:55 · 537 阅读 · 0 评论 -
基于数组的阻塞队列 ,ArrayBlockingQueue 原理
阻塞队列阻塞队列是在队列的基础上,去增加了两个附加操作,第一个队列为空的时候,获取元素的线程会等待队列为非空,当队列满时,存储元素的线程会等待队列可用,由于阻塞队列的这样一个特性,可以非常容易的去实现,生产者和消费者这样一个模型,也就是说,生产者只需要关心数据的一个生产,而消费者只需要关心数据的一个消费,所以,如果队列满了,生产者就等待,同样队列空了,消费者也需要等待。实现这样一个阻塞队列,需要用到两个非常关键技术是队列元素的一个存储线程阻塞核唤醒ArrayBlockingQueue而Ar原创 2022-04-18 21:07:11 · 330 阅读 · 0 评论 -
类加载过程,以及什么是双亲委派?
类的加载机制如图,我们自己写的Java文件到最终运行,它必须要经过编译和类加载这两个阶段,而编译的过程就是.java文件编译成.class文件,而类的加载就是把.class文件加载到JVM内存里面,装载完成以后会得到一个Class对象,我们就可以使用new关键字,来实例化这个对象。一个类从被加载到虚拟机内存中开始,到卸载出内存,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initializat原创 2022-04-18 17:50:06 · 370 阅读 · 0 评论