随笔分类 - java
摘要:为了避免简单工厂模式的缺点,不完全满足 OCP(对扩展开放,对修改关闭)。 工厂方法模式和简单工厂模式最大的不同在于,简单工厂模式只有一个(对于一 个项目或者一个独立的模块而言)工厂类,而工厂方法模式有一组实现了相同接 口的工厂类。这样在简单工厂模式里集中在工厂方法上的压力可以由工厂方法模 式里不同
阅读全文
摘要:概念 CyclicBarrier 是 Java 中的另一个同步辅助类,它可以让一组线程互相等待,直到所有线程都达到一个屏障点后再继续执行。与 CountDownLatch 不同的是,CyclicBarrier 的计数器可以循环使用,当所有线程都到达屏障点后,计数器会重置,可以被复用。 所谓 Cycl
阅读全文
摘要:概念解释 CountDownLatch 是 Java 中的一个同步辅助类,它可以让一个或多个线程等待其他线程完成操作后再继续执行。CountDownLatch 内部维护了一个计数器,当计数器的值减为0时,所有等待的线程就会被唤醒。 CountDownLatch 的主要方法包括: 构造方法:Count
阅读全文
摘要:使用 native 关键字说明这个方法是原生函数,也就是这个方法是用 C/C++等非Java 语言实现的,并且被编译成了 DLL,由 java 去调用。 (1)为什么要用 native 方法 java 使用起来非常方便,然而有些层次的任务用 java 实现起来不容易,或者我们对程序的效率很在意时,问
阅读全文
摘要:ABA 问题描述: 假设有两个线程,线程 1 和线程 2,线程 1 工作时间需要 10 秒,线程 2 工作需要 2 秒; 主内存值为 A,第一轮线程 1 和线程 2 都把 A 拿到自己的工作内存; 第 2 秒,线程 2 开始执行,线程 2 工作完成把 A 改成了 B ; 第 4 秒,线程 2 把 B
阅读全文
摘要:可以使用Java 8的Stream API来实现这个需求。具体步骤如下: 1. 创建一个新的集合,用于存放合并后的元素。2. 使用Stream的filter()方法过滤出id相同的元素。3. 使用Stream的map()方法将id相同的元素合并成一个新的元素,其中别的属性可以通过自定义的合并规则来实
阅读全文
摘要:什么是函数式(Functional)接口 只包含一个抽象方法的接口,称为函数式接口。 你可以通过 Lambda 表达式来创建该接口的对象。(若 Lambda 表达式抛出一个受检异常(即:非运行时异常),那么该异常需要在目标接口的抽象方法上进行声明)。 我们可以在一个接口上使用 @Functional
阅读全文
摘要:Java 8引入了Lambda表达式,它是一种简洁而强大的编程语法。Lambda表达式可以作为参数传递给方法,或者用于函数式接口的实现。 Lambda表达式的语法非常简单。它由箭头(->)分为两部分:左侧是参数列表,右侧是表达式体。参数列表可以省略类型,编译器会根据上下文自动推断出类型。表达式体可以
阅读全文
摘要:Java 8引入了许多新的集合操作功能,包括但不限于以下几项: forEach:使用Lambda表达式遍历集合中的每个元素。 stream:将集合转换为流,以便进行各种操作,如过滤、映射、排序等。 filter:根据指定的条件过滤集合中的元素,并返回过滤后的结果。 map:将集合中的每个元素映射为另
阅读全文
摘要:用java找出两个集合中相同的元素和不通的元素 假设有两个集合A和B,可以通过以下代码找出它们中相同的元素和不同的元素: import java.util.*; public class Main { public static void main(String[] args) { Set<Inte
阅读全文
摘要:1.可设置Map中的Entry在一段时间后自动过期。 2.可设置Map最大容纳值,当到达Maximum size后,再次插入值会导致Map中的第一个值过期。 3.可添加监听事件,在监听到Entry过期时调度监听函数。 4.可以设置懒加载,在调用get()方法时创建对象。 <dependency> <
阅读全文
摘要:import java.math.BigDecimal; /** * 用于高精确处理常用的数学运算 * Created by lijuan on 2016/8/27. */ public class ArithmeticUtils { //默认除法运算精度 private static final
阅读全文
摘要:LocalDateTime前后端传递转时间戳注解 @JsonDeserialize(using = LocalDateTimeDeserializer.class) @JsonSerialize(using = LocalDateTimeSerializer.class) 实体类加上这两个注解的作用
阅读全文
摘要:import javax.imageio.ImageIO; import javax.swing.*; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOu
阅读全文
摘要:@RequestMapping(value = "save", method = RequestMethod.POST) public R save(@RequestParam("imgFile") MultipartFile file) { String fileName = file.getOr
阅读全文
摘要:import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component; import javax.annotation.Resource; imp
阅读全文
摘要:我这里提供的是mybatis plus 和 xml配置文件结合的方式:直接从service层开始写: service //这是service层,多表分页的简单逻辑处理,重点是IPage 和 Map, // IPage 就是分页,把分页的参数传进来进行使用 // Map 是用来传参数使用的,携带你需要
阅读全文
摘要:集合转为数组 List<Long> chargeIds =new ArrayList<Long>(); Long [] ids=(Long[])chargeIds.toArray(); List<Map<String,Object>>转List<T> list map对象转list对象 List<M
阅读全文
摘要:java8中时间的各种转换(LocalDateTime) 1.将LocalDateTime转为自定义的时间格式的字符串 public static String getDateTimeAsString(LocalDateTime localDateTime, String format) { Dat
阅读全文
摘要:/** * request转字符串 * @param request * @param charset 编码格式 (UTF-8) * @return * @see [类、类#方法、类#成员] */ public static String parseRequst(HttpServletRequest
阅读全文