Java
遥忆知
实践是检验真理的唯一标准
展开
-
java 拼音和数字双排序
借鉴网络其他文章,将汉字拼音和数字排序整合为一体, 代码或许有些冗余,但已是菜鸟的最大努力。原创 2023-02-17 17:27:20 · 182 阅读 · 0 评论 -
java list中随机取出几条数据
/** * 在list集合中随机取出指定数量的元素 * @param list 取元素的集合 * @param count 个数 * @return */ public static List getRandomThreeInfoList(List list, int count) { List olist = new ArrayList<>(); if (list.size() <= cou...转载 2021-08-30 22:28:51 · 5223 阅读 · 0 评论 -
java-树形结构的list,转化为树形结构
举例部门级别//节点对象类package com.test;import java.util.List;/** * ClassName: TestMode * @Description: 测试对象 */public class TestMode { /** 节点id */ private String id; /** 节点名称 */ private String name; /** 父节点id */ private String parentId; /** 节点下的子节点转载 2021-08-22 12:40:23 · 562 阅读 · 0 评论 -
Java获取系统进程,并杀死指定进程
获取系统所有进程列表,遍历,然后进行模糊匹配,将匹配到的进程杀死!package com.auguigu.jdk;import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.nio.charset.Charset;import java.util.ArrayList;impo.转载 2021-02-04 16:20:53 · 437 阅读 · 0 评论 -
Java的两种深拷贝(原型模式)
克隆实现Cloneable重写clone()方法 @Override protected Object clone() throws CloneNotSupportedException { DeepPrototype deepPrototype = null; deepPrototype = (DeepPrototype) super.clone(); deepPrototype.target = (DeepCloneableTarg原创 2021-02-04 10:30:38 · 213 阅读 · 4 评论 -
Spring:从容器中获取指定bean
项目结构beans.xmlMonster.javaTest.java ApplicationContext ioc = new ClassPathXmlApplicationContext("beans.xml"); Monster monster = (Monster) ioc.getBean("monster"); System.out.println(monster);pom.xml原创 2021-02-03 15:03:15 · 543 阅读 · 0 评论 -
单点登录(SSO)原理及实现
一、前言本篇文章简单介绍了一下SSO的概念及原理,然后使用SpringBoot+Redis实现了一个简单的SSO系统。系统使用ticket的形式,依靠cookie携带ticket向sso服务器进行验证,验证通过后允许访问请求地址。项目地址:项目地址二、SSO介绍SSO(Single Sign On),单点登录,简单来说就是在一个具有多个子系统的系统中,只用登录一个子系统,然后访问其他子系统时不需要再次登录,即“一次登录,多处访问”,能够有效的提升用户体验。单点登录的大致流程如下(基于cookie)转载 2020-12-04 15:39:25 · 12939 阅读 · 0 评论 -
将一个数M随机分为N份,并限制每份的大小
需求场景:在活动开发中将50000个金币分为1000个金币红包,每个红包数额在8~188之间。缺点:在实际循环测试中,很难达到最大值。因为分配过多之后会随机减少。实现代码: /** * 将整数拆分为几组不同得数 * @param sum 被拆数 * @param count 拆分几组 * @param minNum 每组最小值 * @param maxNum 每组最大值 * @return */ priva转载 2020-12-02 15:17:46 · 1177 阅读 · 0 评论 -
Java统计List集合中每个元素出现的次数
/** * java统计List集合中每个元素出现的次数 * 例如frequencyOfListElements(["111","111","222"]) * -> * 则返回Map {"111"=2,"222"=1} * @param items * @return Map<String,Integer> * @author wuqx */ public static Map<String,Integer>...转载 2020-10-28 22:20:04 · 5553 阅读 · 0 评论 -
基于JDK8计算两个日期间隔的时间
获取相差的年月日获取相差的时分秒原创 2020-08-19 09:52:12 · 944 阅读 · 0 评论 -
JSON字符串转实体类工具
原创 2020-08-14 16:50:56 · 329 阅读 · 0 评论 -
在运行时对用户控制的对象流进行反序列化,会让攻击者有机会在服务器上执行任意代码、滥用应用程序逻辑和/或导致 Denial of Service。
Abstract:在运行时对用户控制的对象流进行反序列化,会让攻击者有机会在服务器上执行任意代码、滥用应用程序逻辑和/或导致 Denial of Service。Explanation:Java 序列化会将对象图转换为字节流(包含对象本身和必要的元数据),以便通过字节流进行重构。开发人员可以创建自定义代码,以协助 Java 对象反序列化过程,在此期间,他们甚至可以使用其他对象或代理替代反序列化对象。在对象重构过程中,并在对象返回至应用程序并转换为预期的类型之前,会执行自定义反序列化过程。到开发人员尝.转载 2020-07-03 17:24:06 · 1514 阅读 · 1 评论 -
Hardcoded 加密密钥可能会削弱系统安全性,一旦出现安全问题将无法轻易修正。
Abstract:Hardcoded 加密密钥可能会削弱系统安全性,一旦出现安全问题将无法轻易修正。Explanation:请勿对加密密钥进行硬编码,因为这样所有项目开发人员都能查看该加密密钥,而且还会大大增加解决问题的难度。一旦代码被使用,除非对软件进行修补,否则加密密钥将再也不能更改。如果受加密密钥保护的帐户遭受入侵,系统所有者将被迫在安全性和可用性之间做出选择。例 1:下列代码使用了硬编码加密密钥:private static final String encryptionKey = "l.转载 2020-07-03 15:56:52 · 4484 阅读 · 2 评论 -
spring boot Junit4单元测试
注:Junit依赖不能小于4.12原创 2020-05-06 11:29:17 · 124 阅读 · 0 评论 -
JoinPoint的用法
JoinPoint 对象JoinPoint对象封装了SpringAop中切面方法的信息,在切面方法中添加JoinPoint参数,就可以获取到封装了该方法信息的JoinPoint对象.常用api:方法名功能Signature getSignature();获取封装了署名信息的对象,在该对象中可以获取到目标方法名,所属类的Class等信息Object[] getArg...转载 2020-04-10 17:33:50 · 1662 阅读 · 0 评论 -
基于jdk1.8的List、int[ ]、Integer[ ]的相互转换简洁写法及解释
下文中出现的list、ints、integers分别代表一个列表、一个int数组、一个Integer数组。转载 2020-04-10 11:19:23 · 501 阅读 · 0 评论 -
详解Lombok中的@Builder用法
简述:Builder 使用创建者模式又叫建造者模式。简单来说,就是一步步创建一个对象,它对用户屏蔽了里面构建的细节,但却可以精细地控制对象的构造过程。基础使用@Builde注释为你的类生成相对略微复杂的构建器API。@Builder可以让你以下面显示的那样调用你的代码,来初始化你的实例对象:Student.builder() .sno( "001" ) ...转载 2020-04-09 12:35:06 · 6163 阅读 · 2 评论 -
springboot 自定义监听事件
事件监听模式是一种常用的设计模式,在springboot 中我们如何实现呢?首先我们要理解事件监听中需要的几个角色事件发布者 (即事件源)事件监听者事件本定义事件本身事件本身需要继承ApplicationEventpackage com.test.listener;import org.springframework.context.ApplicationEvent;...转载 2020-04-03 16:55:11 · 877 阅读 · 0 评论 -
Druid(新版starter)在SpringBoot下的使用
说明Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。DruidDataSource支持的数据库:理论上说,支持所有有jdbc驱动的数据库。最近发现Druid在springboot框架下有更加好用的Druid Spring Boot Starter,可以省去原本写Druid的一些配置文件或者@Configuration来配置,直接将配置写在applicati...转载 2020-01-14 14:37:30 · 1078 阅读 · 0 评论 -
java+JsonArray+多层嵌套去重
暂记于此,有空重新整理package com.gk.health.interview.service;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import java.util.*;/** * Cre...原创 2019-12-27 14:12:08 · 1808 阅读 · 0 评论 -
spring boot 通过浏览器下载文件
@RequestMapping("/downloadFile") public void downloadFile(HttpServletResponse response) { String downloadFilePath = "D:/ProgramsData/temp/pdfDemo.pdf";//被下载的文件在服务器中的路径, Str...转载 2019-12-17 11:53:27 · 1894 阅读 · 0 评论 -
StringUtils里的isEmpty方法和isBlank方法的区别
前言我们常说的字符串为空,其实就是一个没有字符的空数组。比如:String a = "";a 就可以称为是一个空字符串。由于 String 在 Java 中底层是通过 char 数组去存储字符串的,所以空字符串对应的 char 数组表现形式为private final char value[] = new char[0];但实际工作中,我们可以需要对字符串进行一些校验,比如:是否为 ...转载 2019-12-17 11:10:37 · 70 阅读 · 0 评论 -
iText+FreeMarker+JFreeChar 导出带柱形图+分页+中文PDF
用的是ITextRenderer,这个不支持分页,后来靠百度搜到了分页相关的知识,因为在页面加了循环,所以建了bean类,为达目的费了不少劲,现将代码整理分享出来,期待帮助别人pom.xml <dependencies> <dependency> <groupId>org.springframework.bo...原创 2019-12-09 14:17:38 · 1156 阅读 · 0 评论 -
java根据模板生成pdf文件并导出
首先你的制作一个pdf模板:1.先用word做出模板界面2.文件另存为pdf格式文件3.通过Adobe Acrobat pro软件打开刚刚用word转换成的pdf文件4.点击右边的"准备表单"按钮,选择"测试.pdf"选择开始进去到编辑页面,打开后它会自动侦测并命名表单域,右键表单域,点击属性,出现文本域属性对话框(其实无需任何操作,一般情况下不需要修改什么东西,至少我没有修改哦。...转载 2019-11-14 16:24:03 · 3137 阅读 · 5 评论 -
[亲测可用]java生成Excel并导出到本地
导包<!-- https://mvnrepository.com/artifact/org.apache.poi/poi --><dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.6&...转载 2019-11-14 16:09:09 · 3689 阅读 · 2 评论 -
使用cmd webservice wsdl网址生成客户端代码
windows下使用cmd命令提示符生成java webservice客户端代码,可以使用命令提示符直接生成客户端代码,直接导入到项目中,只需配置jdk即可,在jdk的bin文件夹下,按Shift并点击右键,选中“在此处打开命令窗口”,输入命令如下:wsimport -keep -p com.demo.client -d D:\\(存放的地址) http://XX/Account...转载 2019-03-13 13:57:39 · 2895 阅读 · 0 评论 -
java 读取Properties配置文件
private String readProperties(HttpServletRequest request) throws IOException{ String path = this.getClass().getClassLoader().getResource("").getPath(); ; Properties properties = ne...原创 2019-03-05 13:45:01 · 208 阅读 · 0 评论 -
java利用关键字实现查找文件
文件类型过滤器:FileFilter,在文件拷贝、移动、删除和压缩时,指定多个文件类型、修改时间、大小限制、覆盖条件、是否包含子目录等条件进行过滤。文件备份、中间文件清理等时非常便利。便利的履历管理功能,重复相同的操作时非常简便。操作前检索满足条件的文件,并估计所需容量,操作完成后可查看记录,完成情况一目了然。转载 2019-03-05 10:14:27 · 1778 阅读 · 0 评论