map.put踩坑
发表于|更新于
|浏览量:
辱骂与恐吓绝不是战斗。——鲁迅
今天发现一个坑,原来HashMap的put方法返回值并不是put进去的value,而是被覆盖的value或null
其注释也告诉我们

源码也表示

希望大伙不要跟我一样用错了。。。
相关推荐
2020-12-21
@Scheduled的使用
人之患在好为人师。——《孟子》 今天朋友问我定时任务怎么创建,让我们一起重温复习一下吧~ 首先需要在启动类上加@EnableScheduling注解(组件上也可以加) 然后在需要定时的方法上加上@Scheduled注解 1234567891011121314151617181920212223242526package com.ruben.task;import lombok.extern.slf4j.Slf4j;import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Component;/** * @ClassName: LogTask * @Description: 我还没有写描述 * @Date: 2020/12/21 0021 20:11 * * * @author: <achao1441470436@gmail.com> * @version: 1.0 * @since: JDK 1.8 */@Slf4j@Comp...
2020-06-07
HashMap
HashMap是由数组和链表组合构成的数据结构。 大概如下,数组里面每个地方都存了Key-Value这样的实例,在Java1.7叫Entry,在Java1.8中叫Node。 因为它本身所有位置都为null,在put插入的时候会根据key的hash去计算一个index值。 就比如我put(”rubenwei”,666),我插入了为”rubenwei”的元素,这个时候我们会通过哈希函数计算出插入的位置,如果计算出来index是2,那就放在第三个位置 但我们知道数组长度是有限的,在有限的长度里面我们使用哈希,哈希本身就存在概率性,就是”rubenwei”和“ruben”我们都去hash有一定的概率计算出来的hashcode是重复的,这时候如果put“ruben”就会在当前entry节点下形成一个链表用于存放hashcode一样的这些元素 每一个节点都会保存自身的hash、key、value以及(next)下个节点 java8之前采用头插法,原有的值顺推到链表中去,新来的值变成链表表头,是因为代码作者认为新来的值会被查找的可能性大一点,为了提升查找的效率设计的 java8之后改用尾插法,...
2022-01-18
子线程中获取request
在这个世界上,一切都预先被谅解了,一切也就被卑鄙地许可了。——《不能承受的生命之轻》 写一个接口,用于测试: 123456789101112131415161718192021222324252627import cn.hutool.core.thread.AsyncUtil;import javax.annotation.Resource;import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletRequest;import java.util.concurrent.CompletableFuture;@RestController@RequestMapping("test")public class TestController { @Resource private HttpServletRequest request; @GetMapping("request") public String ...
2025-12-30
修改logback.xml以及mybatis-config.xml同时打印mybatis和jpa的sql
最天才的是时间。——别林斯基 项目背景是apache/shenyu,使用的是mybatis,通过shenyu-admin/src/main/resources/mybatis/mybatis-config.xml来管理相关配置 此处有一行注释了的 1<!-- <setting name="logImpl" value="STDOUT_LOGGING" />--> 我们解开注释即可打印mybatis日志 其次我在该项目中引入jpa 首先shenyu-admin/pom.xml添加依赖: 1234<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId></dependency> 然后添加一个repository作为操作类,比如shenyu-admin/src/main...
2023-12-19
state-machine持久化踩坑
植物借栽培而生育,人类借教育而成人。——罗素 今天使用spring-state-machine踩坑了,这里配了持久化,然后在事件里更改了额外数据 12gameInfo = stateMachine.getExtendedState().get(WordChainConst.GAME_INFO, GameInfo.class);gameInfo.setXxx(xxx); 结果在interceptor或者guard等其他地方使用的时候,却获取不到正确的值 原来在修改值后,还需要持久化保存一下。。。 1public class RedisSmPersister extends AbstractStateMachinePersister<StateEnum, EventEnum, String> 1redisSmPersister.persist(sm, sm.getId());
2023-07-25
apache-incubator-streampark源码编译本地运行(五)
相信谎言的人必将在真理之前毁灭。——赫尔巴特 今天是这个报错 是install完成后,console提示shaded包下面类找不到 此时我们需要mvn clean下项目,然后取消勾选右侧的shaded模块 最后关闭项目,删除目录下的.idea文件夹,重新打开,install 再次运行即可

阿超
我的名字叫阿超 年龄25岁 家在北京市 职业是软件开发 每天最晚也会在八点前回家 不抽烟 酒浅尝辄止 晚上十二点上床 保证睡足八个小时 睡前写一篇博客 再做二十分钟俯卧撑暖身 然后再睡觉 基本能熟睡到天亮 像婴儿一样不留下任何疲劳和压力 就这样迎来第二天的早晨 健康检查结果也显示我很正常 我想说明我是一个不论何时都追求内心平稳的人 不拘泥于胜负 不纠结于烦恼 不树立使我夜不能寐的敌人 这就是我在这社会的生活态度
Follow Me公告
This is my Blog