java工具笔记
tiger_angel
这个作者很懒,什么都没留下…
展开
-
hutool工具类json序列化忽略字段属性
是否支持transient关键字修饰和@Transient注解,如果支持,被修饰的字段或方法对应的字段将被忽略。文档中描述是字段上加注解,默认配置是开启@Transient注解。原创 2023-01-05 00:31:34 · 3489 阅读 · 0 评论 -
mybatisplus封装分页拦截器和插入修改拦截器
- mybatis plus版本 -->操作数据时候,表存在字段,不用每次手动操作。先确认我使用的springboot版本。createUserId 创建人。updateUserId 修改人。让mybatis-plus帮忙做。createTime 创建时间。updateTime 修改时间。原创 2022-12-29 16:02:33 · 1841 阅读 · 0 评论 -
时间序列分析之ARIMA模型的JAVA实现
ceshidata1.txt文件。原创 2022-12-26 12:37:35 · 1641 阅读 · 9 评论 -
java泛型定义及使用
}…………}}}//使用//也就是在原来的T后面用逗号隔开,写上其它的任意大写字母即可。想加几个就加几个,比如我们想加五个泛型变量,那应该是这样的://字母规范:在定义泛型类时,我们已经提到用于指定泛型的变量是一个大写字母:}//定义泛型接口interface Info{ // 在接口上定义泛型// 定义抽象方法,抽象方法的返回值就是泛型类型}//实现接口。原创 2022-12-13 00:02:08 · 2314 阅读 · 0 评论 -
java 接口定义超时时间,超时抛出异常,并且任务继续触发
mayInterruptIfRunning)方法可以用来停止一个任务,如果任务可以停止(通过mayInterruptIfRunning来进行判断),则可以返回true,如果任务已经完成或者已经停止,或者这个任务无法停止,则会返回false.get()方法可以当任务结束后返回一个结果,如果调用时,工作还没有结束,则会阻塞线程,直到任务执行完毕。isCancel()方法判断当前方法是否取消。isDone()方法判断当前方法是否完成。原创 2022-11-04 14:36:00 · 3729 阅读 · 0 评论 -
JavaScript将MyBatis打印的日志转化为可执行sql
【代码】JavaScript将MyBatis打印的日志转化为可执行sql。原创 2022-11-03 18:31:30 · 443 阅读 · 0 评论 -
Mybatis-Plus复杂语句多级嵌套分组带分页查询
这样是不会有sql注入风险的,反之会有!例: func(i -> if(true) {i.eq("id", 1)} else {i.ne("id", 1)})例: and(i -> i.eq("name", "李白").ne("status", "活着"))例: or(i -> i.eq("name", "李白").ne("status", "活着"))例: nested(i -> i.eq("name", "张三").gt("age", 25)).........原创 2022-08-29 19:34:02 · 3292 阅读 · 0 评论 -
java并发Queue队列和对mysql缓存数据统一提交列子
在并发队列上JDK提供了两套实现,一个是以ConcurrentLinkedQueue为代表的非阻塞高性能队列,一个是以BlockingQueue接口为代表的阻塞队列,无论哪种都继承自Queue。阻塞队列与非阻塞队阻塞队列与普通队列的区别在于,当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞。试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程往空的队列插入新的元素。原创 2022-08-23 22:41:12 · 392 阅读 · 0 评论 -
java简单的多线程同步器实现
同步器解释,如:跑步必须在统一起跑线出发。原创 2022-08-23 21:34:03 · 180 阅读 · 0 评论 -
Java本地缓存器Caffeine
缓存(Cache)在代码世界中无处不在。从底层的CPU多级缓存,到客户端的页面缓存,处处都存在着缓存的身影。缓存从本质上来说,是一种空间换时间的手段,通过对数据进行一定的空间安排,使得下次进行数据访问时起到加速的效果。就Java而言,其常用的缓存解决方案有很多,例如数据库缓存框架EhCache,分布式缓存Memcached等,这些缓存方案实际上都是为了提升吞吐效率,避免持久层压力过大。原创 2022-08-23 19:47:56 · 1080 阅读 · 0 评论 -
java缓存Guava Cache用法介绍
在日常开发中,有很多这种场合:有一些数据量不是很大,不会经常改动,并且访问非常频繁;但是,由于受限于硬盘IO的性能,或者远程网络等原因,获取可能非常耗时,导致我们的程序非常慢。这在某些业务上是不能忍的!缓存正是解决这类问题的神器!缓存的主要作用是:暂时在内存中保存业务系统的数据处理结果,等待下次访问使用。Guava cache 属于集中式内存缓存。Guava Cache 与 ConcurrentMap 很相似,但也不完全一样。原创 2022-08-23 17:19:52 · 2236 阅读 · 0 评论 -
Java缓存ExpiringMap
2.可设置Map最大容纳值,当到达Maximum size后,再次插入值会导致Map中的第一个值过期。3.可添加监听事件,在监听到Entry过期时调度监听函数。1.可设置Map中的Entry在一段时间后自动过期。4.可以设置懒加载,在调用get()方法时创建对象。原创 2022-08-23 16:55:40 · 194 阅读 · 0 评论 -
java 缓存一分钟数据_Java定时缓存数据
【代码】java 缓存一秒数据_Java定时缓存数据。原创 2022-08-23 16:43:52 · 846 阅读 · 0 评论 -
java高并发下缓存超时时间或者最大批次来源数据redis统一入库
并结合缓存类来处理高并发下数据入库问题,做到实时数据存入redis和数据批量入库,使用的时候需要修改为自己的业务数据,该模块是根据下面的设置进行高并发处理。1、达到设置的超时时间。原创 2022-08-23 16:36:28 · 715 阅读 · 0 评论 -
java-jdk8的stream 流对List<map>和list<对象>集合的一个字段值计算操作reduce() collect()的使用
()这个方法可能平时用得不多,因为它的常用方法都被单独封装起来了。比如sum()、max()、min()、原创 2022-08-22 18:02:59 · 2263 阅读 · 0 评论 -
Java数组截取如何实现?Java语言教程
public static int[] arraySub(int[] data, int start, int end) { int[] C = new int[end - start]; //新建数组C长度为start-end int j = 0; for (int i = start; i < end; i++) { < p = "" > C[j...原创 2022-07-28 09:33:43 · 8130 阅读 · 0 评论 -
数据库时间和 java 时间不一致解决方案
java添加 date 到数据库,时间不一致使用 date 添加到数据库,数据库显示的时候和date时间相差 8 个小时,这是由于 mysql 上的时区的问题,这里有两个解决方案:方案一: 设置数据库连接时区在 springboot 的配置文件中的 spring.datasource.url 添加后缀 serverTimezone=Asia/Shanghai。设置本地时区。方案二: 设置 mysql 时区查看 mysql 时区:这里分成修改当前会话和全局会话修改当前会话:修改全局会话:原创 2022-06-10 10:41:54 · 1506 阅读 · 0 评论 -
java中double计算精度问题
package com.zz.meridian.utils;import java.math.BigDecimal;/** * @tiger * 确的浮点数运算,包括加减乘除和四舍五入。 */public class DoubleArithUtil{ //默认除法运算精度 private static final int DEF_DIV_SCALE = 10; //这个类不能实例化 private DoubleArithUtil(){ } .原创 2022-05-30 10:31:48 · 2245 阅读 · 0 评论 -
动态拼接sql语句工具类,拼接where后面语句
package com.zz.meridian.utils.SqlUtil;import javafx.util.Pair;import org.apache.commons.collections4.CollectionUtils;import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** * @author wangdonghua * 动态拼接sql condition工具类 * 单表.原创 2022-05-19 16:09:24 · 1113 阅读 · 0 评论 -
fastjson获取json字符串指定位置的数据
JSONPath.read(json, "$.data.NumberLoadedRows");获取data.NumberLoadedRows的值,$是必须的{ "code": 200, "msg": null, "data": { "Status": "Success", "BeginTxnTimeMs": 0, "Message": "OK", "NumberUnselectedRows": 0, "CommitAndPublishTimeMs...原创 2022-04-15 16:51:23 · 1277 阅读 · 0 评论 -
java时间戳生成13位16位19位唯一整数id并发应用_java web在高并发和分布式下实现订单号生成唯一整数id-number id
方案一:如果没有并发,订单号只在一个线程内产生,那么由于程序是顺序执行的,不同订单的生成时间戳正常不同,因此用时间戳+随机数(或自增数)就可以区分各个订单。如果存在并发,且订单号是由一个进程中的多个线程产生的,那么只要把线程ID添加到序列号中就可以保证订单号唯一。如果存在并发,且订单号是由同一台主机中的多个进程产生的,那么只要把进程ID添加到序列号中就可以保证订单号唯一。如果存在并发,且订单号是由不同台主机产生的,那么MAC地址、IP地址或CPU序列号等能够区分主机的号码添加到序列号中就可以保证订单号唯原创 2022-04-14 18:37:28 · 3337 阅读 · 0 评论 -
Java文件IO操作Paths和Files
Java7中文件IO发生了很大的变化,专门引入了很多新的类:import java.nio.file.DirectoryStream;import java.nio.file.FileSystem;import java.nio.file.FileSystems;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;import java.nio.file.attribute.File.原创 2022-04-12 11:52:19 · 550 阅读 · 0 评论 -
jedis操作redis来抢购秒杀商品
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version></dependency>将jedis注入到spring中,略@AutowiredJedisPool jedisPool;下面是源码,在servie层函数中接口执行..原创 2022-03-04 19:15:39 · 718 阅读 · 0 评论 -
Jedis集成springboot和hutool-all来操作redis工具类
在ClassPath(或者src/main/resources)的config目录下下新建redis.setting构建Jedis jedis = RedisDS.create().getJedis();#-------------------------------------------------------------------------------# Redis客户端配置样例# 每一个分组代表一个Redis实例# 无分组的Pool配置为所有分组的共用配置,如果分组自.原创 2022-03-03 20:06:06 · 1638 阅读 · 0 评论 -
java获取文件夹下所有文件
/** * 获取文件夹下面的所有文件 * @param path */ public void traverseFolder1(String path) { int fileNum = 0, folderNum = 0; File file = new File(path); if (file.exists()) { LinkedList<File> list = new Linked.原创 2022-03-03 17:17:49 · 8921 阅读 · 4 评论 -
java按表格顺序读取excel单元格的图片
List<PictureData> pictureDatas = (List<PictureData>) workbook.getAllPictures(); List lst = workbook.getAllPictures();wps只能用workbook.getAllPictures();但是这种图片是没有顺序的dasdasd()方法支持office的excelpackage com.zz.bgf.utils;import ...原创 2022-01-17 20:59:07 · 2055 阅读 · 0 评论 -
java利用opencv融合图片(idea 集成opencv)
到官网下载对应版本的Windows版本,我这里下载的是4.5.x版本,下载后可以得到名为opencv的文件夹 https://opencv.org/releases/ 在opencv\build\java\opencv-454.jar中找到需要引入的jar包 点击opencv-xxx.exe安装,会下载需要的opencv资源 到opencv目录java开发-我电脑64位就选择64的.dll:在项目中加入maven<dependency>...原创 2021-12-07 19:57:34 · 3562 阅读 · 0 评论 -
Java 字符串Base64编码和解码
//编码String message = "我是码农";String encode = Base64.getEncoder().encodeToString(message.getBytes(StandardCharsets.UTF_8)); // 方式一String encode2 = new String(Base64.getEncoder().encode(message.getBytes()), StandardCharsets.UTF_8); // 方式二System.out.pri.原创 2021-11-26 21:22:33 · 7216 阅读 · 1 评论 -
java list集合根据时间戳来分组(list集合中有1万数据等)
/** * 数据集合list的中对象 每隔time时间分一组 * @param list 数据集 * @param time 时间戳 毫秒 60 * 60 * 1000 * @return */ public static Map<Integer,List<Ph>> get(List<Ph> list, Long time){ Map<Integer,List<Ph>>.原创 2021-08-13 16:58:04 · 2333 阅读 · 0 评论 -
java工具谷歌工具-Google guava工具类的介绍和使用
工具类 就是封装平常用的方法,不需要你重复造轮子,节省开发人员时间,提高工作效率。谷歌作为大公司,当然会从日常的工作中提取中很多高效率的方法出来。所以就诞生了guava。guava的优点:高效设计良好的API,被Google的开发者设计,实现和使用 遵循高效的java语法实践 使代码更刻度,简洁,简单 节约时间,资源,提高生产力Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 缓存 [caching] 原生类型支持 [p原创 2021-08-12 10:05:51 · 1349 阅读 · 0 评论 -
java-jdk8的stream 流对List<map>和list<对象>集合的分组Collectors.groupingBy
以下以map的k来分组:public static void main(String[] args) { List<Map<String,Object>> list=new ArrayList<>(); Map<String,Object> map=new HashMap<>(); map.put("id",1); list.add(map); Map<S.原创 2021-08-11 16:24:53 · 6314 阅读 · 0 评论 -
java-optics算法-聚类
package com.example.demo2.utils.optics;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class ClusterAnalysis { class ComparatorDp implements Comparator<DataPoint> { .原创 2021-08-11 15:48:07 · 275 阅读 · 0 评论 -
java-dtw和lcss航迹相似度
package com.example.demo2.utils.dtw_lcss;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;@Data@AllArgsConstructor@NoArgsConstructorpublic class Coordinate { private double x; private double y;}pack.原创 2021-08-11 15:46:53 · 538 阅读 · 0 评论 -
java-dbscan2自动聚类
package com.example.demo2.utils.dbscan2;import java.util.ArrayList;/** * Created by Jason on 2016/4/17. */public class Client { public static void main(String[] args) { //ArrayList<Point> points = Data.generateSinData(200); .原创 2021-08-11 15:45:33 · 136 阅读 · 0 评论 -
java-dbscan自动聚类算法
package com.example.demo2.utils.dbscan;import java.io.IOException;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class DBScan { private static List<Point> pointsList = new ArrayList<Point>();//存储所有.原创 2021-08-11 15:44:01 · 376 阅读 · 0 评论 -
java-实现空间索引编码(GeoHash)
GeoHash特点1)GeoHash用一个字符串表示经度和纬度两个坐标,比如我现在所在位置的GeoHash值为 wx4sv61q;2)GeoHash标识的并不是一个点,而是一个区域,比如 wx4sv61q 对应的就是一个矩形区域;3)编码的前缀可以标识更大的区域,比如 wx4sv61 编码代表的区域要大于 wx4sv61q 代表的区域,但是 wx4sv61q 代表的区域一定在 wx4sv61 代表的区域内。 因此我们再去做距离检索的时候,只需要对GeoHash进行前缀匹配即可,具体...原创 2021-08-11 15:37:55 · 1305 阅读 · 0 评论 -
mybatis-plus-generator自动生成的相关代码
<!-- MybatisPlus代码生成工具 --><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.4.1</version></dependency><dependency> <...原创 2021-08-09 13:30:07 · 179 阅读 · 0 评论 -
windows server创建ftp的时候,如果内部能访问,外部不能访问,需要把ftp的端口加进去
去找到入站规则添加上端口或者ip如果使用的是老版本的server服务器 请使用ie浏览器打开ftp地址,高版本的浏览器不支持原创 2019-04-23 16:51:17 · 1677 阅读 · 2 评论 -
大数据的过滤-布隆过滤器
布隆过滤器使用场景之前在《数学之美》里面看到过布隆过滤器的介绍。那么什么场景下面需要使用布隆过滤器呢?看下下面几个问题字处理软件中,需要检查一个英语单词是否拼写正确 在 FBI,一个嫌疑人的名字是否已经在嫌疑名单上 在网络爬虫里,一个网址是否被访问过 yahoo, gmail等邮箱垃圾邮件过滤功能以上这些场景有个共同的问题:如何查看一个东西是否在有大量数据的池子里面。通常的做法有如下几种思路:数组 链表 树、平衡二叉树、Trie Map (红黑树) 哈希表上面转载 2020-07-10 16:39:04 · 538 阅读 · 0 评论 -
java程序中实现打开win程序或者Linux程序如某个指定浏览器
//实现打开浏览器并跳到指定网址的类package com.test; import java.lang.reflect.Method; //实现打开浏览器并跳到指定网址的类public class BareBonesBrowserLaunch { public static void openURL(String url) { try { browse(url); } catch (Exception e) { ...原创 2021-07-12 11:23:29 · 413 阅读 · 0 评论