12 2020 档案
摘要:前言 YAML(YAML Ain't Markup Language),也可以叫做YML,是一种人性化的数据序列化的语言,类似于XML,JSON。SpringBoot的配置文件就支持yaml文件。官网 语法 大小写敏感 使用缩进表示层级关系 缩进时不允许使用Tab键,只允许使用空格。 缩进的空格数目
阅读全文
摘要:简介 floor表示小于等于该值的最大整数,向下取整,趋近于正无穷。ceil表示大于等于该值的最小整数,向上取整,趋近于负无穷。round表示最接近该值的整数,趋近于正无穷。 测试代码 import java.util.List; public class Main { public static
阅读全文
摘要:前言 二叉搜索树(又叫二叉查找树,二叉排序树)是一种特殊的二叉树,根节点的值大于左孩子的值,小于右孩子的值。示例图如下 二叉树定义 /** * 自己实现二叉搜索树 */ public class BST<E extends Comparable<E>> { /** * 根节点 */ private
阅读全文
摘要:前言 JAR(Java Archive File),表示Java档案文件,是一种压缩文件,与常见的ZIP压缩文件兼容。区别在于JAR文件中默认包含一个名为META-INF/MANIFEST.MF的清单文件,这个文件是生成JAR文件时由系统自动创建的。我们可以将代码打包成jar,加入到classpat
阅读全文
摘要:前言 栈(Stack)是一种后进先出的数据结构,仅允许在栈顶插入、删除、读取。队列(Queue)是一种先进先出的数据结构,队头读取、删除,队尾插入。 使用数组实现栈 使用到的MyArrayList和MyLinkedList详情请查看 java实现一个自己的ArrayList和LinkedList p
阅读全文
摘要:前言 java中的ArrayList和LinkedList都是我们很常用的数据结构,了解它们的内部实现原理可以让我们更好的使用它们。 代码实现 ArrayList import java.util.Arrays; import java.util.Collection; import java.ut
阅读全文
摘要:前言 BitSet实现了一个按需增长的位向量,每一位都是一个boolean值,可以对每一位进行设置或清除,常用场景就是判断一个数据在一个大数据集中是否存在。 使用 有1千万个随机数,随机数的范围在1到1亿之间。现在要求写出一种算法,将1到1亿之间没有在随机数中的数求出来? import java.u
阅读全文
摘要:简介 今天突发奇想想给自己的博客添加用户访问统计,记录一下有没有用户访问,以及访问时间等信息,搜索了一下,发现有 百度统计 和 Google Analytics 两种工具,今天都添加一下。 准备工作 博客园后台需要申请JS权限,详情可以看 博客园Markdown代码块添加复制功能 这篇博客。 添加百
阅读全文
摘要:简介 在项目中我们有时候会遇到操作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
阅读全文
摘要:简介 EXIF(Exchangeable Image File format)是“可交换图像文件”的缩写,当中包含了专门为数码相机的照片而定制的元数据,可以记录数码照片的拍摄参数、缩略图及其他属性信息。 EXIF 所记录的元数据信息非常丰富,主要包含了以下几种信息: 拍摄日期 拍摄器材(机身、镜头、
阅读全文
摘要:简介 Data URI 定义的内容可以作为小文件被插入到其他文档之中。Data URI 的格式十分简单,如下所示: data:[<mime type>][;charset=<charset>][;base64],<encoded data> 第一部分是 data: 协议头,它标识这个内容为一个 da
阅读全文
摘要:简介 JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。从另一方面来讲,J
阅读全文
摘要:简介 平时我们都是使用WinZip,2345好压等软件来操作zip文件,java也提供了ZipOutputStream,ZipEntry等API创建和解析zip文件。 压缩 import java.io.BufferedInputStream; import java.io.File; import
阅读全文
摘要:简介 java关于压缩和解压缩的核心类就是Defalter(压缩)类和Inflater(解压)类,操作GZip和Zip文件也是基于这两个类。Tomcat对响应数据的压缩就是基于GZip。 使用Deflater和Inflater解压缩 import java.io.BufferedInputStrea
阅读全文
摘要:简介 在项目中使用到Excel是很常见的,如批量导入数据,批量导出数据。这里我们使用Apache的开源项目POI来操作Excel。官网 添加依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifac
阅读全文
摘要:简介 IDEA是我们常用的开发工具,我们也会用到很多IDEA提供的插件,如lombok插件,checkstyle插件等,今天我们就来开发一个自己的插件。 环境准备 IDEA安装PluginDevkit插件,这是一个帮助我们开发插件的插件。 创建插件项目 创建成功之后的项目结构为 plugin.xml
阅读全文
摘要:简介 Class.getResourceAsStream()和ClassLoader.getResourceAsStream()方法都是从项目中读取文件,但很容易被搞混。 ClassLoader public class Client2 { public static void main(Strin
阅读全文