自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (2)
  • 收藏
  • 关注

原创 java实现倒水瓶排序

最近看到一个小游戏倒水瓶很火, 就想用java来实现一下。

2023-09-28 10:40:24 366

转载 压缩图片大小

腾讯图片文字识别有大小限制, 最大5M, 所以对于大图片需要进行缩小处理。

2023-09-08 08:50:54 125

原创 Springboot关闭redis SSL证书校验

redis开启了TLS/SSL后, Springboot项目需要进行修改, 可以配置证书进行校验, 也可以直接关闭校验,。直接关闭校验比较简单,配置文件也不需要修改。

2023-05-06 15:42:28 1506

原创 文字图片重新排版

文字图片重新排版

2023-03-14 17:05:42 443

原创 腾讯文字识别API使用

使用java调用腾讯文字识别接口

2022-11-07 16:25:02 908

原创 使用Java对书籍照片进行字符分割

java字符分割

2022-10-19 14:55:14 541

原创 书籍照片二值化处理

简单的文字图片二值化处理

2022-08-11 15:28:11 368

原创 卡牌魔术猜数字

卡牌读心术魔术

2022-06-01 09:45:06 1555

原创 3D迷宫生成

主要功能通过java代码实现3D迷宫的随机生成, 可以先参考之前的文章2D迷宫生成.代码实现import java.io.File;import java.io.FileOutputStream;import java.io.OutputStreamWriter;import java.io.Writer;import java.util.*;/** * 3D迷宫生成, 参照2D迷宫生成 * 由一面面很薄的墙组成, 拆除最少的墙, 使所有的单元格连通 * 阶数 需要拆的墙

2022-05-13 09:55:28 550

原创 卡牌游戏小猫钓鱼

java实现小猫钓鱼

2022-02-11 10:43:50 2588

原创 Future模式, 等会儿再来拿

Future模式假设有一个方法需要花费很长时间才能获取运行结果。那么,与其一直等待结果,不如先拿一张“提货单”。获取提货单并不耗费时间。过一段时间后再来拿结果.示例代码main.java public static void main(String[] args) { Host host = new Host(); // 预定蛋糕 FutureData futureData = host.provideCake("didi");

2021-11-26 15:46:25 321

原创 简单的线程池实现

线程池原理启动多个线程, 让他们永远处于运行状态, 有任务时就处理任务, 没有任务就等待.各角色说明任务发布者: 负责发布任务包工头: 负责召集工人, 并让他们开始工作工人: 负责处理任务中间人: 负责协调任务, 将发布者和工人隔离开来任务发布者和工人不直接打交道, 任务发布者把任务交给中间人后就不管了.工人从中间人那里获取任务, 并处理, 没有任务时就等待.示例代码Main.java public static void main(String[] args) {

2021-11-25 10:45:48 385

原创 生产者和消费者

简单的生产者和消费者实现1.main 方法public static void main(String[] args) { // 桌子 Desk desk = new Desk(); // 4个消费者, 每个能同时吃10个蛋糕 for (int i=0; i<4; i++) { Consumer consumer = new Consumer(desk); for (int j=0; j<10; j++) {

2021-11-18 16:06:20 204

原创 Java打印无序全排列组合

指定 totalCount 和 numCount 后, 可以打印所有的排列组合 // 全排列下标 int allIndex = 0; // 目标数组长度 private final int totalCount = 15; // 选几个数 int numCount = 1; // 存储所有的排列 private int[][] allSequence; // 存储单个排列 private final int[] simple = ne

2021-08-31 11:33:25 176

原创 使用java解数独

说明先根据规则解数独,规则1: 如果备选数字只有一个, 那么就填入这个数字规则2: 如果在3*3单元格中, 或者一行, 或者一列中, 某个备选数字在所有的备选数字中只出现了一次, 那么就填入这个数字.再暴力破解数独, 依次填入备选数字, 如果不能解开, 换下一个备选数字, 直到数独完全解开.代码package com.example.springboot01;import org.junit.Test;import org.junit.platform.commons.util.

2021-08-05 16:14:43 2135 1

原创 使用哈尔小波变换实现模糊图像的功能

参考了网上别人的代码,实现了图像的哈尔小波变换,可以实现模糊图像的功能,另外将轮廓合并起来可以实现类似粉笔画的功能。import org.junit.Test;import javax.imageio.ImageIO;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import java.util.HashMap;import java.util.Map;/** * 哈

2021-07-06 13:56:47 415

转载 使用Java代码实现傅里叶变换

说明该代码源自java使用傅里叶变换,对其进行了部分优化,可以实现将灰度图像转换为频率域图像,以及从频率域恢复为原图像,但是对于去除图像中高频率部分未能实现。代码主类package com.example.springboot01.util;import org.junit.Test;import javax.imageio.ImageIO;import java.awt.image.BufferedImage;import java.io.File;import java.io.IO

2021-06-30 17:03:49 2421

原创 使用Java实现分水岭算法

package com.example.watershed;import net.coobird.thumbnailator.Thumbnails;import org.junit.jupiter.api.Test;import javax.imageio.ImageIO;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import java.util.*;class

2021-06-26 05:43:45 375

原创 判断两个集合是否存在交集

快速判断两个有限集合是否存在交集先将一个集合存入Map数据结构中然后依次从Map中去取另一个集合中的元素如果取得到,说明存在交集利用了数组的随机存取特性,匹配速度很快,时间复杂度是两个集合的大小之和。 /** * 快速判断两个集合是否存在交集 * 时间复杂度:2n */ @Test public void testJiaoji() { String[] aa = new String[]{"datou", "xiaoming"

2021-06-03 17:03:23 2312

原创 将10进制数转换为其他进制数

写了一个进制转换的程序,可以转换比较大的数,以及指定较大的进制,速度还可以。转换的思路都在代码里面,使用。/** * 进制转换 * 将10进制数字转换为其他进制 * 思路: * 假设有一堆沙子,用多个不同大小的桶来装,这些桶的容量满足等比增长的关系。 * 第一步:找到一个最大的桶A,能把所有的沙子装进去,而且比它小一个等级的桶B不能装下所有的沙子。 * 第二步:将所有的沙子使用桶B来装,可以有多个桶B,一直装到最后一个桶B装不满为止。

2021-04-27 15:25:21 425

原创 Java发送各种HTTP请求

写了一个 HttpUtil 工具类,简化版的,没有具体测试,有兴趣可以自行补充。package com.example.springboot01.util;import org.apache.http.NameValuePair;import org.apache.http.client.ResponseHandler;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.

2021-01-08 14:32:07 359

原创 Spring 技术内幕: 深入解析 Spring 架构与设计原理精简版

本书主要介绍了 Spring 框架的核心知识点,包括 Spring 的整体架构,AOP,IoC,Spring MVC,数据库操作,事务管理等。书中引用了大量的源码来说明各个组件的工作流程,这也导致了语句的概括性不强,需要仔细阅读所有内容。这边做一个简单的复制粘贴,方便大家阅读。如有侵权,请联系删除。第1章 Spring 的设计理念和整体架构1.1 Spring 的各个子项目Spring Framework (Core):这是我们熟知的Spring项目的核心。Spring Framework(Co.

2021-01-05 13:32:34 612

原创 Tomcat 架构解析精简版

Tomcat 汤姆猫,哈哈, 基本属于那种大家天天用, 反而很容易忽视的角色. Tomcat 架构解析这本书详细地介绍了 Tomcat 的总体架构, 主要组件以及配置文件的使用, 书中掺杂了大量的源码来介绍业务流程, 这边都做了删减, 有兴趣的可以阅读原版.另外 Tomcat 官网也有相关文档, 只是比较混乱.如有侵权,请联系删除.第 1 章 Tomcat 介绍Tomcat 是全世界最著名的基于 Java 语言的轻量级应用服务器, 是一款完全开源免费的 Servlet 容器实现. 同时, 它支持 .

2020-12-09 15:31:24 668

原创 深入理解Java虚拟机精简版

将深入理解Java虚拟机第二版整理了一下,简化了很多内容,方便大家阅读,如果有不明白的地方可以去看下原版,作者说的很详细.第二部分 自动内存管理机制第 2 章 Java内存区域与内存溢出异常2.1 概述本章介绍了 Java 虚拟机内存的各个区域,讲解这些区域的作用. 服务对象以及其中可能产生的问题.2.2 运行时数据区域Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间, 有的区域随着虚拟机进程的启动而存在.

2020-11-26 17:05:46 505 1

原创 高性能 MySQL 第三版精简版

这本书很详细地介绍了 MySQL 的架构,历史以及各种特性,尤其在性能优化方面有很多好的建议,书籍很厚,内容也很多,这边整理了一个简化版,方便大家阅读.另外需要注意的是,这本书印刷于2013年,那时 MySQL 5.6 版本还没有发布,所以书中有些内容在现在看来是过时的.第 1 章 MySQL架构与历史MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,后被Sun 公司收购, 最后一起被 Oracle 收购.1.1 MySQL 逻辑架构最上层架构负责连接处理,授权认证,安全.

2020-11-20 16:19:01 1217 1

原创 NLP最简单中文分词介绍(二)

接上一篇的中文分词,这一篇将发射概率矩阵,状态转移矩阵和Viterbi算法都用上了,然后使用代码实现最简单的中文分词功能.相比较于上一篇的遍历所有可能组合,这一篇使用了Viterbi算法排除掉了不符合要求的组合,减少了不必要的消耗.前期准备最简单明了地介绍Viterbi算法 如何通俗地讲解 viterbi 算法?功能说明如果一句话里面的所有字,都能分类到 BMES 里面(可重复),那么就可对它进行分词。例:{陈佩斯吃西瓜}分类词头 B: 陈佩斯吃西瓜 比如 陈述,佩服,斯文,吃饭,西方.

2020-11-03 14:18:17 332

原创 NLP最简单中文分词介绍

最近在看自然语言处理,因为图像识别太难了,先放一放。然后在 Git 上找到了一个中文分词的 Java 项目,引入 jar 包后确实可以运行,就直接去看源码了,然后看得头昏脑涨,最后没看懂怎么实现的。一口吃不成大胖子,只能一步一步来,就去找了相关资料来看,发现还是蛮复杂的,尤其是那些计算公式,头疼。研究了几天,今天才算入了门,现在先写一篇最简单的语句分词,算为后面做铺垫,注释很详细,适合新手阅读。前期准备主流的中文分词方法和分词工具介绍 中文分词原理及分词工具介绍适合入门的 HMM 相关概念介绍.

2020-10-29 17:06:18 246

原创 使用Sentinel Dashboard监控项目流量

因项目需求,在有大流量访问时,需要能够对流量进行降级,熔断,防止项目崩溃.目前常用的熔断工具有 Hystrix 和阿里的 Sentinel,这篇主要介绍Spring Boot项目中 Sentinel 和控制台的使用,以及搭配 Sentinel Dashboard 对流量进行视图化监控和降级规则设置.Sentinel 简介Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性, 是分布式系统的流量防卫兵.Sentinel 具有以下特征:丰富的应用场景:Se.

2020-10-26 09:44:56 1643

原创 使用 Java 对图像进行各种处理

接上一篇的使用 Java 提取图片的色彩边界,这一篇增加了去除噪点,锐化,模糊,S曲线加深,各向异性等处理,想做成类似于 PS 的人物卡通化的功能的,失败了,效果不行.这其中参考了大量的网上例子,感谢各位大佬的分享,引用网址都在代码里面了.引入jar包<!-- java图片工具 https://mvnrepository.com/artifact/net.coobird/thumbnailator --><dependency> <groupId>ne.

2020-10-22 15:53:22 2268

原创 IDEA中Debugger模式下的toString()方法

最近在看Zxing的源码,使用IDEA打断点调试时,发现了一个问题, toString() 方法会自动执行,找不到谁调用的它,就百思不得其解.问题类 BinaryBitmap 中的 toString 方法里面有个赋值语句,给变量 matrix 赋值.在调试过程中,我没有调用该 toString 方法,但断点结果却显示 matrix 有值,而且就是 toString 中的执行结果,就很纳闷,难道 toString 方法是什么特殊体质?于是自己仿造类 BinaryBitmap 写了个测试类,看到.

2020-10-15 11:02:01 659

原创 使用java提取图片的色彩边界

想做图片识别,但是大厂只提供接口,看不到实际代码,只能自己来动手了.这篇文章主要是介绍如何从一张图片里面提取色彩边界,用于后面做特征分析,算是基础部分.图片处理步骤使用 Thumbnails 工具包将图片等比压缩到指定大小使用 JDK 自带的 BufferedImage 类灰度化图片通过判断一个像素和它相邻像素的颜色是否相近,来确定是不是色彩边界点,如果不是边界点,就把它设置为白色.除了图片最外围的一圈像素点之外,其他所有像素点依次执行第三步将处理结果打印到text文档中引入jar包:.

2020-10-12 16:24:48 1260

原创 String类中的trim()方法实现

String 类中的 trim() 方法的作用是去除字符串前后的空字符串,自己写代码实现了一个 trim() 方法,并不断优化.代码public class MyString { private String str; private char[] chars; public MyString(String str) { this.str = str; this.chars = str.toCharArray(); } /.

2020-10-10 16:42:30 1589 1

原创 Filter过滤器,Intercepter拦截器,RequestBodyAdvice,ResponseBodyAdvice,AOP使用总结

最近看项目代码,发现里面用到了过滤器,拦截器等来对请求参数和返回参数做校验,加密,解密,种类太多,容易混淆,这里做一下记录.1.Filter过滤器Filter是Servlet规范中规定的,只能用于WEB中, 在Servlet前后起作用使用场景:对入参进行校验, 校验不通过返回错误信息.原理: 基于函数回调使用方式:@WebFilter(urlPatterns = "/home/*")public class Filter1 implements Filter { @Overri.

2020-09-25 10:31:27 3394 3

原创 PHP安装并运行

由于用JAVA开发的后台接口在和前端PHP人员调试时一直报错,怎么改前端都说都不行,没办法,只好自己动手了.问题场景某SpringBoot项目定义了一系列的接口,供前端调用,由于网络传输,所以返回时需要加密,这边使用的是AES对对象实体进行加密.前端PHP人员取得了加密数据,并且解密成功了.然后就出现问题了,解密后的字符串需要转成JSON格式才好处理,我这边也是将对象转成JSON字符串回传的,但前端解析JSON时一直报错,一直报错.前端手动复制解密后的字符串进行转JSON是可以的.前端那边解.

2020-09-23 17:11:14 626

原创 (小工具)将图片转换为0,1组成的文本

这篇文章介绍了如何以文本的形式来展示图片,以前做过这个程序,后来找不到了,重新记录一下.代码import net.coobird.thumbnailator.Thumbnails;import javax.imageio.ImageIO;import java.awt.image.BufferedImage;import java.io.*;import java.nio.charset.StandardCharsets;public class ImageUtil { pu.

2020-09-18 15:38:53 1989

原创 java基本类库结构图

网上找了一圈,没有找到 JDK 包的所有目录图,于是只好自己动手啦.1.下载JDK要想获取 JDK 开发包中的所有目录,前提当然是先下载 JDK 了.访问 Oracle JDK 官网地址选择 jdk 版本点击 zip file 链接,直接下载,建议使用迅雷2.使用 Echarts 来画目录结构树状图使用echarts画树状图自带排序,且比较美观,还能自动伸缩,很不错.树状图实例3.生成 JDK 目录结构 json 数据/** * 获取目录结构,并转为js.

2020-09-17 16:08:53 747

转载 (转)JDK8中Stream类和Optional类的使用

上一篇介绍了接口中的默认方法和静态方法,这篇记录一下Steam类和Optional类的使用,菜鸟教程上讲得还挺详细的.1.Stream类Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。使用Stream可以使代码简洁,美观,至于能不能提高效率,看个人习惯了.Stream 主要用于对集合的操作,包括迭代,过滤,排序等.示例代码@Testpublic void testStream() { List<Stri.

2020-09-17 10:42:33 562

翻译 (转)JDK8接口中default方法和static方法使用

看到一篇文章,里面详细介绍了如何在接口中使用 default 方法和 static 方法,转载一下.原文链接Static and Default Methods in Interfaces in Java1.概述Java 8 引入了几个新的特性,包括 lambda 表达式, 函数式接口(functional interfaces),方法引用(method references),Stream API, Optional 类, 以及接口中定义默认(default)方法和静态(static)方法,我.

2020-09-16 09:56:00 489

原创 Pattern类使用

java.util.regex.Pattern 类主要用于字符串的正则表达式匹配,这边做简单介绍.正则表达式语法规则{n,m}: 跟在 [] 后面,表示字符串长度范围在 n-m 之间X? 表示 X 字母的数量为 0 个或者 1 个X+ 表示 X 字母的数量大于等于 1 个X* 表示 X 字母的数量为 0 个, 或者 1 个,或者多个\s 表示空格| 表示或. 表示任意字符示例人名字符串,由字母和空格组成,且最大长度为50java实现@Testpublic v.

2020-09-15 15:44:58 676

原创 java线程池的使用

JDK 里面自带了线程池的实现,相比较于我们自己编写线程类,线程池可以更好地管理线程资源.简介下面的图是和线程池相关的几个类之间的关系Executors类是JDK提供的线程池工具类,里面有几个实现线程池的默认方法,可以直接调用.Executors.newCachedThreadPool(无界线程池,自动线程回收)Executors.newFixedThreadPool(固定大小的线程池);Executors.newSingleThreadExecutor(单一后台线程);这三个方法的底.

2020-09-14 17:11:32 77

java基本类库结构图.zip

这是一个java常用类的目录结构图,因为类实在太多,一张图放不下,所以使用 Echarts 做成了 HTML 页面,直接打开压缩包里面的 html 文件即可,点击小圆点可以看到下一层目录.

2020-09-17

2000阶迷宫随机生成jar包

引入jar包到项目中,直接可以使用,具体使用方式可以看之前的文章最后部分https://blog.csdn.net/sinat_34067387/article/details/108007434

2020-08-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除