BigDecimal
摘要:不论是float 还是double都是浮点数,而计算机是二进制的,浮点数会失去一定的精确度。 虽然双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算, 1. 在商业计算中要用java.math
阅读全文
posted @
2021-09-21 10:01
smile学子
阅读(245)
推荐(0) 编辑
优先队列
摘要:一、概述 优先队列PriorityQueue是Queue接口的实现,可以对其中元素进行排序,默认排列顺序是升序排列 可以放基本数据类型的包装类(如:Integer,Long等)或自定义的类 底层:二叉堆 特点:堆的某个节点总是不大于其父亲节点的值 二、常用方法 peek()//返回队首元素 poll
阅读全文
posted @
2021-09-20 22:45
smile学子
阅读(71)
推荐(0) 编辑
Guava Lists 类
摘要:Guava系列之超实用的集合工具类 依赖: <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>19.0</version> </dependency> 主要方法: 各种创建
阅读全文
posted @
2021-09-20 14:23
smile学子
阅读(496)
推荐(0) 编辑
Collectors.groupingBy
摘要:Collectors.groupingBy根据一个或多个属性对集合中的项目进行分组 作用:对一个list进行分组 数据准备: public Product(Long id, Integer num, BigDecimal price, String name, String category) {
阅读全文
posted @
2021-09-17 21:57
smile学子
阅读(455)
推荐(0) 编辑
异常
摘要:一、背景: Exception分为运行时异常RuntimeException和非运行时异常,而error是一定会回滚的。 运行时异常:要么线程中止,要么主程序终止。 如果不想终止,则必须捕获所有的运行时异常,不让这个处理线程退出,这样队列里面就会出现异常数据。 正常的处理应该是把异常数据舍弃,然后记
阅读全文
posted @
2021-09-14 11:07
smile学子
阅读(30)
推荐(0) 编辑
拦截器
摘要:1、编写拦截器实现类 实现接口 HandlerInterceptor,重写方法,实现业务逻辑代码(就是拦截器拦截时做什么处理) a. public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
阅读全文
posted @
2021-09-13 19:11
smile学子
阅读(50)
推荐(0) 编辑
建造者模式
摘要:当遇到多个构造器参数时,要考虑使用构建器(Builder模式) 举个例子,Person类,假设该类有7个属性,其中有2个是必要的参数需要初始化,分别是id和name。 public class Person { //必要参数 private int id; private String name;
阅读全文
posted @
2021-09-12 15:35
smile学子
阅读(32)
推荐(0) 编辑
Spring的注入方式
摘要:要注入的类: public class Bowl { public void putRice() { System.out.println("盛饭..."); } } 一、构造方法注入 Person类: public class Person { private Bowl bowl; public
阅读全文
posted @
2021-09-08 16:08
smile学子
阅读(365)
推荐(0) 编辑
DuplicateKeyException
摘要:mysql设置唯一约束可能会引起DuplicateKeyException 对数据库做插入操作时,需要先捕获该异常catch (DuplicateKeyException e) 再抛出异常信息throw new xxxException(xxxExceptionCode.XXX_ERROR,e) 如
阅读全文
posted @
2021-09-07 11:23
smile学子
阅读(7084)
推荐(0) 编辑
二分查找-数组
摘要:二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nums = [-1,0,3,5,9,12], target = 9 输出: 4 解释: 9 出现
阅读全文
posted @
2021-09-06 19:43
smile学子
阅读(26)
推荐(0) 编辑
Java集合中removeIf的使用
摘要:在JDK1.8中,Collection以及其子类新加入了removeIf方法,作用是按照一定规则过滤集合中的元素。 举例:Person类只有三个成员属性,分别是姓名name,年龄age和性别gender。现要过滤age大于等于40的求职者。 //求职者的实体类 public class Person
阅读全文
posted @
2021-09-05 19:56
smile学子
阅读(623)
推荐(1) 编辑
String.format()
摘要:格式化字符串以及连接多个字符串对象 format(String format, Object… args) 字符类型和整数类型的格式化 转换符 详细说明 示例 %s 字符串类型 “喜欢请收藏” %c 字符类型 ‘m’ %b 布尔类型 true %d 整数类型(十进制) 88 %x 整数类型(十六进制
阅读全文
posted @
2021-09-04 18:39
smile学子
阅读(52)
推荐(0) 编辑
toPlainString() 和 toString()
摘要:在得到的小数,要对其小数点后面的零是否进行处理 对得到的数据用科学计数法:String.toString() 不使用科学计数法:String toPlainString() 举例: BigDecimal num = new BigDecimal("0.00000000123456789"); Sys
阅读全文
posted @
2021-09-03 10:06
smile学子
阅读(1538)
推荐(0) 编辑
ImmutableMap
摘要:Java中的Immutable对象,如果一个对象实例不能被更改就是一个Immutable的对象,比如String等都是Immutable的对象。 ImmutableMap:一个不可变集合 1.为什么使用它呢? 线程安全、更有效的利用内存、可作为常量 2.导入依赖: <dependency> <gro
阅读全文
posted @
2021-09-02 10:23
smile学子
阅读(1605)
推荐(0) 编辑
数据库的乐观锁/悲观锁
摘要:1、数据库悲观锁 认为数据在被修改的时候一定会存在并发问题,因此在整个数据处理过程中将数据锁定。 数据库的行锁、表锁、排他锁等都是悲观锁,通过使用select...for update语句, 执行该语句后,会在表上加持行锁,一直到事务提交,解除行锁。 1.1 使用场景举例: 在秒杀案例中,生成订单和
阅读全文
posted @
2021-09-01 00:00
smile学子
阅读(2072)
推荐(0) 编辑