自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 收藏
  • 关注

原创 公钥、私钥、证书的生成

公钥加密 私钥解密私钥加签 公钥验签。

2023-03-29 17:46:36 947

原创 (五)数据结构与算法-栈

栈的英文为(stack)栈是一个先入后出(FILO-First In Last Out)的有序列表。栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除栈图解栈实现综合计算器(中缀表达式)思路分析1.先实现一位数的运算2.拓

2022-06-01 16:56:14 261 2

原创 (七)Netty与零拷贝

NIO与零拷贝零拷贝基本介绍零拷贝是网络编程的关键,很多性能优化都离不开在Java程序中,常用的零拷贝有mmap(内存映射)和sendFile。那么,他们在OS里,到底是怎么样一个涉及?我们分析mmap和sendFile这两个两拷贝另外我们看下NIO中如何使用零拷贝传统IO数据读写Java传统IO和网络编程的一段代码 File file = new File("index.html"); RandomAccessFile raf = new RandomAccessFile(file

2022-03-29 16:38:15 203

原创 (六)Netty网络编程应用实例-群聊系统

实例要求:编写一个NIO群聊系统,实现服务器端和客户端之间的数据简单通讯(非阻塞)实现多人群聊服务器端:可以监测用户上线,离线,并实现消息转发功能客户端:通过channel可以无阻塞发送消息给其他所有用户,同时可以接受其它用户发送的消息(由服务器转发得到)...

2022-03-16 18:50:14 169

原创 (四)数据结构与算法-链表

链表介绍链表是有序的列表,但是它在内存中存储如下:链表是以节点的方式来存储每个节点包含data域,next域:指向下一个节点如图:发现链表的各个节点不一定是连续存储链表分带头节点的链表和没有节点的链表,根据实际的需求来确定单链表(带头节点)逻辑结构示意图如下:单链表的应用实例使用带head头的单向链表实现-水浒传英雄排行榜管理完成对英雄任务的增删改查操作第一种方法在添加英雄时,直接添加到链表的尾部第二种方式在添加英雄时,根据排名将英雄插入到指定位置(如果有这个排名,则添加失败

2022-01-19 18:15:33 154

原创 (五)Netty之Selector选择器

基本介绍Java的NIO,用非阻塞的IO方式,可以用一个线程,处理多个客户端连接,就会使用到Selector(选择器)

2022-01-07 19:03:46 569

原创 (三)数据结构与算法-队列

银行排队案例队列介绍队列是一个有序列表,可以用数组或是链表来实现遵循先入先出原则。即:先存入队列的数据,要先取出。后存入的要后取出数组模拟队列队列本身是有序表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图,其中maxSize是该队列的最大容量。因为队列的输出、输入分别从前、后端来处理,因此需要两个变量front及rear分别记录队列的前后端的下标,front会随着数据输出而改变,而rear则是随着数据输入而改变。数组模拟队列的示意图:思路分析当我们将数据存入队列时称

2022-01-06 15:18:06 425

原创 (二)数据结构与算法-稀疏数组

先看一个实际的需求分析问题:因为该二维数组的很多值是默认值0,因此记录了很多没有意义的数据 -> 稀疏数组稀疏sparsearray数组基本介绍当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组稀疏数组的处理方法是:记录数组一共有几行几列,有多少个不同的值把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模举例说明...

2021-12-28 15:32:23 228

原创 (一)数据结构与算法-线性结构和非线性结构

线性结构和非线性结构数据结构包括:线性结构和非线性结构线性结构线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系线性结构有两种不同的存储结构,即顺序存储借故偶和链式存储结构。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息线性结构常见的有:数组、队列、链表和栈非线性结构非线性结构包括:二维数组,多维数组,广义表,树结构,图结构...

2021-12-28 15:21:58 340

转载 Java的四种引用——强软弱虚

https://blog.csdn.net/hbn13343302533/article/details/106993108/

2021-12-16 16:02:15 74

原创 (四)Netty之Buffer缓冲区

基本介绍缓冲区(Buffer):缓冲区本质上是一个可以读写数据的内存块,可以理解成是一个容器对象(含数组),该对象提供了一组方法,可以更轻松地使用内存块,缓冲区对象内置了一些机智,能够跟踪和记录缓冲区的状态变化情况。Channel提供从文件、网络读取数据的渠道,但是读取或写入的数据都必须经由BufferBuffer类及其子类1.在NIO中,Buffer是一个顶层父类,它是一个抽象类,类的层级关系图:常用Buffer子类一览ByteBuffer,存储字节数据到缓冲区ShortBuffer,存

2021-11-26 18:20:58 1653

原创 (三)Netty之Channel通道

通道(Channel)基本介绍NIO 的通道类似于流,但有些区别:通道可以同时进行读写,而流只能读或者只能写通道可以实现异步读写数据通道可以从缓冲读数据,也可以写数据到缓冲BIO中的stream是单向的,例如FileInputStream对象只能进行读取数据的操作,而NIO中的通道(Channel)是双向的,可以读操作,也可以写操作Channel在NIO中是一个接口public interface Channel extends Closeable{}常见的Channel类有:F

2021-11-17 11:59:01 1315

原创 spring集成xxljob遇到的一些问题

集成方式很简单,就不做介绍了,直接参照官网xxljob官网https://www.xuxueli.com/xxl-job/1.spring版本过低,导致集成失败(或spring版本存在依赖冲突)查看jar包的间接依赖mvn dependency:tree>temp/tree.txt用include参数过滤mvn dependency:tree -Dincludes=commons-collections如果想看冲突和重复的具体情况,用verbose参数mvn dependency:t

2021-11-15 11:45:15 3268

原创 java连接ftp一直阻塞

问题描述网上不少的ftp工具类,未设置超时时间,和判断是否登录成功,会引发以下问题:问题1:使用ftpUtil下载文件,导致程序一直阻塞问题2:ftp密码不正确,代码也会正常往下处理问题分析通过 jstack 进程号 > /tmp/tmp.txt 将线程的堆栈日志 写入tmp.txt文件查看到该线程一直处于RUNNABLE状态进入ftpclinet.connect(host,prot)方法,发现注释:用该 socket 与服务端创建连接,并设置一个指定的超时时间,如果超时时间是0,表

2021-08-18 12:38:35 2126

原创 mysql索引原理

前言1、mysql索引存储在什么地方磁盘2、查询数据比较慢,一般情况下卡在哪里?IO3、取磁盘读取数据的时候,是用多少读取多少吗?磁盘预读4、索引存储在哪里?磁盘,查询数据的时候会优先将索引加载到内存中5、索引在存储的时候需要什么信息?需要存储什么字段值?key:实际数据行中存储的值文件地址offset:偏移量6、这种格式的数据要使用什么样的数据结构来进行存储K-V哈希表,树(二叉树,红黑树,AVL树,B树,B+树)B+7、mysql的索引系统中不是按照刚刚说的格式存储的,

2021-07-01 20:40:19 72

原创 (二)Netty之IO模型

IO模型I/O模型的简单理解: 就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能JAVA共支持三种网络编程模型IO模式:BIO、NIO、AIOJAVA BIO:同步并阻塞(传统阻塞型),服务器实现模式为一个请求连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接补做任何事情会造成不必要的线程开销JAVA NIO:同步非阻塞,服务器实现模式为一个线程处理多个请求(连接),即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求

2021-07-01 18:12:51 115

原创 (一)netty介绍

Netty的介绍Netty是由JBOSS公司提供的JAVA开源框架,现为Github上的独立项目Netty是一个异步的、基于事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络IO程序Netty主要针对在TCP协议下,面向Clients端的高并发应用,或者Peer-to-Peer场景下的大量数据持续传输的应用。Netty本质是一个NIO框架,适用于服务器通讯相关的多种应用场景要透彻理解Netty,需要先学习NIO,这样我们才能阅读Netty的源码Netty的应用场景...

2021-07-01 17:52:23 81

原创 cron表达式在线测试

cron表达式在线测试:添加链接描述

2021-03-31 11:36:02 5121

原创 java压缩文件夹(含有空文件夹)

两种实现方式:java.util.zip.ZipOutputStreamorg.apache.tools.ant注意最初采用java.util.zip.ZipOutputStream的方式,jdk为1.8,出现BUG:一定情况下,会将空文件夹变成文件格式,如:空文件:鉴定人资格 鉴定人资格证书 鉴定人资格证身份证 文件夹都变成文件了空文件:鉴定资格证书 鉴定人资格证书啊 都是没问题的最终改为使用:org.apache.ant 依赖包,得以解决org.apache.ant 方式

2021-02-05 19:52:26 2559 8

原创 idea热部署devtools

1.添加jar <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>tru.

2021-02-02 11:27:10 71

转载 redis技术总结

redis技术总结

2021-01-26 16:51:28 82

原创 Double 判断小数位数

Double Float 类型在 数值超过1千万直接转换为字符串 会采用科学计数法所以采用将Double转为字符串再转为BigDecimal 再转为字符串的方法可以获取原来的形式public int checkIsDoublePointTwo(Double param) { if (param == null) { return 0; } BigDecimal bd = new BigDecimal(String.valueOf(param)); String

2021-01-15 13:37:21 1531

原创 springboot集成oauth2和JWT(授权码模式)

参考链接:Spring security 系列15篇Spring boot security 学习Spring Security Oauth2 permitAll()还校验token前言网上oauth2相关的demo讲的很笼统,几乎都是内存配置的方式简单演示了一下。这段时间踩了很多坑,因此整理出了这篇文章本文解决了如下问题:前后端分离方式,进行oauth2配置,登录成功失败等全部处理,全部返回json使用oauth的数据库方式配置去除框架中的权限判断默认前缀 ROLE_跨域问题,以

2020-12-18 18:20:21 2803 3

原创 新项目jenkis配置

echo GIT 地址:%GIT_URL%>>website-portal\src\main\resources\version.txtecho GIT 版本:%GIT_PREVIOUS_SUCCESSFUL_COMMIT%>>website-portal\src\main\resources\version.txtecho 构建 版本号:#%BUILD_NUMBER%>>website-portal\src\main\resources\v...

2020-12-17 14:53:54 76

原创 git操作

在远程仓库创建 dev 分支:1.本地创建分支 dev:git switch -c dev2.将新创建的 dev 分支提交到远程库:git push origin dev3.查看远程库所有分支:git branch -a结果:dev masterremotes/origin/devremotes/origin/master...

2020-11-25 17:44:36 54

原创 根据url地址下载文件到本地

ImageUtil.getPhotoFile(url,filePath);import lombok.extern.slf4j.Slf4j;import org.springframework.scheduling.annotation.AsyncResult;import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;import java.io.*;import java.net.H

2020-11-18 16:46:50 2380

转载 单点登录

https://ken.io/note/sso-design-implement

2020-11-06 09:38:30 61

转载 学习Spring Security

https://www.jianshu.com/p/4fe340b56fe4Spring Security 系列 15 篇

2020-07-16 13:52:56 113

原创 KVM虚拟机添加磁盘空间

1.查询镜像名称:virsh list --all2.关闭需要扩容的虚拟机virsh edit CentOS7-X64-19216810173.查询镜像文件位置virsh edit CentOS7-X64-19216810174.到对应目录进行扩容cd /vm-home/CentOS7-X64-1921681017/qemu-img resize CentOS7-X64-1921681017.qcow2 +20G5.启动虚拟机sudo virsh start CentOS7-X6

2020-07-07 16:03:06 470

原创 kvm 虚拟机常用命令

kvm 虚拟机常用命令管理kvm虚拟机列出所有虚拟机visrh list --allId 名称 状态----------------------------------------------------1 CentOS7-X64-1921681029 running2 CentOS7-X64-1921681030 running3 WIN2008-X64-1921681028

2020-07-07 15:47:43 420

转载 sql优化

https://www.cnblogs.com/xiaoyangjia/p/11267191.html#single_table

2020-05-08 10:31:00 137

原创 java中使用pgsql的json类型CRUD

java po类:private Object labReportBO;数据库类型:lab_report_bo JSON;mapper.xml<resultMap id="BaseResultMap" type="common.entity.po.ScCountQueue" > <result column="LAB_REPORT_BO" property="labR...

2020-04-02 15:48:10 3209

原创 linux管理防火墙开放端口

查看防火墙开放的端口:firewall-cmd --list-ports开启端口firewall-cmd --add-port=8080/tcp --permanent(没有–permanent重启后会失效)查看firewall-cmd --query-port=80/tcp删除firewall-cmd --remove-port=80/tcp --permanent...

2020-01-17 15:00:32 114

原创 SonarQube检测出的bug、漏洞以及异味的修复整理

原文链接:https://blog.csdn.net/qq_27790011/article/details/89309694

2020-01-14 15:49:43 1533

原创 Swagger中paramType

Swagger中paramTypeparamType:表示参数放在哪个地方header–>请求参数的获取:@RequestHeader(代码中接收注解)query–>请求参数的获取:@RequestParam(代码中接收注解)path(用于restful接口)–>请求参数的获取:@PathVariable(代码中接收注解)body–>请求参数的获取:@Reques...

2020-01-08 16:49:45 6577 2

转载 PageHelper 分页Total总是为pageSize的问题

问题:在查询语句查出数据后我需要对数据做一些处理再返回分页的数据,但是PageHelper.startPage(page,pageSize,true);这样不起作用,分页后的total总数每次都是pageSize的值 .解决方法 :处理完分页数据的list之后Page p= PageHelper.startPage(page,pageSize,true); //查询语句及处理逻辑...

2020-01-08 16:36:41 1056

原创 mybatis分页助手PageInfo参数含义

2019-12-30 17:22:46 611

原创 静态方法中调用spring容器中的对象

demo如下:public class ControllerTest { @Autowired TestService testService ; //2 建一个静态的本类 private static ControllerTest controllerTest ; public ControllerTest () { controllerTest...

2019-12-26 16:58:45 901

原创 从spring容器中获取对象工具类

工具类:public class SpringConfigTool implements ApplicationContextAware { private static ApplicationContext context = null; private static SpringConfigTool stools = null; public synchronized stat...

2019-12-26 16:52:59 423

原创 swagger2使用步骤

本人是springboot集成swagger2的环境。并且项目中过滤器会对请求进行拦截,因此需要对一下URI放行: // swagger 相关接口 String[] includeUrlSwagger = new String[]{"/webjars", "/v2", "/swagger-resources", "/swagger-ui"}; String uri =...

2019-12-18 16:14:47 232

空空如也

空空如也

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

TA关注的人

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