![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
qq_21364629
这个作者很懒,什么都没留下…
展开
-
JDK8中intern()的理解(笔记向)
好久都没有水博客了,前段时间再看算法+linux内核源码,被虐的死去活来…今天在技术交流群看到一个人在做有关intern的实验,记得以前看过,就是返回常量池中的字符串,但也没做过实验,参照那个兄弟的例子,现在补上例子和我的理解: String string = new String("1"); string.intern(); String string2 = "1"; System.out.println(string == string2); 其实这个string.intern原创 2020-11-26 14:26:34 · 612 阅读 · 2 评论 -
再谈JDK动态代理
之前写过一篇JDK动态代理的,但回看了一遍发现不是很深刻。那时候只是比较粗浅的看了一遍,理解上也不是很清晰,所以这次打算重新写一遍关键流程,希望以后再看的时候能够让我更清晰的理清动态代理的关键步骤。就取原来分析的主代码:public class MyProxy { public static Object proxy(Object target) { return Proxy.newProxyInstance(target.getClass().getClassLoader(),原创 2020-09-22 16:01:42 · 77 阅读 · 0 评论 -
HashMap1.8前、后CPU load增加的原因以及部分源码解读
HashMap1.8之前扩容方法resize()采用头插方法如果数组元素为链表时,扩容resize方法是先将链表尾部重新rehash,插入新数组,然后插入尾部的parent,依次类推该方法是在一个while()循环中的,仅当e == null时才能退出循环:void transfer(Entry[] newTable, boolean rehash) { int newCapacity = newTable.length; for (Entry<K,V>原创 2020-09-21 20:50:06 · 149 阅读 · 0 评论 -
关于a=a++为什么不能改变a的值的思考
上周末在技术交流群里看到这样一个问题: int c = 0; int d = 0; for(int i = 0;i<10;i++) { c=c++; } System.out.println(c); for(int i = 0;i<10;i++) { c=c++; d=c++; } System.out.println(...原创 2019-08-26 15:41:23 · 785 阅读 · 0 评论