理解 BigDecimal 的 RoundingMode

在金融等对数据精度计算要求较高的领域,传统 double 运算无法满足要求, BigDecimal 类应运而生。实际使用中,RoundingMode 这个枚举类控制着小数的舍位原则,本文对该枚举类进行介绍。 一、RoundingMode.DOWN等价枚举: BigDecimal.ROUND_DOWN 舍位原则: 粗暴截断舍弃位,不考虑任何进位舍位操作 例: Scale = 2 1234Origin...

探讨 Spring MVC 能否注入 Request 和 Response

一、引言当我们第一次接触到 Java Web 开发,从最原生的 Servlet 方法开始,我们就知道在 doGet() 或者 doPost() 方法有两个形参,分别是 HttpServletRequest 和 HttpServletResponse,这两个参数代表了 web 容器为我们封装的 HTTP 请求和 HTTP 响应。 当 Java Web 进化到 SpringMVC 中,一系列的杂活脏活...

从 Git 仓库的 Commit 历史中移除敏感文件

在很多情况,我们由于疏忽会将一些敏感信息误传到 Git 仓库上面去。 尽管我们可以使用 git rm 将包含敏感信息文件删除掉,然后重新提交上传,文件就不会在仓库文件列表显示。 但是这并不能完全将敏感信息文件从仓库中完全删除, commit history 仍然会有敏感信息的文件的残留,我们仍然可以从仓库中的 commit history 中访问到文件。 如果想要将敏感信息文件完全删除。不仅需要将...

Java Switch 是如何支持 String 的,为什么不支持 long

我们知道 Java Switch 支持byte、short、int 类型,在 JDK 1.5 时,支持了枚举类型,在 JDK 1.7 时,又支持了 String类型。那么它为什么就不能支持 long 类型呢,明明它跟 byte、short、int 一样都是数值型,它又是咋支持 String 类型的呢? 一、结论不卖关子,先说结论: switch 底层是使用 int 型 来进行判断的,即使是枚举、S...

String hashCode 方法为什么选择数字31作为乘子

一、背景某天,我在写代码的时候,无意中点开了 String hashCode 方法。然后大致看了一下 hashCode 的实现,发现并不是很复杂。但是我从源码中发现了一个奇怪的数字,也就是本文的主角31。在接下来章节里,请大家带着好奇心和我揭开数字 31 的用途之谜。 二、选择数字31的原因在详细说明 String hashCode 方法选择数字31的作为乘子的原因之前,我们先来看看 String...

详解 Guava Cache

一、Guava Cache一般在项目中,本地缓存的实现为 ConcurrentHashMap,它具有线程安全、持久有效的特点。但是相较于传统缓存,它不具备缓存过期、缓存移除等特性,Google Guava 包内的 Cache 模块可能会给你一个新的选择。 Guava 目前托管于 GitHub,在项目中引入也是十分简单: 1234567<dependency> <groupI...

Markdown 使用进阶教程

一、为什么要学习 Markdown? 语法简练,上手迅速 纯文本、轻量级 支持协作开发 所想即所得 跨平台、高兼容 使用广泛 二、Markdown 语法2.1 标题使用多个 # 的方式实现标题,Markdown 支持 1 ~ 6 级标题,6级标题以上将不会被识别。 123456# 一级标题## 二级标题### 三级标题#### 四级标题##### 五级标题###### 六级标题 2.2 粗体、斜...

详解 MySQL下的行表锁

阅读本文前,请务必查看先导文章:数据库基础理论阅读本文后,你可以查看延申文章:[MySQL] 行级锁SELECT … LOCK IN SHARE MODE 和 SELECT … FOR UPDATE 一、MyISAM 引擎MyISAM 是 MySQL 5.1 之前的默认搜索引擎,我们都知道,MyISAM 采用表锁,即操作一条记录也会锁住整张表。适合做主要查询、非事务的表的引擎。下面演示下 My...

解决 MySQL 报错 Expression #1 of SELECT list is not in GROUP BY clause and contains nonag...

一、问题描述运行 sql 后报错: 123Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘day_offset’ which is not functionally dependent on columns in GROUP BY clause; this is in...
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×