Java 8 引入的 Stream 极大地简化了集合数据的处理,提供了一种现代、函数式的方式来处理数据。然而,在处理流时,我们经常需要将流的结果汇总到集合中或者进行各种统计计算。这就是收集器(Collectors)发挥作用的地方。本文将深入探讨 Java 8 Stream 中的收集器,介绍收集器的各种用法和技巧,帮助你更好地利用收集器处理数据。…
前言 MyBatis是常见的Java数据库访问层框架。在日常工作中,开发人员多数情况下是使用MyBatis的默认缓存配置,但是MyBatis缓存机制有一些不足之处,在使用中容易引起脏数据,形成一些潜在的隐患。个人在业务开发中也处理过一些由于MyBatis缓存引发的开发问题,带着个人的兴趣,希望从应用及源码的角度为读者梳理MyBatis缓存机制。…
在日常写Java的时候,对于字符串的操作是非常普遍的,其中最常见的就是对字符串的组织。也因为这个操作非常普遍,所以诞生了很多方案,总下来大概有这么几种: 使用 + 拼接 使用 StringBuffer 和 SpringBuilder String::format and String::formatted 使用…
病症 web服务跑着跑着响应越来越慢,最终网页白页的,一查进程还活着,socket连接高,十有八九线程死锁没得到释放,最后没线程资源执行任务导致白页等待。 最有效的排查方法 最直接的排查方法就是,dump下内存快照,去查看线程信息,看看是否有大量的线程处于等待状态。基本上就能定位是哪里的问题。 常见的几种线程死锁的场景…
hutool是近几年非常火的工具包,里面包含了我们日常开发常用的工具类,这里我们以zip压缩文件为例演示一下具体操作方法 首先我们创建一个压缩文件,目录为 D:\\zip\\测试.zip 里面存放两个excel文件 操作用例如下: public static void main(String[] args){ String…
1、类 与 对象 类(class)对象(Object)是面向对象核心概念。 类是对一类事物的描述,是抽象的、概念上的定义 对象是实际存在该类事物的每个个体 2、对象内存解析 (1)堆(Heap):此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。(JVM规范描述:所有对象实例以及数组都在堆上分配)…
(1)== 如果比较的是基本数据类型变量,比较两个变量保存的数据是否相等 如果比较的引用数类型变量,比较的是对象的地址值是否相同 (2)equals 像string、date、file、包装类等都重写Object类中的equals方法。重写以后比较的不是两个引用的地址是否相同,而是比较两个对象的“实体内容”是否相等。…
接口 :接口是Java 语言中的一种引用类型,它是抽象方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么接口的内部主要就是封装了方法 接口用关键字interface修饰 class 类名 implements 接口名{}…
给新人总结了25条建议 1.写好注释 很多小伙伴不愿意给代码写注释,主要有以下两个原因: 开发时间太短了,没时间写注释。 《重构》那本书说代码即注释。 我在开发的前面几年也不喜欢写注释,觉得这是一件很酷的事情。…