3 wwh_killer

尚未进行身份认证

我要认证

我的CSDN我醉牛皮

等级
TA的排名 47w+

微服务架构

2020-09-03 19:48:26

new,浅拷贝,深拷贝的区别

clone与new的区别,new意味着内存空间的分配,在new对象的过程中,系统会首先查看new关键字后面的类型,然后根据类型分配空间,然后在调用构造函数为对象赋值,Clone分为深拷贝和浅拷贝,默认情况下是浅拷贝。clone的对象必须实现cloneable接口才能进行clone。浅拷贝,是指在对象调用clone方法后,在内存中分配一块与原对象相同大小的额内存空间,然后将原对象的字段对应的值给拷贝到clone后的新对象中。但是原对象中的字段可能存在基本数据类型以及引用类型,如果是基本数据类型,则直接将值

2020-07-06 09:29:58

HashMap中hash函数,以及为啥桶长度只能是2的n次方

因为hashmap底层是通过数组+链表来实现的。显示通过数组然后在每个数组后面实现,可以把每个数组当作一个桶。然后hashmap在调用put方法的时候会通过hash来计算该值在hashmap中存放的地址,在存放数据的时候需要考虑到散列度的问题,不能把来的数据都放在痛一个桶里,所以需要一定的散列度。所以hashmap在计算数据存放的地址时通过对将自己的hash值经过无符号右移16位然后再做异或,相当于就是自己的高16位与自己的低16位做异或,让自己的高16位低16位都参与运算使得结果更加散列(jdk .

2020-06-23 14:24:43

关于Java垃圾回收

关于Java垃圾回收Java与C/C++不同,Java是采用自动回收垃圾,而C/C++采用的是手动回收垃圾。两种方式都有优点和缺点。Java自动回收时,可控性很差,甚至有时会造成栈溢出的现象;C/C++手动回收垃圾,可控性高,但是工作量较大。下面我们就来说一下Java垃圾回收。Java 怎么确定哪些对象应该回收?Java通过两个经典的算法来计算应该确定哪些对象应该回收...

2019-08-23 11:26:50

脏读,幻读与不可重复读

脏读,是指事物A对数据修改以后没有提交,之前事物B对数据进行查询,查询到事物A修改的那一条数据,那条数据即为脏数据,B读取即为脏读。不可重复读,是指事物A在查询一条数据后没有提交,事物B对数据进行了update或者delete操作,然后事物A再一次查询的时候发现数据发生了变化。幻读,是指事物A在查询一条数据后没有提交,事物B对数据进行了insert操作,然后事物A再一次查询的时...

2019-08-14 10:49:18

独享锁与共享锁

独享锁:是指该锁只能同时被一个线程持有。共享锁:是只该所可以同时被多个线程持有。对于ReentrantLock而言,ReentrantLock是一个独享锁,即公平锁与非公平锁时独享锁。而对ReadWriteLock而言,它的读是一个共享锁,而写是一个独享锁。读锁作为一个共享锁可以保证并发是的高可读性。独享锁,和共享锁都是通过AQS来实现的,实现不同方法来实现独享,和共享...

2019-08-13 17:50:09

可重入锁与不可重入锁

当一个线程获得当前实例的锁lock,并且进入了方法A,该线程在方法A没有释放该锁的时候,是否可以再次进入使用该锁的方法B?不可重入锁:在方法A释放锁之前,不可以再次进入方法B可重入锁:在方法A释放该锁之前可以再次进入方法B不可重入锁:当线程在访问A方法的时候,获取的A方法的锁,在A方法锁释放之前不能够访问其他方法的锁。个人理解模型:{}{}{}{}{}。可重入锁:...

2019-08-13 15:53:00

公平锁与非公平锁

ReentrantLock实现了Lock接口,在加锁和解锁时都要显示的写出,当构造ReentrantLock传入的参数为false的时候为非公平锁,当构造ReentrantLock传入参数为true的时候为公平锁。//创建一个非公平锁,默认是非公平锁Lock nonFairLock= new ReentrantLock();Lock nonFairLock= new Ree...

2019-08-13 15:30:36

悲观锁与乐观锁

悲观锁:在获取锁以后只允许获取锁的那一个对象或事务来操作数据(除了查询不需要获取锁),只有当当前对象或事务操作完以后释放锁以后,其他对象或事务才能对数据进行操作。优点:悲观锁利用锁机制来保证程序的顺序执行。缺点:当一个事务获取锁时,其他事务除了查询不能对当前数据进行操作。当获取锁的事务对数据操作时间较长时,其他事务需要等待,造成吞吐量下降。应用场景:当对数据库进行大量...

2019-08-13 14:56:52
勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。