随笔分类 - java
关于java语言的博客
摘要:什么是BOM头 Unicode的学名是"Universal Multiple-Octet Coded Character Set",简称为UCS。UCS可以看作是"Unicode Character Set"的缩写。在UCS 编码中有一个叫做 "Zero Width No-Break Space",
阅读全文
摘要:前言 强制停止一个线程是不安全的,线程什么时候可以停止,只有线程自己知道,我们模拟主线程中启动一个工作线程,主线程睡眠3秒后去停止工作线程。 标志位 public class ThreadCloseGraceful { private static class Worker extends Thre
阅读全文
摘要:前言 进程是操作系统进行资源分配和调度的基本单位,线程是操作系统能够进行运算调度的最小单位,一个进程可以有很多线程,每个线程并行执行不同的任务,java中的线程就是Thread类。 简单使用 public class Client { public static void main(String[]
阅读全文
摘要:前言 StreamAPI是java8提供的一种方便,高效操作容器的工具。可以根据数组或集合创建一个流。 简单使用 import java.util.Arrays; import java.util.stream.Collectors; import java.util.stream.Stream;
阅读全文
摘要:前言 监控文件的创建,修改和删除 实现 使用java内置的WatchService import java.io.IOException; import java.nio.file.FileSystems; import java.nio.file.Path; import java.nio.fil
阅读全文
摘要:前言 StreamAPI是java8提供的一种方便,高效操作容器的工具。 简单使用 import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class Client { pu
阅读全文
摘要:错误描述 import java.util.Arrays; import java.util.Comparator; import java.util.List; public class Client { public static void main(String[] args) { List<
阅读全文
摘要:简介 将阿拉伯数字转换成中文大写,如将123.45转换成壹佰贰拾叁元肆角伍分。 代码实现 import java.util.regex.Pattern; public class CurrencyUtil { private CurrencyUtil() { } //无效字符 private sta
阅读全文
摘要:前言 短网址就是将一个长网址转换成一个短网址,访问短网址会重定向到原来的长网址,短网址会更利于传播和推广。微博就会将我们发的长网址转换成短网址, 显示效果 查看HTML源码 微博将 https://www.cnblogs.com/strongmore/p/14520111.html 转换成了http
阅读全文
摘要:错误描述 Integer totalCount = jdbcTemplate.query("select count(*) as count from xxx", (rs) -> { return rs.getInt("count"); }); 错误信息 Caused by: com.microso
阅读全文
摘要:简介 GIF图形交换格式是一种位图图形文件格式,以8位色(即256种颜色)重现真彩色的图像。它实际上是一种压缩文档,采用LZW压缩算法进行编码,有效地减少了图像文件在网络上传输的时间。它是目前广泛应用于网络传输的图像格式之一。 优点 优秀的压缩算法使其在一定程度上保证图像质量的同时将体积变得很小。
阅读全文
摘要:前言 java中哈希码有以下约定: 在同一个java程序执行过程中,不论调用hashCode方法多少次,都要返回相同的值, 两个对象的equals方法相同,hashCode方法一定相同, 两个对象的equals方法不相同,hashCode方法不一定不同, 两个对象的hashCode方法不相同,equ
阅读全文
摘要:前言 snowflake可以生成全局唯一且有序的Id,相对来说UUID也可以实现,但是无序且长度太长,为36位。 第一位固定为0,表示正数 41位表示时间戳,一共可以使用69年 5位表示数据中心节点,5位表示机器标识,一共可以支持1024个节点 12位表示一毫秒内的序列号,共4096个 代码实现 /
阅读全文
摘要:前言 YAML(YAML Ain't Markup Language),也可以叫做YML,是一种人性化的数据序列化的语言,类似于XML,JSON。SpringBoot的配置文件就支持yaml文件。官网 语法 大小写敏感 使用缩进表示层级关系 缩进时不允许使用Tab键,只允许使用空格。 缩进的空格数目
阅读全文
摘要:简介 floor表示小于等于该值的最大整数,向下取整,趋近于正无穷。ceil表示大于等于该值的最小整数,向上取整,趋近于负无穷。round表示最接近该值的整数,趋近于正无穷。 测试代码 import java.util.List; public class Main { public static
阅读全文
摘要:前言 JAR(Java Archive File),表示Java档案文件,是一种压缩文件,与常见的ZIP压缩文件兼容。区别在于JAR文件中默认包含一个名为META-INF/MANIFEST.MF的清单文件,这个文件是生成JAR文件时由系统自动创建的。我们可以将代码打包成jar,加入到classpat
阅读全文
摘要:前言 BitSet实现了一个按需增长的位向量,每一位都是一个boolean值,可以对每一位进行设置或清除,常用场景就是判断一个数据在一个大数据集中是否存在。 使用 有1千万个随机数,随机数的范围在1到1亿之间。现在要求写出一种算法,将1到1亿之间没有在随机数中的数求出来? import java.u
阅读全文
摘要:简介 在项目中我们有时候会遇到操作PDF文件的需求,如将PDF的每一页转换成图片,今天我们就来实现一下相关功能。 实现 引入依赖 <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <ve
阅读全文
摘要:简介 我们在项目中经常会遇到图片上传的需求,如商品图片,但图片太大的话,在客户端加载太慢影响用户体验,所有一般会将图片进行压缩。 实现 原图 添加依赖 <dependency> <groupId>net.coobird</groupId> <artifactId>thumbnailator</art
阅读全文
摘要:简介 我们在项目中可能会遇到将经纬度转换成省市区的需求,这个时候需要各种地图提供的API,这里我们使用百度地图的API。百度地图开放平台,以下所指的经纬度都是百度地图的经纬度。 代码实现 添加一些工具的maven依赖,本例我们使用JDK11 <dependency> <groupId>org.apa
阅读全文