
技术分享
Rice_kil
这个作者很懒,什么都没留下…
展开
-
Java实现 四舍五入取整到百位 四舍五入取整到千位 数字取整到千位 数字取值到千位 数字取整到百位 数字取值到百位
现有一数字,2345.67 需要取值为2000;12356 取值为12300;正常思路 大概就是/1000 /100取商 再乘以对应的1000 或者 100;这里我们可以利用BigDecimal的setScale方法来做。第一个需要取值到千位,第二个需求取值到百位。但是看起来比较low,也不咋方便。千位-3 百位-2 以此类推。原创 2022-10-19 14:56:41 · 2125 阅读 · 1 评论 -
Java Date工具类 日期工具类
Java Date日期处理工具类原创 2022-10-17 16:39:18 · 879 阅读 · 0 评论 -
Json转指定泛型对象
public static void main(String[] args) { Map<String, RedisDouyinStoreProductModel> map = new HashMap<>(); RedisDouyinStoreProductModel model = new RedisDouyinStoreProductModel(); model.setCover("ddddd"); ma...原创 2021-11-18 16:21:15 · 1258 阅读 · 0 评论 -
Map中compute,computeIfAbsent,computeIfPresent方法
1.computecompute:V compute(K key,BiFunction < ? super K, ? super V, ? extends V> remappingFunction)compute的方法,指定的key在map中的值进行操作 不管存不存在,操作完成后保存到map中 HashMap<String,Integer> map = new HashMap<>(); map.put("1",1); .原创 2021-11-18 15:56:38 · 723 阅读 · 0 评论 -
ES教程 -- ES命令 | ES JAVA API 学习记录(三)
SpringBoot ElasticSearch Starter API1. pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> <version>2.3.7.RELEASE</...原创 2021-11-18 15:42:13 · 1839 阅读 · 0 评论 -
ES教程 -- ES命令 | ES JAVA API 学习记录(一)
1. ES 基础常用命令1. 获取某索引下数据 默认只展示10条GET {indexName}/_search2. 无条件 分页查询 es默认从0页开始 eg:获取第一页30条数据GET {indexName}/_search{ "from": 0, "size": 30}3. 条件查询es字段类型可以进行设置 这里针对keyword 和text类型数据查询进行比较查询关键字:term、match、match_phrase、query_string...原创 2021-09-08 19:54:03 · 568 阅读 · 0 评论 -
Java 拷贝对象集合属性 集合泛型不一致 也可拷贝
Demo 对象如图我们同时创建三个相同属性Vo对象当我们使用BeanUtils进行拷贝时,会发现这样的问题public static void main(String[] args) { Student student = new Student(); student.setStudentName("大明"); List<Student> studentList = new ArrayList<>(...原创 2021-08-31 16:15:08 · 2038 阅读 · 0 评论 -
Java8 不改变对象类 不重写equals 对集合中对象的某属性进行重复过滤
通过以下方法:public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) { Set<Object> seen = ConcurrentHashMap.newKeySet(); return t -> seen.add(keyExtractor.apply(t));}使用demo:public sta.原创 2021-02-26 14:04:38 · 458 阅读 · 0 评论 -
@Scheduled教程1-- 指定线程池运行定时任务
1. 未指定线程池需要注意的@Scheduled默认情况下只有一个线程,并不能同时运行多个任务,分析源码可以看到运行demo 在控制台我们可以看到打印出来的线程名称2. 指定线程池运行定时任务自定义一个线程工厂继承ThreadFactory进行线程配置package com.example.demo;import lombok.extern.log4j.Log4j;import java.util.concurrent.ThreadFactory;import原创 2021-01-28 17:38:09 · 3981 阅读 · 1 评论 -
JAVA如何判断对象某些属性是否一致(即JAVA对象如何重写equals和hashcode方法)
举个????:我们创建一个Student对象,它分别有age,name,id三个属性在没有重写equals和hashcode方法的时候,我们可以看到,即使对象属性值相同,他们也是不相等的,因为地址值不同接下来我们重写Student的equals与hashcode方法,我们认为age和name相同,这两个对象就是同一个测试:在重写了以后,s1与s2 id不同,age,name相同我们认为他们相等,符合预期有的同学可能存在这样的疑问,只重写了equals没有重写hashcode的效果原创 2020-09-16 12:03:49 · 2175 阅读 · 0 评论 -
JAVA 实现对图片打码,打马赛克
一. 图片区域类package com.example.demo.xxx;/** * 图片区域类 * @author jlm * */public class ImageArea { int x; //指定区域左上角横坐标 int y; //指定区域左上角纵坐标 int width; //指定区域宽度 int height; //指定区域高度 public ImageArea(int x, int y, int width, int height原创 2020-08-05 16:04:04 · 1970 阅读 · 2 评论 -
分库分表教程(Sharding-JDBC) -07
一. 增加主从数据库配置基于05章内容,我们在application.properties增加如下内容1. 增加从数据库配置spring.shardingsphere.datasource.s0.type = com.alibaba.druid.pool.DruidDataSourcespring.shardingsphere.datasource.s0.driver-class-name = com.mysql.jdbc.Driverspring.shardingsphere.datas原创 2020-07-26 00:18:28 · 300 阅读 · 0 评论 -
分库分表教程(Sharding-JDBC) -06
一. 配置MySQL数据库主从同步系统环境:LinuxMySQL版本:5.7 注意:主从数据库MySQL版本务必保持一致具体概括为以下操作步骤1)开启master的二进制日志2)开启slave的二进制日志3)将slave指向master4)开始复制1.1 开启master二进制日志1)编辑mysql配置文件vi /etc/my.cnf2)添加二进制日志配置,开启二进制(mysql-bin只是二进制日志名称,可以自行指定)server-id=1 ...原创 2020-07-14 23:37:36 · 346 阅读 · 0 评论 -
JAVA 实现将List集合分成指定大小的多个List集合(将List分成多个小List)
第一步:修改pom文件<!-- https://mvnrepository.com/artifact/com.google.guava/guava --><dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>23.0</version></depend原创 2020-07-03 17:44:39 · 3772 阅读 · 0 评论 -
分库分表教程(Sharding-JDBC) -05
公共表公共表属于系统中数据量较小,变动少,而且属于高频联合查询的依赖表。参数表、数据字典表等属于此类型。可以将这类表在每个数据库都保存一份,所有更新操作都同时发送到所有分库执行。1.建库建表...原创 2020-06-09 00:29:56 · 483 阅读 · 0 评论 -
分库分表教程(Sharding-JDBC) -04
垂直分库操作垂直分库其实是指按照业务将表进行分类,分布到不同的数据库上面,每个库可以放在不同的服务器上,它的核心理念是专库专用。接下来看一下如何使用Sharding-JDBC实现垂直分库1.建库建表CREATE DATABASE `user_db` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';DROP TABLE IF EXISTS `t_user`;CREATE TABLE `t_user` (`user_id` bigint(原创 2020-05-12 19:40:14 · 227 阅读 · 0 评论 -
分库分表教程(Sharding-JDBC) -03
分库操作1.创建两个数据库,分别具有相同的订单表2.修改配置文件,配置分库策略#sharding-jdbc分片规则配置#数据源spring.shardingsphere.datasource.names = m1,m2spring.shardingsphere.datasource.m1.type = com.alibaba.druid.pool.DruidDataSourcespring.shardingsphere.datasource.m1.driver-class-nam原创 2020-05-12 17:06:37 · 299 阅读 · 0 评论 -
分库分表教程(Sharding-JDBC) -02
分表操作1.首先我们创建一个数据库和两张表CREATE DATABASE `order_db` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';-- 创建订单库order_dbCREATE DATABASE `order_db` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';-- 在o...原创 2020-05-01 00:20:54 · 536 阅读 · 3 评论 -
讲解:LocalDate with(TemporalField field, long newValue)怎么用!!!!!
全网查了半天,官网api文档也看了,就是不明白这个方法到底什么意思!!!!还有这种傻x,官网复制黏贴一遍就发出来,浪费时间,让我生气!前人栽树后人乘凉,写下这篇博客,让后来的小伙伴少走点弯路如图,我们首先定义一个localDate时间为2019-06-13(周四),接下来定义以周五作为起始,一周7天的weekFields对象那么下面这段代码什么意思呢?LocalDat...原创 2020-04-08 18:11:41 · 2564 阅读 · 0 评论 -
java8 实现两个集合之间进行元素比较
首先我们有两个集合A,B,我们以其中一个集合A为基准想获得B集合中的元素,相对于A集合来说,哪些元素不存在,哪些元素A没有业务场景:以db1中的数据为准,更新db2中的数据,db1有的,db2没有的进行添加操作,db2有的,db1没有的进行删除操作那么我们就需要知道,哪些元素是要添加的,哪些是要删除的传统做法:通过标记实现 private static Map<...原创 2020-03-20 16:58:18 · 16056 阅读 · 0 评论 -
"$"作为分隔符的字符串如何进行切割
举例现有字符串:"a$b$c" 我们需要获取的结果是[a,b,c]public static void main(String[] args) { String s = "a$b$c"; String[] $s = s.split("$"); System.out.println("$s = " + Arrays.toString($s)...原创 2020-03-04 21:22:50 · 2354 阅读 · 0 评论 -
分库分表教程(Sharding-JDBC) -01
1.概念介绍分库分表就是为了解决由于数据量过大而导致数据库性能降低的问题,将原来独立的数据库拆分成若干数据库组成,将数据大表拆分成若干数据表组成,使得单一数据库、单一数据表的数据量变小,从而达到提升数据库性能的目的1.1分库分表方式分库分表包括分库和分表两个部分,在生产中通常包括:垂直分库、水平分库、垂直分表、水平分表四种方式。(1) 垂直分表以商品举例,商品表通常包括id,所...原创 2019-12-30 11:20:52 · 473 阅读 · 0 评论 -
前后端通信进行AES加密(Vue - Java)
一. 前端工作1.安装crypto-js安装命令:npm install crypto-js2.js编写import CryptoJS from "crypto-js";const CRYPTOJSKEY= "abcdefgabcdefg12";// 加密const encrypt = (plaintText)=> { var plaintText ...原创 2019-12-24 16:24:39 · 1051 阅读 · 1 评论 -
java:数组转换成List集合讲解(使用Arrays.asList()转换数组为集合时,对集合进行操作报UnsupportedOperationException异常)
Arrays.asList()在平时开发中还是比较常见的,我们可以使用它将一个数组转换为一个List集合。String[] myArray = { "Apple", "Banana", "Orange" }; List<String> myList = Arrays.asList(myArray);//上面两个语句等价于下面一条语句List<String> my...原创 2019-11-19 17:38:05 · 384 阅读 · 0 评论 -
解决:SpringBoot 配置LogBack 后一天的日志打印到前一天日志
原LogBack配置文件:<?xml version="1.0" encoding="UTF-8"?><configuration debug="false"> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <property name="LOG_HOME" value="../logs/remote_s...原创 2019-11-15 13:47:21 · 2596 阅读 · 1 评论 -
java8 parallel并行处理(附对比)
适用场景:前提保证线程安全,例如需要将多个文件下载保存到服务器通常写法:public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("http://172.16.140.152:8080/cms1/filePath/Image/20...原创 2019-11-08 15:35:14 · 5271 阅读 · 3 评论 -
JAVA (Graphics2D)解决合成图片失真问题
附对比图:合成后失真严重代码优化后:原代码:参数解释:1. img为你需要把他合成到A图片上的B图片,以下简称为章2. srcImagePath为A图片的绝对路径3. targetPath为合成后的图片输出路径4. x,y为章需要合成到A图片上的位置坐标,w,h为将章缩小到多少长宽比例注意这行代码:g.drawImage(img, x, y, w, h,...原创 2019-11-05 14:31:06 · 11336 阅读 · 3 评论 -
JAVA实现将文字合成到指定图片的指定位置(JAVA合成文本文字到图片文件:附font字体不生效解决办法)
实现效果如图:代码如下:参数s1,s2分别代表你想要合成到图片中的文字信息,如需多个可自行进行修改import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGImageEncoder;import javax.imageio.ImageIO;import java.awt.*;...原创 2019-10-22 10:56:51 · 1574 阅读 · 11 评论 -
JAVA8函数式编程-简化编程代码方法介绍
一.常用的流1.1Collect将流转换为List、Set、Map等public class Test2 { public static void main(String[] args) { //转换成list List<Student> studentList = Stream.of(new Student("路...原创 2019-10-16 15:57:18 · 438 阅读 · 0 评论 -
JAVA代码实现上传文件至文件服务器(远程服务器、非项目当前所在服务器)
步骤一:添加依赖 <!--sftp文件上传--> <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version&...原创 2019-09-17 18:23:26 · 9059 阅读 · 13 评论 -
org.apache.catalina.core.ContainerBase.addChildInternal 解决方法
tomcat启动报错详细报错信息:org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start:org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina...原创 2019-05-28 15:49:03 · 9375 阅读 · 0 评论 -
SpringBoot实现WebSocket通信
第一步引入Maven依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId></dependency>第二步配置W...原创 2019-05-23 14:52:09 · 565 阅读 · 0 评论 -
MultipartFile转File工具类
博主直接分装了工具类适合不同需求import java.io.*;import org.apache.commons.io.IOUtils;import org.springframework.mock.web.MockMultipartFile;import org.springframework.web.bind.annotation.RequestParam;import o...原创 2019-05-08 14:38:01 · 1141 阅读 · 1 评论 -
Java代码实现WORD转PDF
第一步:安装OpenOffice 在此良心提供windows版本安装文件链接:https://pan.baidu.com/s/17pPCkcS1C46VtLhevqSgPw 密码:vmlu安装就一直点下一步即可。安装完成后,进入OpenOffice安装目录安装目录一般为C:ProgramFiles(x86)/OpenOffice 4/program/执行下面命令:...原创 2019-05-07 15:53:46 · 1545 阅读 · 2 评论 -
如何将数据库中的表文件在浏览器端导出为Excel
本案例使用SpringMVC第一步查询出所需信息封装到list集合当中like this List<SysLog> logList = sysLogAspect.queryAllSysLog();第二步 填写Excel // 生成Excel文件 HSSFWorkbook hssfWorkbook = new HSSFWorkbook(); ...原创 2018-10-15 11:09:18 · 655 阅读 · 0 评论 -
如何新增切面,日志切面
增加切面,对操作进行记录第一步 新建日志实体import java.io.Serializable;import java.sql.Timestamp;public class SysLog { private static final long serialVersionUID = 1L; public static final String USERNAME_COLUMN...原创 2018-10-15 10:47:29 · 1144 阅读 · 0 评论