
重新精进java基础
文章平均质量分 65
工作三年了,之前背了很多八股文,都不知道具体的意思。现在回首看去,原来基础也有很多的原理。具体文档可以找wei 17860775817领取
爱打lan球的程序员
这个作者很懒,什么都没留下…
展开
-
ArrayList 和 CopyOnWriteArrayList的区别,线程的生命周期,和线程的状态,Thread,Runnable的区别,ThreadLocal的底层原理:
当我们调用wait()方法后,线程会放到等待池当中,等待池的线程是不会去竞争同步锁。所有需要竞争同步锁的线程都会放在锁池中,比如当前对象锁已经被一个线程得到,其他线程需要在这个锁池中等待。当前面的线程释放同步锁后锁池中的线程去竞争同步锁,当某个线程得到后就会进入就绪队列进行等待CPU的分配。就绪: 线程对象创建后,其他线程对象调用了start()方法,该线程位于可运行线程池中,变得可运行,等待CPU的使用权。阻塞:线程因为某种原因放弃了CPU的使用权,暂时停止运行,直到线程进入就绪状态。原创 2024-07-15 18:00:16 · 798 阅读 · 0 评论 -
HashMap 和 HashTable 的区别,谈谈ConcurrentHashMap的扩容机制,Jdk1.7和jdk1.8之间虚拟机发生了怎么样的变化,浅拷贝和深拷贝
之所以将元空间所占的内存移到虚拟机外面是因为:方法区中所存储的类信息是很难确定的,空间给小了容易造成内存溢出,太大了又会占用太多的虚拟机空间。先通过hash算法计算出key的值作为存储数组的下标,如果不同的key计算出同一个值的时候再通过equals方法判断是不是一个值,如果是的代替旧的value值存在数组中。浅拷贝和深拷贝就是指的是对象的拷贝,一个对象中存在两种属性,一种是基本数据类型,一种是实例对象的引用。浅拷贝:对于基本数据类型的值进行复制,对于引用数据类型的值拷贝其地址,指向的还是同一个内存。原创 2024-07-11 17:28:53 · 385 阅读 · 2 评论 -
本期深入解析:String, Stringbuffer,StringBuiler 的区别,重载和重写的区别,接口和抽象类的区别,List 和 Set,ArrayList 和 LinkedList
本期深入解析:String, Stringbuffer,StringBuiler 的区别,重载和重写的区别,接口和抽象类的区别,List 和 Set,ArrayList 和 LinkedList原创 2024-07-03 17:27:49 · 304 阅读 · 1 评论 -
JDK,JRE,JVM的区别,Java中堆和栈的区别,== 和equals的区别,hashCode 和 equals
比如说hashSet在确认里面的元素是否相同时就是先通过hashCode()在堆里面判断,如果第一步hashCode相同可能只是地址相同,重新通过equals判断判断是否内容也相同,如果相同的话则不将值存进去,如果不同的话则将哈希值通过加盐的方式存进去。hashCode() 是获取哈希值的方法,hash值是用来计算对象在堆中存储的位置,从而确定是不是同一个对象用的。Equlas 在没有复写的情况下比的是地址,复写过了比的是对象的值。栈的内存是线程私有的,堆的内存是所有线程共享的。引用数据类型值放在堆中,原创 2024-07-01 17:22:58 · 243 阅读 · 1 评论