首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ConcurrentHashMap的put方法

    计算key的哈希值for自旋保证put成功如果没有初始化就初始化table有可能多个线程去调用initTable()方法去初始化,用cas加锁就行了,成功一次就行了通过与哈希取模计算数组下标,如果下标节点为...null,就通过cas放进数组当前下标的位置如果当前下标有值,并且发现当前节点正在做扩容迁移操作,就去帮助扩容如果既有值,又没在扩容,就锁住这个数组下标节点,开始进行put操作第一种情况当前节点是一个链表遍历整个链表判断...hash不存在,此时已经遍历到了最后一个节点e,然后把当前的key/value添加到链表e节点的后i面,尾插法第二种情况当前节点是红黑树将节点放入红黑树,具体怎么放的参考我另一篇同系列下的文章之红黑树put

    78610

    IIS-PUT 漏洞复现

    0x002 漏洞利用   该漏洞的产生原因来源于服务器配置不当造成,利用IIS PUT Scaner扫描有漏洞的IIS,此漏洞主要是因为服务器开启了WebDAV的组件导致的可以扫描到当前的操作,具体操作其实是通过...WebDAV的OPTIONS来查询是否支持PUT。...开启WebDAV选项 开启IIS网站写入权限 设置允许来宾用户控制权限 0x004 漏洞复现 ---- 首先,打开 IIS PUT Scaner 工具进行扫描,显示YES,表示检测到了漏洞。...选择PUT上传webshell,这里后缀为txt,然后提交数据包 在目标网站下会生成一个shell.txt的文件,但是这个文件是无法被IIS解析的 接下来利用MOVE将txt的文件修改为asp的,从而可以将文件变成可执行的脚本文件

    1.8K50

    PUT和POST的区别

    PUT 和 POST 是 HTTP 协议中两种常用的请求方法。它们有些相似之处,但也有一些重要的区别。在本文中,我们将详细介绍 PUT 和 POST 的区别。...PUT 请求 PUT 请求是 HTTP 协议中的一种请求方法,通常用于更新或替换服务器上的资源。使用 PUT 请求时,客户端需要将整个资源的新版本发送到服务器。...PUT 请求的一些特点: 可以更新整个资源。 客户端需要发送完整的资源内容。 如果服务器上不存在该资源,则会创建一个新的资源。 PUT 请求具有幂等性,即执行多次 PUT 请求的结果应该相同。...幂等性不同:PUT 请求具有幂等性,即执行多次 PUT 请求的结果应该相同,而 POST 请求不具有幂等性。...总之,PUT 和 POST 请求有些相似之处,但也有一些其他的区别: 安全性不同:PUT 请求是安全的,即对服务器上的资源的任何操作都不会导致状态的改变。

    1.7K10

    解析HashMap中的put方法

    引言 在Java集合中,HashMap的重要性不言而喻,作为一种存储键值对的数据结构,它在日常开发中有着非常多的应用场景,也是面试中的高频考点,本篇文章就来分析一下HashMap集合中的put方法。...put方法的执行流程 我们直接通过一个程序来理解HashMap中put方法的执行流程,在put方法中,HashMap需要经历初始化、存值、扩容、解决冲突等等操作: public static void...main(String[] args) { Map map = new HashMap(); map.put("name", "zs"); map.put...接下来程序会执行put方法: public V put(K key, V value) { return putVal(hash(key), key, value, false, true);...所以,HashMap在第一次调用put方法时会创建一个总容量为16的Node类型数组(前提是调用无参构造方法),但实际上只有12的容量可以被使用,当第13个元素插入时,就需要考虑扩容。

    70610
    领券