![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
路飞菌呀
自律给我自由!
展开
-
BigDecimal的比较用compareTo而不是equals
背景:近写BigDecimal的数字比较,123和123.00居然被认为是不等的两个数测试效果如下:后翻源码发现:1.equals方法比较value和scale(数值和精度),精度不一样,也返回false2.compareTo的描述,数值相同但是精度不同的两个数(例如123和123.00)被认为是相等的两个数,返回0另附a.compareTo(b)方法的返回含义a<b, 返回-1a=b,返回0a>b, 返回1...原创 2021-02-23 15:37:30 · 247 阅读 · 0 评论 -
BigDecimal出现多位小数问题
背景:用bigdecimal,结果出现一大堆小数public static void bigDcimalDot() { System.out.println(new BigDecimal(3.1415926)); //打印结果:3.14159260000000006840537025709636509418487548828125 System.out.println(new BigDecimal("3.1415926")); //打印结果:3.14159原创 2021-01-18 16:22:48 · 2036 阅读 · 1 评论 -
Map遍历的几种方法
public void test() { Map<String, String> map = new HashMap<>(4); map.put("a", "A"); map.put("b", "B"); map.put("c", "C"); /* 1: map.keySet() */ //获取所有的 key,根据 key 取出对应的value for (String key : map.keySet()) { Sy原创 2021-01-18 15:57:52 · 163 阅读 · 0 评论 -
数字去除尾巴多余的零,且至少保留两位小数
背景: 近期做开发时遇到的一个数字格式转换问题,mysql里金额,数字字段,类型都是decimal(16,8),要求返给前端格式1: 去掉小数尾巴多余的0,如12.345000->12.3452: 至少保留2位小数,如12.345->12.345,12,34->12.34,12.3->12.30,12->12.00网上查找方法,发现多是部分格式处理方案,无法解决问题,故自写全,原创 2021-01-18 15:31:34 · 1012 阅读 · 0 评论 -
Java统计list集合中各元素的存在数量,重复数据
/** * @Description 统计list集合中重复的数据 * @Author Luffy * @Date 2020/09/29 */public static void listRepeatTest() { List<String> list = new ArrayList<>(); list.add("a"); list.add("a"); list.add("a"); list.add...原创 2020-09-29 16:10:09 · 4178 阅读 · 0 评论 -
《Java开发手册(泰山版)》内容摘取,个人笔记
背景:这几天挤时间看了阿里的《Java开发手册(泰山版)》,选取记录了部分常见或可作为参考的地方,也是一个自我梳理的过程。一、编程规约(一) 命名风格1.【强制】包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。正例:应用工具类包名为 com.alibaba.ei.kunlun.aap.util、类名为 MessageUtils(此规则参考 spring 的框架结构)2.【强制】避免在子父类的成员变量之间、或者不原创 2020-09-29 15:52:32 · 337 阅读 · 0 评论 -
《Java开发手册(嵩山版)灵魂15问》读后笔记,内容提炼
本文背景:这两天读了《Java开发手册(嵩山版)灵魂15问》,起先读之有所得,便随手记了一些笔记,写着写着觉得应该系统整理下,便针对每一个问题进行了内容提炼,也是一个自我梳理的过程。笔记:1.为什么禁用Apache BeanUtils进行属性Copy答:Apache BeanUtils 力求完美 , 在代码中增加了非常多的校验、兼容、日志打印等代码,过度的包装导致性能下降严重。尤其执行次数多的时候简直是灾难性的。Spring BeanUtils的Copy 效率最高。2.为什么日期格式用y表示年,原创 2020-09-18 15:26:15 · 274 阅读 · 0 评论 -
invalid comparison: java.util.Date and java.lang.String异常原因
背景:实体里的字段定义为日期格式private Date thru_date;myBatis的mapper里if条件(做了字符串的非空判断) <if test="thruDate!=null and thruDate!=''"> <![CDATA[ and thru_date >= #{thruDate} ]]> </if>解决方案(仅做常态null的非空判断)原创 2020-09-14 17:36:38 · 1329 阅读 · 1 评论 -
用POI做excel导入功能,各种校验控制
背景:导入功能图示:excel:模板功能简述:根据文件地址,获取文件,解析校验表单(标题行,数据行各种校验),存入数据,返回异常数据错误信息(错误位置,错误原因)本文重点(表单的校验)1.标题行1.1 非空,字符串校验1.2 名称校验(如;票据号码)1.3 顺序校验(防止客户误操作移动列,导致数据插入进db的非对应字段)2. 数据行各种校验)2.1 非空,数据格式校验(字符串,数字,日期等)2.2 长度校验(恒等的长度,以及最大的长度)2.3 数据合理性校验(金额范围,出票日期原创 2020-09-14 17:05:55 · 4027 阅读 · 1 评论 -
IDEA里的plugin加载不出来了!
通常原因:idea(误)认为网络不安全,不允许访问了,这是由IDEA的网络安全机制判断造成的。解决方案:1 settings–>appearance and preference–>system settings—>proxy—auto detect proxy 勾选2 settings–>appearance and preference–>system settings—>updates—use secure connection 取消勾选备注:有的i原创 2020-09-09 17:06:24 · 1158 阅读 · 0 评论 -
IDEA从Dao层跳转到对应mapper文件设置(插件)
「file」– 「settings」– 「plugins」– 「MarketPlace」如图路径搜索 mybatis plugin ,安装重启即可原创 2020-09-09 16:50:37 · 8460 阅读 · 0 评论 -
Mybatis Plus的主键策略!
Mybatis Plus的主键策略有如下几种:AUTO 数据库ID自增使用AUTO策略时,db建表时需要将主键设置成AUTO_INCREMENT,否则不能插入INPUT 用户输入IDID_WORKER_STR 字符串全局唯一ID字符串全局唯一IDUUID 全局唯一ID,UUID类型的主键NONE 该类型为未设置主键类型ID_WORKER 全局唯一ID,Long类型的主键(类型是重点,db里对应bigint类型,常见错误db里的字段类型为int,此长度范围不够)...原创 2020-09-09 16:39:48 · 331 阅读 · 0 评论 -
IDEA里自定义注释,个性化快捷键添加作者,描述,创建时间等信息的设置方法
IDEA里自定义注释,个性化快捷键添加作者,描述,创建时间等信息的设置方法欢迎使用Markdown编辑器一: 打开设置二: 设置并保存三: 使用方法欢迎使用Markdown编辑器当前实例使用的是IntelliJ IDEA 2019.2.3(Ultimate Edition),不过各版本此相关设置几乎一样.一: 打开设置二: 设置并保存如图右上角自定义组(如:myGroup),然后在里面自定义模板(如:mt),然后在模板里自定义注释内容,如图中下方红款所示.三: 使用方法在类或方法上方按原创 2020-09-09 11:22:16 · 5770 阅读 · 0 评论 -
mybatis中resultType返回类型
mybatis中resultType可选类型:1,java的基础类型及其包装类int,double和java.lang.Integer,java.lang.Double等2,实体类,自己定义的实体类3,map类型,如果使用resultMap可以使用自定义map;4,集合,即返回的时一个List集合,其中该集合的类型可以为1,2,3中提到的类型Map的demo:Dao层的返回类型为Map<String, Object>key是对应的column值,value是数据中的数据原创 2020-09-08 18:07:01 · 2873 阅读 · 1 评论 -
No validator could be found for constraint ‘javax.validation.constraints.NotEmpty‘ validating type
如上异常信息,就是用错了检验的注解几个非空校验的具体用法:@NotEmpty 用在集合类上面@NotBlank 用在String上面@NotNull 用在基本类型上原创 2020-09-08 17:20:04 · 301 阅读 · 0 评论 -
在一个重男轻女的国家里,每个家庭都想生男孩,如果他们生的孩子是女孩,就再生一个,直到生下的是男孩为止。这样的国家,男女比例会是多少?
设X表示生孩子的数目,那么又提议可知P{X=n}=1/(2^n),生孩子数目的期望为E{X}=1*(1/2)+2*(1/4)+...+n*(1/2^n),E{X}=2;所以男女比例1:1原创 2020-04-03 10:16:46 · 1877 阅读 · 0 评论 -
通过Java,以三种方式获取输入日期(格式:YYYY-MM-DD)所在月份的最后一天
package com.pratise;import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Scanner;原创 2017-09-03 22:40:11 · 7312 阅读 · 0 评论