为什么 HashMap 要用 h^(h >>>16) 计算hash值?槽位数必须是 2^n? 大家好,我是一航!昨天中午,一位粉丝朋友在微信私信我,问:为啥HashMap的hash值计算格式是这样:(h = key.hashCode()) ^ (h >>> 16)?h ^ (h >>> 16)是什么意思?以下是Java8中HashMap计算key对应hash的源码:static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode().
SpringBoot Jackson序列化解决JS精度丢失问题的三种办法 大家好,我是一航!昨天下午,有伙伴儿在群里面问了下面这么个问题:数据库用bigint存储了记录的ID,Java代码用Long类型映射记录对应ID的值;前端调用SpringBoot的接口获取数据,后端debug时Long型ID能正常取到值,但是返回到前端之后,ID后半段被“偷”了,查询id为1、2、3的时候又是正常的;数据如下:两值对比:后端的值:1508733541883731970前端的值:1508733541883732000很明显,出精度问题了,但是不了解细节的时候,很容易一脸懵.
JDK 7(Java SE Development Kit)全平台全版本安装包免费下载 JDK 7 由 Oracle 公司于 2011 年 7 月 28 日发布;JDK7 相比之前版本,主要有以下几方面的变化:对集合类的语言支持;自动资源管理;改进的通用实例创建类型推断;数字字面量下划线支持;switch 中使用 string;二进制字面量;简化可变参数方法调用。Oracle JDK 7u80下载安装平台下载地址密码Windows x64 64位jdk-7u80-windows-x64点击查看Windows x86 32位jdk-7.
别用微信文件传输助手了,这6款在线工具真香 大家好,我是一航!日常的工作,经常需要做电脑与手机同步、临时的文件共享、保存等;大部分时候,我们都是通过微信来传输,微信虽然方便,但是也存在一些弊端,比如,分享必须是好友、文件大小上限1G、敏感数据,不想上传微信、上传下载速度不稳定、仅限于微信内等问题;再者就是使用各种网盘,虽然能解决同步、保存、分享这些问题;但大多不是下载需要登录、就是会限速;在不氪金的前提下,各种障碍导致使用过程中非常的不便;11月的时候,由工信部发起,约谈了8家网盘企业,要求在2021年底必须实现"无差别速率";本以为整改之后会.
Log4j 再发 2.16.0 新版,彻底移除 Message Lookups;一行配置轻松升级 大家好,我是一航!近一周,可能是Log4j团队最忙的一周了;因为上周爆出来的核弹级Bug,在短短的一个星期时间内,连推了两个大版本,来修复此漏洞;本以为今年只会推出一个小版本的;在这年末之际,因为一个bug,只能说好家伙,明年的版本指标都给用上了;2.15.0上线短短3天之后,最新的2.16.0已经正式发布更新内容默认禁用 JNDI;需要 log4j2.enableJndi设置为 true 以允许 JNDI完全删除对Message Lookups的支持。进一步强化防御更多细节.
XShell收费?5款免费且超赞的SSH工具,一个比一个香 大家好,我是一航!SSH客户端是后端程序员日常工作必备的工具之一,一款趁手的工具也能让工作效率事半功倍;上周的时候,有小伙伴在群里面求免费的SSH软件;说来也坑,公司不允许使用PJ版的,但是又不愿意给他们买付费软件,所以只能自己去找开源免费的工具来使用;对于朋友们的这种需求,我向来都是有求必应,马上安排;今天就来分享一下我用过的几款免费、开源且好用的SSH软件;每一款都很优秀,也都有自己的特点,可以根据自己的喜好,选择使用。软件目录ElectermFinalShellWindTerm(.
HashMap无序的这个小“坑“,一不小心就翻车了 大家好,我是一航;昨天一位粉丝朋友和我聊天,说遇到了一个莫名奇妙的问题,让我帮着分析一下;经过他的一轮描述,发现是一个HashMap元素顺序小’坑’;但是一不留神,老司机也容易在这里翻车。一句话来描述一下他的问题:明明我数据库语句使用了Order by进行了排序,日志中也看到数据是按顺序查出来了,但业务层收到数据依然还是乱序的呢?;整个过程,确实出现了好几处的迷惑现象,影响了他对问题的判断;下面就从一个小案例加上源码分析,来看看到底发生了什么。问题复现为了方便说明问题,这里用一个简单的业务场景来.
三款神器(MyBatis Plus + MyBatisX + MyBatis Plus Join);终于不用写数据库操作代码,一键生成直接调用 三款神器(MyBatis Plus + MyBatisX + MyBatis Plus Join)数据CURD代码直接生成,大大提高生产力
当我把 SpringBoot的启动 Banner 换成了老师;同事:借一bu说话 哥儿几个,来啦!!大家好,我是一航!今天带大家玩个好玩儿的配置。当我们启动SpringBoot项目的时候,控制台会输出SpringBoot的logo以及版本相关的信息!可能很多朋友不知道,这个logo的是可以自定义的,而且自定义起来还非常简单,只需要在resources目录下放上一个banner配置,SpringBoot启动的时候,加载txt文件或者图片文件,就会展示对应的内容;org.springframework.boot.ResourceBanner文本格式,SpringBoot .
用 Long 做 Map 的 Key,存的对象花一下午才取出来,坑惨了 大家好,我是一航!事情是这样!某天中午午休完,正在开始下午的搬砖任务,突然群里面热闹起来,由于忙,也就没有去看,过了一会儿,突然有伙伴在群里@我,就去爬楼看了一下大家的聊天记录,结果是发现了一个很有意思的Bug;看似很基础Map的取值问题,对于基础不是特别扎实的朋友来说,但如果真的遇到,可能会被坑惨,群里这位老弟就被坑了一下午,在这里分享给大家。讨论的起因是一个老弟问了这样一个问题:简单一句话表述就是:接口回了个Map,key是Long型的,Map中有数据,可取不到值;由于基础数据类型的Key.
ApiPost 真香真强大,是时候丢掉 Postman、Swagger 了 ????3万字总结Java自学、进阶线路图、学习资料大家好,我是一航!如果你是一名Java后端开发工程师,像Swagger、Postman、RAP这些工具,应该再熟悉不过了吧!为我们的接口开发工作带来了很多的便捷,不过因为这些都是独立的框架,之间并不存在互通性,因此在多个框架间协调的时候,不可避免的会带来一些重复性的工作;今天来介绍一款强大的国产工具:ApiPost,将Swagger 、 Postman 、 RAP 、 JMeter 的功能完美的做了整合,一款工具,全部搞定。什么是ApiPost
怒肝3W字Java学习路线!从入门到封神全包了(建议收藏) 大家好!我是一航!长文警告!!!预计阅读耗时30分钟,你忍一下,但相信看完你不会后悔的;如果没有充足的时间,可以考虑先收藏着;公众号【一行Java】后台回复【Java路线】,即可获取完整的思维导图。最近和各位小伙伴儿私下聊的比较多,各个阶段的朋友都有;因为大环境的内卷,导致大家在求学、求职、提升自己的各个方面都多多少少有些迷茫焦虑;这些其实是一个非常普遍且正常的现象,会焦虑的人,往往都是对自己要求比较严苛的好同志;如果躺平了,何来焦虑可言!鉴于其中关于学习方向,学习路线的问题,其实网络如此发达.
原来理解 Spring AOP 可以这么简单! 大家好!我是码锅(mbb)!一个乐于分享全栈(自封)的程序员。作为一名Java后端开发,AOP这个牛皮哄哄的名词一定听过、用过;但是对于刚入行的新手,甚至部分有几年开发经验的程序员来说,在初次理解它的时候,都会有点点的吃力;因为和我们一开始就接触的面向对象编程(OOP)思想有些出入,加上概念比较的空泛,导致很多人一直以来都有那么点似懂非懂的感觉;(懂了,但只懂了一点点...)今天,咱就以一个生活中的故事场景,一起来好好理解一下;在讲故事场景之前,还是得先说一下AOP常用到的一些概念、名词;说在前面,方便一会