Java
Chery Qi
学无止境,然则问可少耶?
展开
-
2021-11-20T15:00:13.000+08:00 时间格式转换LocalDateTime格式
DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");Date date = df.parse(sendTime);SimpleDateFormat df1 = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.UK);Date date1 = df1.parse(date.toString());DateFormat df2 = new SimpleDateFor原创 2021-11-22 15:12:49 · 3662 阅读 · 0 评论 -
Java8 Stream流递归, 遍历树形结构
可能平常会遇到一些需求,比如构建菜单,构建树形结构,数据库一般就使用父id来表示,为了降低数据库的查询压力,我们可以使用Java8中的Stream流一次性把数据查出来,然后通过流式处理,我们一起来看看,代码实现为了实现简单,就模拟查看数据库所有数据到List里面。实体类:Menu.java/** * Menu * @author lcry */@Data@Builderpublic class Menu { /** * id */ public Integ转载 2021-11-09 14:24:15 · 451 阅读 · 0 评论 -
@Validated注解详解,分组校验,嵌套校验,@Valid和@Validated 区别,Spring Boot @Validated
技术栈:spring boot 2.3.3.RELEASEhibernate-validator文末附项目源代码目录简述项目依赖全局异常处理类基础参数校验实体类控制类测试嵌套参数验证实体类控制类测试分组参数验证接口类实体类控制类测试@Valid和@Validated 区别简述@Validation是一套帮助我们继续对传输的参数进行数据校验的注解,通过配置Validation可以很轻松的完成对数据的约束。@Validated作用在类、方法和参数上 @Ta转载 2021-11-05 10:37:54 · 644 阅读 · 0 评论 -
LocalDateTime计算时间间隔秒数
LocalDateTime endTime = LocalDateTime.parse("2021-08-31 23:38:12", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));LocalDateTime beginTime = LocalDateTime.now();long seconds = Math.abs(endTime.until(beginTime, ChronoUnit.SECONDS));原创 2021-10-11 10:23:56 · 4022 阅读 · 1 评论 -
windows 中查看端口占用情况并杀死进程
netstat -ano |findstr “端口号”tasklist |findstr “进程id号”taskkill /f /t /im “进程id或者进程名称”原创 2021-09-09 10:10:44 · 101 阅读 · 0 评论 -
上传jar包到Nexus
或者命令行(ip地址和路径根据实际修改)mvn deploy:deploy-file -DgroupId=com.lanlinker.cloud.examples -DartifactId=lanlinker-hc-examples -Dversion=1.0.0 -Dpackaging=jar -Dfile=D:\examples.jar -Durl=http://192.168.1.139:8092/repository/lanlinker-3rd/ -DrepositoryId=lanlinke..原创 2021-08-17 13:28:51 · 130 阅读 · 0 评论 -
浅析VO、DTO、DO、PO的概念、区别和用处
概念:VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。DO(Domain Object):领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。PO(Persiste转载 2021-08-05 14:58:38 · 210 阅读 · 0 评论 -
hutool工具Word07Writer导出word文档提供下载
<!-- hutool --> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.3.7</version> </dependency> public static v原创 2021-08-04 16:05:07 · 5316 阅读 · 3 评论 -
java8 Stream 大数据量List分批处理切割
java8 Stream 大数据量List分批处理//按每3个一组分割private static final Integer MAX_SEND = 3;public static void main(String[] args) { List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7); int limit = countStep(list.size()); //方法一:使用流遍历操作转载 2021-07-15 15:17:29 · 2272 阅读 · 0 评论 -
SpringBoot +Mybatis-plus 结合数据库动态执行定时任务
SpringBoot +mybatis-plus 结合数据库动态执行定时任务1.添加依赖 <properties> <java.version>1.8</java.version> <mybatis-generator.version>1.3.7</mybatis-generator.version> <mysql-connector.version>8.0.15</mys原创 2021-06-08 14:36:53 · 1064 阅读 · 1 评论 -
mybatis有二级缓存,为什么还要用redis
1、mybatis一级缓存作用域是session,session在commit之后缓存就消失了。 2、mybatis二级缓存作用域是sessionfactory,该缓存是以namespace为单位的(也就是一个Mapper.xml文件),不同namespace下操作互不影响。 3、所有对数据表的改变操作都会刷新缓存,但是一般不要用二级缓存,例如,在UserMapper.xml中有大多数针对User表的操作,但是在另一个XXXManpper.xml中,还有针对user单表的操作,这会导致user.转载 2021-06-03 10:46:28 · 805 阅读 · 0 评论 -
IDEA试用插件
https://plugins.zhile.io一劳永逸勾选下方的Auto reset before per restart,可以做到一劳永逸。原创 2021-05-16 22:11:22 · 2543 阅读 · 1 评论 -
JDK1.8 List转Map
使用guava Map<Long, User> maps = Maps.uniqueIndex(userList, new Function<User, Long>() { @Override public Long apply(User user) { return user.getId(); } });使用JDK1.8Map<Long, User&原创 2021-05-13 10:31:13 · 2370 阅读 · 0 评论 -
jdk1.7之后java不需要自己关闭io流了
以往,我们需要在finally中关闭自己写的io流,防止内存溢出,相当麻烦。如下 InputStream is=null; InputStreamReader isr=null; BufferedReader read=null; try { is = new FileInputStream(new File("")); isr = new InputStreamReader(is);转载 2021-05-11 15:29:38 · 999 阅读 · 0 评论 -
分批调用接口的实现
public class BatchCall { private static final Integer SIZE_5 = 5; @Test public void test1() { List<Integer> list = new ArrayList<>(); for ( int i = 0; i < 123; i++ ) { // 这实际有一个自动装箱的过程 Integer.valueOf.转载 2021-04-14 11:40:53 · 559 阅读 · 0 评论 -
2021-03-31T02:49:32+0000 格式化为日期
Date date1; DateFormat df2; DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); Date date = df.parse(equipmentInfoYFParam.getShowTime()); SimpleDateFormat df1 = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.U...原创 2021-03-31 10:53:28 · 591 阅读 · 0 评论 -
rabbitmq 后台启动
百度后台启动的命令,居然全是错误的,我在这里记录一下正确的rabbitmq-server -detached如果不能运行可以去rabbitmq安装目录运行,要是不知道可以安装目录可以使用搜索命令find / -name 'rabbitmq' -type d...转载 2021-03-30 16:55:40 · 916 阅读 · 0 评论 -
java8 两个集合根据字段去重
List<LaborExtension> laborExtensions = laborExtensions.stream() .filter(item -> !yfLaborRecordings.stream().map(e -> e.getIdentityId()) .collect(Collectors.toList()).contains(item.getIdentityId().原创 2021-03-30 11:42:45 · 1666 阅读 · 0 评论 -
工具类中@Value无法获取到配置文件中的值
InputStream is = TokenTaskService.class.getClassLoader().getResourceAsStream("bootstrap-dev.yml"); BufferedReader br = new BufferedReader(new InputStreamReader(is)); Properties props = new Properties(); try { pr...原创 2021-03-29 14:53:04 · 610 阅读 · 0 评论 -
那些jdk中坑你没商量的方法
前言:jdk作为我们每天必备的调用类库,里面大量提供了基础类供我们使用.可以说离开jdk,我们的java代码寸步难行,jdk带给我们的便利可谓是不胜枚举,但同时这些方法在使用起来也存在一些坑,如果不注意就很容易掉入到陷阱里面,导致程序抛出错误。jdk中的很多方法都不会做非null判断,可能设计jdk的作者默认开发者已经处理好null值了.不过这个设计可能会造成很严重的后果,实在是暗藏杀机。比如今天早上我们查了一笔订单没有退款,查了一早上最终才发现是同事写的代码的BigDecimal的subtract方法的值转载 2021-03-24 17:05:28 · 87 阅读 · 0 评论 -
ArrayList和LinkedList的用法区别:
1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。 这一点要看实际情况的。若只对单条数据插入或删除,ArrayList的速度反而优于LinkedList。但若是批量随机的插入删除数据,LinkedList的速度大大优于ArrayL...转载 2021-02-20 11:45:25 · 240 阅读 · 0 评论 -
Maven中的GroupID和ArtifactID指的是什么?
GroupId和ArtifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。 GroupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的GroupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,Artifact转载 2021-02-09 15:22:04 · 98 阅读 · 0 评论 -
当面试官问我ArrayList和LinkedList哪个更占空间时,我这么答让他眼前一亮
前言今天介绍一下Java的两个集合类,ArrayList和LinkedList,这两个集合的知识点几乎可以说面试必问的。对于这两个集合类,相信大家都不陌生,ArrayList可以说是日常开发中用的最多的工具类了,也是面试中几乎必问的,LinkedList可能用的少点,但大多数的面试也会有所涉及,尤其是关于这两者的比较可以说是家常便饭,所以,无论从使用上还是在面试的准备上,对于这两个类的知识点我们都要有足够的了解。ArrayListArrayList是List接口的一个实现类,底层是基于数组实转载 2021-02-09 15:13:15 · 196 阅读 · 1 评论 -
java正则只允许输入1或2一位数字(其他数字自行修改即可)
@Pattern(regexp = "^[12]$", message = "仅允许输入1或2")原创 2021-02-01 11:19:39 · 3900 阅读 · 1 评论 -
Java8 List去重(单属性或组合属性)
package com.demo.jdk8.collectors; import com.google.common.collect.Lists;import org.junit.jupiter.api.Test; import java.util.ArrayList;import java.util.Comparator;import java.util.List;import java.util.TreeSet;import java.util.stream.Collectors;.转载 2021-01-05 15:32:42 · 298 阅读 · 0 评论 -
Java中Map的 entrySet() 详解以及用法(四种遍历map的方式)
Entry由于Map中存放的元素均为键值对,故每一个键值对必然存在一个映射关系。Map中采用Entry内部类来表示一个映射项,映射项包含Key和Value (我们总说键值对键值对, 每一个键值对也就是一个Entry)Map.Entry里面包含getKey()和getValue()方法Iterator<Map.Entry<Integer, Integer>> it=map.entrySet().iterator(); while(it.hasNext...转载 2020-12-02 10:17:05 · 670 阅读 · 0 评论 -
关闭Java进程
taskkill/F/IMjava.exe原创 2020-11-20 14:44:12 · 100 阅读 · 0 评论 -
java8排序
@Datapublic class StudentInfo implements Comparable<StudentInfo> { //名称 private String name; //性别 true男 false女 private Boolean gender; //年龄 private Integer age; //身高 private Double height; //出生日期 private Loca.原创 2020-09-01 09:59:21 · 149 阅读 · 0 评论 -
TestTransferValue 测试
@NoArgsConstructor@Getter@Setterpublic class Person { private Integer id; private String personName; public Person(String personName) { this.personName = personName; }}public class TestTransferValue { public void cha..原创 2020-08-31 11:29:09 · 3011 阅读 · 0 评论 -
Java 中的E,K,V,T,U,S
Java泛型中的标记符含义:E- Element(在集合中使用,因为集合中存放的是元素)T- Type(Java类)K- Key(键)V- Value(值)N- Number(数值类型)?- 表示不确定的java类型Object 跟这些标记符代表的java类型有啥区别呢?Object 是所有类的根类,任何类的对象都可以设置给该Object引用变量,使用的时候可能需要类型强制转换,但是用使用了泛型T、E等这些标识符后,在实际用之前类型就已经确定了,不需要...转载 2020-08-31 10:23:26 · 287 阅读 · 0 评论 -
Java时间戳和时间的相互转换(笔记记录)
Long seconds = LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();//获取当前时间戳 System.out.println(seconds); final String dateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(seconds);//转换为时间格式 System.out.print...原创 2020-05-29 17:47:16 · 639 阅读 · 0 评论 -
Java中的值传递
在开始深入讲解之前,有必要纠正一下大家以前的那些错误看法了。如果你有以下想法,那么你有必要好好阅读本文。错误理解一:值传递和引用传递,区分的条件是传递的内容,如果是个值,就是值传递。如果是个引用,就是引用传递。错误理解二:Java是引用传递。错误理解三:传递的参数如果是普通类型,那就是值传递,如果是对象,那就是引用传递。实参与形参我们都知道,在Java中定义方法的时候是可以定义参数的。比如Java中的main方法:publicstaticvoidmain(S...转载 2020-05-29 11:12:44 · 183 阅读 · 0 评论 -
JAVA8日期转换、拼接时间
final String date =LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM"))//转换为年月格式 final StringJoiner sj = new StringJoiner("-").add(date).add("指定day")//拼接具体天数 final String endTime = sj + " 23:59:59"; final String year = LocalDate..原创 2020-05-28 11:00:31 · 2588 阅读 · 0 评论 -
Java中去掉json默认包含空串字段属性 And Java中忽略某个自定义属性
去掉json默认包含空串字段属性spring boot中,返回json默认是包含空串的,如果要去掉空串的字段,在bean上添加注解。@JsonInclude(JsonInclude.Include.NON_EMPTY)自定义去掉某个属性在字段属性上添加注解@JsonIgnore@JsonIgnoreprivate String goodsId;...原创 2019-10-21 10:02:41 · 589 阅读 · 0 评论 -
Linux与Windows下文件的路径的读取
文件路径在windows中用 \ 表示,在linux中是 /, java提供了一个路径常量 File.separator在windows中则表示 / 比如现在有一个文件在E:\javaProject\src\project中, 如何用绝对路径访问呢?现在建立一个目录:File file=new File(File.separator); //File.separator表示根目录,比如...转载 2020-09-10 09:52:07 · 1221 阅读 · 0 评论