浪p迹
码龄10年
关注
提问 私信
  • 博客:3,420
    3,420
    总访问量
  • 14
    原创
  • 796,828
    排名
  • 2
    粉丝
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:浙江省
  • 加入CSDN时间: 2015-05-15
博客简介:

qq_28211953的博客

查看详细资料
个人成就
  • 获得1次点赞
  • 内容获得2次评论
  • 获得0次收藏
创作历程
  • 1篇
    2022年
  • 3篇
    2021年
  • 10篇
    2020年
成就勋章
兴趣领域 设置
  • 大数据
    mysqlredis
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

351人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

读ngx_hash_wildcard_t有感

读了wscschool的nginx教程,感觉里面的初始化通配符的哈希表的方式很巧妙,记录一下。nginx根据不同的通配符匹配模式初始化哈希表。只记录通配符在前的匹配模式,通配符在后的匹配模式相对简单,类推即可1. 对于\*.abc.com这种通配符在前的匹配模式Q:得到一个key值如何确定其是否能与\*.abc.com通配符匹配呢?A:逆向匹配,首先将key以"."进行切分,判断最后一块的值是否是com,是的话向前进一步判断下一块的值是否是abc,是的话进一步判断是否有下一块,有的话命中。
原创
发布博客 2022.01.20 ·
1660 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2021-05-04

关于protected修饰符的用法子类与基类不在同一包中,那么在子类中,子类实例可以访问其从基类继承而来的protected方法,而不能访问基类实例的protected方法//示例一package p1;public class Father1 { protected void f() {} // 父类Father1中的protected方法}package p1;public class Son1 extends Father1 {}package p11;pub
原创
发布博客 2021.05.04 ·
112 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2021-04-28

java对象占用大小以ArrayList对象为例,使用jol进行分析public static void main(String[] args){ System.out.println(ClassLayout.parseInstance(new ArrayList()).toPrintable());}输出java.util.ArrayList object internals: OFFSET SIZE TYPE DESCRIPTION
原创
发布博客 2021.04.28 ·
106 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2021-04-10

源代码public static void main(String[] args) { String s = new String("1"); String s2 = "1"; s.intern(); System.out.println(s == s2); String s3 = new String("1") + new String("1"); String s4 = "11"; s3.intern(); System.out.p
原创
发布博客 2021.04.10 ·
112 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2020-12-18

ForkjoinPool的ctl变量初始化赋值解析private static final int AC_SHIFT = 48;private static final long AC_MASK = 0xffffL << AC_SHIFT;private static final int TC_SHIFT = 32;private static final long TC_MASK = 0xffffL << TC_SHIFT;long np =
原创
发布博客 2020.12.18 ·
161 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

2020-12-09

currenthashmap 1.81. 计算hash值时在原有高16位异或低16位的基础上与0x7fffffff以减少hash冲突2. 数组上的元素可能是代表链表头结点的Node,也可能是TreeBin,TreeBin中记录了红黑树的根节点3. 使用unsafe类的cas方法直接原子性地操作内存,修改获取变量值4. TreeBin的hash值等于-2,链表Node的hash值大于05. table初始化时使用懒加载,最初只是设置初始化容量大小。真正的初始化放在第一次执行put时6.
原创
发布博客 2020.12.10 ·
115 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2020-12-10

currentHashMap定位获取指定index的Nodestatic final <K,V> Node<K,V> tabAt(Node<K,V>[] tab, int i) { return (Node<K,V>)U.getObjectVolatile(tab, ((long)i << ASHIFT) + ABASE); }i是获取的Node在数组中的索引值正常的处理是采用arrayBaseOffset +
原创
发布博客 2020.12.10 ·
263 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

2020-12-08

Integer.numberOfLeadingZerospublic static int numberOfLeadingZeros(int i) { if (i == 0) return 32; int n = 1; if (i >>> 16 == 0) { n += 16; i <<= 16; } //1 i的高16位为0 if (i >>> 24 == 0
原创
发布博客 2020.12.08 ·
118 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2020-12-05

HashMap resize部分解读if ((e.hash & oldCap) == 0)resize中有如此判断,意思是如果e的hash值与老表的容量进行与运算为0,则扩容后的索引位置跟老表的索引位置一样如何理解首先e的hash值与老表的容量进行与运算为0,例如老表容量为16,即10000,则说明e的hash值倒数第5位为0原来索引位置为hash值的低4位,现在扩容后索引位置为hash值的低5位,但是其实都是一样的,因为倒数第5位为0...
原创
发布博客 2020.12.05 ·
152 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2020-12-04

HashMap 定位桶方法h & (length-1)为什么这个方法能达到取余的效果?首先,hashmap中桶的个数length是2的整数幂,这样length-1就是一个低位全是1的数。例如length=16,length-1=15,相当于1111h & (length-1)后,h的高位全部清为0,只保留低位数高位都是length的整数倍,取余时不需要关心。这样只保留了对于取余起作用的低位,低位就是余数...
原创
发布博客 2020.12.04 ·
132 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2020-12-04

HashMap tableSizeFor解读static final int tableSizeFor(int cap) { int n = cap - 1; n |= n >>> 1; n |= n >>> 2; n |= n >>> 4; n |= n >>> 8; n |= n >>> 16; r
原创
发布博客 2020.12.04 ·
118 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2020-11-20

SynchronousQueue源码总结1. 两种模式1.1 公平模式使用内部类TransferQueue单向队列实现1.2非公平模式使用内部类TransferStack栈实现2.TransferQueue2.1 单向链表,链表元素为QNodestatic final class QNode { //标识当前node的后继节点,通过next组成链表结构 volatile QNode next; //当前节点存储的数据 volatil...
原创
发布博客 2020.11.20 ·
171 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2020-11-16

label在for循环语句中的使用public class Label { public static void main(String[] args) { /** * for循环嵌套for循环,通过continue label直接继续外层for循环的遍历 跳过剩余的内层for循环 */ L1: for (int i = 1; i <= 5; i++) { for (int j = 1; j <= 5; j++) { if (i > .
原创
发布博客 2020.11.16 ·
90 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

2020-10-24

java security policy文件内容解读 grant codebase "file:C:/Users/workspace/project/bin" { permission java.io.FilePermission "C:/Users/workspace/project/bin/*", "write"; }; 授予file:C:/Users/workspace/project/bin 下的代码(class类或者jar包)对C:/Us.
原创
发布博客 2020.10.24 ·
94 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏