- 博客(4)
- 收藏
- 关注
原创 java中String详解
String类在java中是一个比较特殊的类,它可以有两种创建形式:说String之前需要说明jvm中内存结构的变化:jdk1.6:方法区叫永久代,而字符串常量池和静态变量都存放在永久代中,字符串常量池有存放的默认阈值1009,可以用-XX:StringTableSize: 设置常量池的大小,但是如果过大,会导致PermSpace的OutOf Memory异常jdk1.7: 方法区还是叫永久代,但是将字符串常量池和静态变量移出永久代,放入堆中,防止占用过多的永久代的空间,可以利用堆中的垃圾回收器进行回
2020-12-13 23:09:41
1022
原创 AQS中公平锁和非公平锁的区别
场景:一个线程运行完毕,准备去等待队列中唤醒(unpark)线程。公平锁:当hasQueuedPredecessors 返回false时,则表示不需要去排队,会直接进行cas操作去修改state状态hasQueuedPredecessors解析当hasQueuedPredecessors返回false:h和t相等:一.当队列未初始化时头节点和尾节点都为null,固然相等;二.当队列已经初始化并且已经有线程产生过队列,并且线程已经释放了state状态置为0,则头节点和尾节点都指向同一个节点,即傀
2020-12-03 19:22:00
932
2
原创 java中对象的五个步骤
java对象的创建根据字节码来说有以下几个步骤:对于这句java代码一共有四个字节码指令,可以通过javac命令打印出字节码指令,或者使用idea中Jclasslib插件直接查看以上字节码可以通过对象的创建步骤联系起来:new指令:当虚拟机遇到new的字节码指令时,会去检查该指令参数是否在运行时常量池中符号引用,并且检查该符号引用是否被类加载器加载,如果没有加载,则会执行类的加载过程。通过双亲委派机制进行加载。双亲委派机制就是一个循环的机制,如果当前一直向上委托,一个类只能通过一个类加载器加载
2020-11-30 23:38:54
270
原创 HashMap源码自我见解,比较细
HashMap源码自我见解结构分析数组的优缺点链表的优缺点数组和链表的结合1.7 与 1.8 的改进为什么HashMap的属性table数组的大小一定是2^n?HashMap中位运算的应用HashMap展开可以说很多东西,所以面试也是必问的。结构分析hashMap在jdk1.7的时候是单纯的链表加数组的结构,那为什么要用链表加数组的结构来组成hashMap呢?这跟效率有关系。数组的优缺点1.优点:数组是一个内存连续的空间,直接可以用数组下标来访问数组中的某个值,时间复杂度是1。2.缺点:数组在插
2020-11-23 22:53:59
225
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人