Hutool-通过Lambda结缘开源到6.0探索之路
发表于|更新于
|浏览量:
花开如火,也如寂寞。——顾城
分享自己参加ITPUB的开源小秀场

相关推荐
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之后改用尾插法,...
2021-08-28
mybatis-plus部分更新
宁要好梨一个,不要烂梨一筐。积极肯干和忠心耿耿的人即使只有两三个,也比十个朝气沉沉的人强。——列宁 在我们使用mybatis-plus进行开发的时候 可以看到默认的updateById方法是判断属性如果有值则修改,无值则忽略,不修改对应的字段 那如果我们要在该属性没有值得情况下将对应字段置为空的话 就可以使用IService里的这个update的重载 123456789/** * 根据 whereEntity 条件,更新记录 * * @param entity 实体对象 * @param updateWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper} */default boolean update(T entity, Wrapper<T> updateWrapper) { return SqlHelper.retBool(getBaseMapper().update(entity, upda...
2021-03-28
获取不同时区的时间
真诚与朴实是天才的宝贵品质。——斯坦尼斯拉夫斯基 1234567891011121314151617181920212223242526272829303132System.out.println("下面的是两个默认时区的LocalDateTime");final LocalDateTime localDateTime = LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault());final LocalDateTime localDateTime1 = LocalDateTime.now();System.out.println(localDateTime);System.out.println(localDateTime1);System.out.println("下面的是两个通过Date.from()拿到的默认时区的Date");// 这里需要使用ZonedDateTimefinal Date from = Date.from(Instant.fr...
2025-03-23
apache-shenyu插件配置规则处理杂谈
我去旅行,是因为我决定了要去,并不是因为对风景的兴趣。——马尔克斯的《霍乱时期的爱情》 这个issue: https://github.com/apache/shenyu/issues/5966 其中提到由于没有填写handler导致无法提交,于是先临时添加一个必填标识 https://github.com/apache/shenyu-dashboard/pull/525 这里发现有两个Handler的表单项,一眼看过去好像是个BUG,本来是打算合二为一,发现由于此处的设计是两个FormItem,删掉下面的Handler的label,会导致被删除的表单项往左偏移而对不齐 此处介绍一下两个都称之为Handle的表单项的区别,第一个是组件独特的表单项,例如request插件就是request对应的xxx.js,表单项里包含填写多个params、headers、cookies等,如果是其他组件则是填写其他的东西;第二个是在PluginTemplate动态配置出来的 目前的代码逻辑比较绕,大概介绍一下: src/routes/Plugin/Common/Rule.js是一个AddMo...
2024-05-15
jackson范型注意
放弃不难,但坚持一定很酷。——《解忧杂货店》 今天使用 Jackson 有个疑问,就是带范型的对象,Jackson 序列化后,范型会怎样处理: 就比如说{"data":{"data":1}},以及下面这个类: 1234@Datapublic static class Foo<T> { private T data;} 这个外层的 data 会反序列化出来什么类型呢? 实际上反序列化出来 LinkedHashMap 1234var obj = mapper.readValue(""" {"data":{"data":1}} """, Foo.class);Assertions.assertEquals(LinkedHashMap.class, obj.getData().getClass()); 如果我们需要继续解析成具体的类型,则...
2020-09-28
java多次调用,最后一次调用后才执行
追求使你充实,成功和失败都是伴奏。——史铁生 前段时间写了java防抖,不过之前写的都是在一定时间内只执行一次,超过这个时间,防抖又失效了,假设我现在有这样一个需求: 在一定的间隔内多次调用一个函数,只有最后一次才生效 例如,我设定的间隔为1秒,那么只要我在1秒内触发了第二次,那么就重新计时 废话不多说,贴代码 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859package com.ruben;import com.ruben.utils.TimeUtil;import java.util.Timer;import java.util.TimerTask;import java.util.logging.Handler;import java.util.logging.LogRecord;/** * @ClassName: TimeIsExpensiveDemo * @Date: 2020/9/28 21:3...

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