- 博客(6)
- 收藏
- 关注
原创 HashMap 解析(源码分析)
四个构造方法中,都初始化了负载因子 loadFactor,由于 HashMap 中没有 capacity 这样的字段,即使指定了初始化容量 initialCapacity ,也只是通过 tableSizeFor() 扩容到与 initialCapacity 最接近的 2 的幂次方大小,然后。本质上还是取hash值的低位,原来只取低两位,只有这两位参与运算,新的需要取低三位,那么此时直接和原容量。相与,看看第三位是不是0,如果第三位是0,索引当然不变,如果第三位是1,新的索引就是原索引+原容量。
2025-01-01 18:21:40
1009
原创 Typora正文、侧边栏、TOC目录自动编号H1-H6(可导出pdf)
官网自己导出来的,本质就是多渲染了一部分css,以前导出pdf有丢失编号的bug,现在已经能把css渲染到pdf里了。在themes文件夹下创建base.user.css,下面的内容复制进去,重启typora即可。
2024-10-26 17:27:06
468
原创 解决IDEA控制台中输出中文乱码并探究原因(JDK18及以上)
有意思的一点是,这里不会影响正常的System.out.println输出到控制台并正确显示,我源代码是utf-8,这些字符串也理应是utf8的编码,拿System流自带的getProperty方法拿到的输出流编码也是utf-8。总结一下,日志编码和println输出流的编码是不一样的,为了更好的兼容性,我们文件里的编码一定要全部用utf-8,毕竟控制台只是一个临时调试的地方,不要因小失大,要用最小的改动达成最好的效果。运行环境:JDK 21 Tomcat 10.1.30 IDEA 2024.2.2。
2024-09-28 09:59:53
1783
10
原创 为何RS触发器会有两个输出(非法输入)
我们知道,触发器本质就是要保存数据,两个输入端都是0有效,保存数据就是让R和S同时为1。合法输入的时候,Q和Q非始终是互补的,撤去有效输入,之后状态是可预知的,也就是能够保存之前的状态。但当R=0,S=0时,此时Q和Q非都是1,在实际操作过程中,因为门电路的延时,使得“Q=Q非=1”这个状态无法保存,所以说是非法输入,此时两个输出就起到了识别非法输入的作用。最容易想到的一点:提供反相信号,不用再另外建立非门。第二点,也是最重要的一点:识别非法输入。问题是R=0,S=0这个输入为什么非法?
2024-06-29 16:29:33
451
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人