
Java
文章平均质量分 63
sugarit
什么时候是个头~
展开
-
两个List集合取交集、并集、差集
list1.removeAll(list2):从list1中移除存在list2中的元素。 调用流程:removeAll->contains->equals方法,对于引用类型,要使用removeAll,需要重写equals方法 removeAll源码:public boolean removeAll(Collection<?> c) { Objects.requireNonNull(c); boolean modified = false转载 2022-02-25 10:22:09 · 1495 阅读 · 0 评论 -
RSA加密解密原理及工具类
1. 什么是RSARSA算法是现今使用最广泛的公钥密码算法,也是号称地球上最安全的加密算法。RSA是被研究得最广泛的公钥算法,从提出到现在已近三十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。2. RSA算法原理RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。根据密钥的使用方法,可以将密码分为对称密码和公钥密码对称密码:加密和解密使用同一种密钥的方式公钥密码:加密和解密使用不转载 2021-03-19 15:23:36 · 1762 阅读 · 0 评论 -
List里将某字段相同的元素合并
import java.util.ArrayList;import java.util.List;class A { private String name;//姓名 private int age;//年龄 public String getName() { return name; } public void setName(String name) { this.name = name; } pub转载 2020-10-10 16:58:34 · 3724 阅读 · 0 评论 -
NPOI之XSSFWorkbook文件生成下载
NPOI之XSSFWorkbook文件生成下载一个控制台的业务需要将部分数据生成表格能够导出,这里我们选择了XSSFWorkbook,因为够用了用JavaPOI导出Excel时,我们会考虑到Excel版本及数据量的问题。针对不同的Excel版本,要采用不同的工具类。HSSFWorkbook:是操作Excel2003以前(包括2003)的版本,扩展名是.xls;XSSFWorkbook:是操作Excel2007的版本,扩展名是.xlsx;对于不同版本的EXCEL文档要使用不同的工具类,如果使用错了,原创 2020-08-18 10:42:33 · 3525 阅读 · 0 评论 -
Java常用的工具类之时间类
1. 时间类的工具类1.1 获取当前类型的yyyyMMddHHmmss格式字符串 public static String getCurrentTime24() { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");//也可以是yyyyMMddHHmmssSSS return simpleDateFormat.format(new Date()); }1.2原创 2020-08-03 16:23:00 · 675 阅读 · 0 评论 -
Java常用的工具类之字符串
1. 字符串的工具类1.1 判断字符为null 或者 “”(空字符串) public static boolean isNull(String str) { if (null==str) { return true; } else { return str.trim().length() == 0 || "".equals(str); } }1.2 字符串右加空格符 public sta原创 2020-08-03 16:05:12 · 586 阅读 · 0 评论 -
Oracle实现查询1小时之内的数据
在做交易项目的时候需要一个定时补偿来把交易异常失败查询一下看交易情况,要求是5分钟跑一次程序,只能查询一小时内入库的数据的逻辑比较简单,就贴一个查询语句吧SELECT * FROM 表名 t WHERE 条件一 AND 条件二AND to_char(sysdate-1/24,'YYYYMMDDHH24') <t.time ORDER BY t.时间 DESC这里我们的时间是yyyyMMddHHmmssSSS的字符串格式以此类推to_char(sysdate-1/48,‘YYYYMM.原创 2020-07-30 11:06:42 · 4007 阅读 · 0 评论 -
微信退款异步通知密文解码
一、通知接口我们对一笔微信退款是否成功除了查询以外,还有最保险的一种模式就是对通知的解析,但是微信退款通知居然是密文模式的。我们要根据他的要求解密出来以后才可以解析。那么先拿到通知吧。二、接收通知三、解析通知这里我就不做详细的介绍,直贴代码public Map<String, String> getRequestParams(HttpServletRequest r...原创 2020-04-10 10:43:50 · 7128 阅读 · 6 评论 -
微信对账文件处理之文件模式
一、查看接口项目中要进行对微信支付的账单进行对账,网上查一了一下,基本上所有的模式都是直接调用返回字符串的模式。微信官方接口如下微信对账官方接口 我们可以看到,其中有一个tar_type字段,网上大部分的对账单下载都是字符串格式进行处理,也就是说tar_type是不用传的,那么我就想,如果字符串数据过大,可能会造成数据的丢失,那么远不如下载文件来的方便。我这里使用的是 XXL-JOB 进行...原创 2020-04-10 10:15:29 · 7734 阅读 · 0 评论 -
Map有序转成有序json
Map有序转成有序json项目里要对一些签名的请求值签名,后台来验签,本来的是使用一些特殊的方法直接序列化的,下面给出例子。后来使用自定义的签名方法,得要自己序列化,以便于和后台验签方法一致。之前的Map序列化 //代码片 List<Map.Entry<String, Object>> mappingList = null; mappingList = new A...原创 2020-03-31 16:58:20 · 7589 阅读 · 2 评论 -
分享几个有用的网址
一.在线进制转换在项目中有时候需要各种进制转换,就收藏一个网址,不用再去搜素了链接: 在线进制转换.二.常用maven包查找在进行项目中,发现好多自己想用的包找不到,或者刚拉的项目发现缺少一些jar包链接1: maven常用包一.链接2: maven常用包二.三.使用SpringCloud自定时任务cron使用springcloud是有一个配置后自定时的@EnableS...原创 2019-11-27 17:18:03 · 9187 阅读 · 0 评论 -
微信小程序支付踩的坑(支付验证签名失败)
微信小程序支付踩的坑(支付验证签名失败)最近有需求是微信小程序支付,用的是微信自带的sdk,曾做过微信APP支付,微信扫用户码支付,都是OK的,现在把做微信小程序支付流程写下来,还有在调用过程踩的坑,下面为步骤一.先查看API地址: https://pay.weixin.qq.com/wiki/doc/api/index.html我是后端的,前端调用是用我们返回的值地址: https:...原创 2019-11-27 14:18:39 · 5622 阅读 · 2 评论 -
HashMap的实现原理
HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在。在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来来计算key-value的存储位置,我们总是可以通过key快速地存、取value。下面就来分析HashMap的存取。一、定义HashMap实现了Map接口,继承Abstract...转载 2019-11-04 14:05:11 · 2494 阅读 · 0 评论 -
java中Static用法
Java关键字static静态修饰符,可能大家都很熟悉,具体有什么用法?当我们通过new关键字去创建对象的时候,那么数据的存储空间才会被分配,类中的成员方法才能被对象所使用。但是呢有两种特殊的情况:1、我们通过new关键字创建的对象共享同一个资源,而不是说每个对象都拥有自己的数据,或者说根本就不需要去创建对象,这个资源和对象之间是没有关系的。2、希望某个方法不与包含它的类的任何对象联系在一...转载 2019-11-01 16:19:27 · 1969 阅读 · 0 评论 -
线程池在项目中的实战
线程池的原理和作用相比大家都比较了解了,不熟悉的可以看这篇文章链接: 线程池的使用(点击查看).一个项目中要求对丢MQ队列的消息用线程池接收处理...原创 2019-09-25 16:05:48 · 3002 阅读 · 0 评论 -
字符串加空后变十六进制ASCII码
例如输入12345678变成够10位的十六进制ASCII码public class TestFire { //bytesToHexString public static String bytesToHexString(byte[] src) { StringBuilder stringBuilder = new StringBuilder(""); if (src == nul...原创 2019-02-11 13:38:12 · 1169 阅读 · 0 评论 -
汉字转ASCII码
public class TestFire { //bytesToHexString public static String bytesToHexString(byte[] src) { StringBuilder stringBuilder = new StringBuilder(""); if (src == null || src.length <= 0) { r...原创 2019-02-11 13:47:57 · 8066 阅读 · 0 评论 -
微信app支付部分代码
1.配置SDK2.配置String wxpaykey =String wxappid =String wxmchid =3.初始化并调用Map<String, String> parameters = new HashMap<String, String>(); MyConfig config = new MyConfig...原创 2019-05-09 15:40:42 · 984 阅读 · 0 评论 -
支付宝APP支付部分代码
1.配置支付宝SDK<dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sdk-java</artifactId> <version>3.3.49.ALL</vers...原创 2019-05-09 15:34:42 · 2274 阅读 · 1 评论 -
Java九种基本数据类型的大小,以及他们的封装类
Java九种基本数据类型的大小,以及他们的封装类注:实际上JAVA只有8种基本数据类型,String类是引用类型,有人说第九种是void我们先看看是哪八种基本数据类型类型大小封装类默认大小取值范围byte(位)1字节8位Byte0-2^7 - 2^7-1short(短整数)2字节16位Short0-2^15 - 2^15-1int(...原创 2019-09-03 14:28:46 · 807 阅读 · 0 评论 -
ASCII码对照
ASCII码对照表一般在数据加密时候要对数据进行加密,加密前要转十六进制字符,解密要看对应的码值是否正确ASCII码对照表【点击】ASCII在线编码【点击】...原创 2019-09-03 14:38:41 · 1215 阅读 · 0 评论 -
接收支付宝的POST异步通知(回调)
public void getUnSignData(HttpServletRequest request, HttpServletResponse response){ try { //这里拿到支付宝通知数据 Map<String, String[]> requestParams = request.getParameterMa...原创 2019-09-23 14:14:39 · 10173 阅读 · 0 评论 -
服务器设置不同jdk局部生效的两种方法
第一种:在不同项目的文件夹下的.bash_profile中设置:export JAVA_HOME=/usr/java/jdk文件名export JAVA_BIN=/usr/java/jdk文件名/binexport PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools....原创 2019-09-23 14:19:58 · 897 阅读 · 0 评论 -
字符与字节的区别
1、计算机存储信息的最小单位,称之为位(bit),音译为比特,二进制的一个“0”或一个“1”叫一位。2、计算机存储容量基本单位是字节(Byte),音译为拜特,8个二进制位组成1个字节。一般而言:一个标准英文字母占一个字节位置,一个标准汉字占二个字节位置。3、计算机存储容量大小以字节数来度量,1024进位制: 1024B=1K(千)B 1024KB=1M(兆)B 1024MB=1G(...转载 2019-09-23 14:23:59 · 1695 阅读 · 0 评论 -
字符串条件反转
例如,我们将www.baidu.com变成www.udiab.mocpublic class TestFire { public static void main(String[] args) { String str="www.baidu.com"; String[] arr=str.split("\\."); String resu...原创 2019-02-11 13:18:57 · 863 阅读 · 0 评论