自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 HashMap扩容机制

在treeifyBin方法中,出现了条件2,MIN_TREEIFY_CAPACITY,如果tab,也就是数组的长度小于64,则先进行resize(),而不直接转为红黑树。如果不是树节点,先计数,大于8个节点,就将当前链表转为红黑树,也就是treeifyBin。在HashMap源码中,有三个变量控制链表和红黑树之间的转换。如果出现了hash碰撞,首先检查是否是二次插入相同的key。在每次进行put操作时。实际上执行的时putVal方法。如果已经是红黑树了,直接插入树节点。如果没有,就直接存入新增的节点。

2023-08-07 16:49:15 89 1

原创 Java多线程,获取线程池中线程的返回结果

Future类的get()方法会阻塞主线程,导致多线程执行变成了单线程。

2023-08-03 16:14:56 1033

原创 判断线程中断不同JDK版本的区别interrupted()

这里将native做的事情更详细的展示出来了,就是判断当前线程中断标识的状态,如果是true,那么就重置为false,再调用navite方法。在JDK1.8中,interrupted()方法的源码是这样的,是通过调用native方法进行的判断,具体的做法还得阅读cpp源码。比较好奇是如何重置中断标识的,这里比较了一下jdk1.8和jdk18之间的区别,发现源码在这部分有很大的不同。

2023-07-13 17:25:59 95 1

原创 JavaJUC不指定线程池的情况下,ForkJoinPool不从1开始

今天遇到一个奇怪的问题,在学习JUC(java.util.concurrent)时,不指定线程池的情况下,线程是会使用JVM默认的ForkJoinPool,但是运行的结果,线程编号并不是从1开始的,而是9,比较好奇为什么会出现这种情况。插一嘴,我这里是在Spring框架里测试的,所以怀疑可能是Spring初始化的时候有线程跑在了这个方法之前,但是后来新建了maven项目,发现还是从9号开始的。开始我怀疑是可能存在之前的线程没有清除干净导致的,但执行后可以说明,并不是。遗留一下,以后有问题再再复述。

2023-07-10 20:15:30 90 1

原创 LinkedHashMap底层实现

首先,LinkedHashMap的底层实现是双向链表,是在HashMap.Node的基础上添加了双向指针。accessOrder是LinkedHashMap独有的一个变量,true是访问顺序,false是插入顺序。既然是链表,相对的就会有插入和删除。在LRU实现里,一个元素的key同时在HashMap和自定义的LinkedHashMap中保存两次,满足查询速度和删除速度。在这个方法的说明中,提到的,可以通过override重写这个方法进行插入。在进行插入时,当前节点和头节点不为空,并且容量没有达到上限。

2023-07-07 11:22:23 238 1

原创 深度学习简单的结果重定向

之前在训练的时候,有些开源没有配置完善的logger,没有加入tensorboard,只是通过控制台输出的方式显示每个迭代的结果,最近加个简单的结果重定向,仅修改了main的部分,可以直接将本次训练的结果保存在以时间命名的txt格式的日志中。足够简单,基本够用。

2023-06-07 10:18:27 47

原创 光度立体(Photometric Stereo)领域中的GBR问题

对GBE问题的简单描述

2022-08-19 20:18:05 558

原创 数据预处理-三光源图片分类

个人笔记

2022-08-18 11:16:19 111

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除