java
java
能动手不哔哔
你发任你发,我选JAVA8
展开
-
函数式开发自定义排序方式进行排序
package com.test;import lombok.Builder;import lombok.Data;import java.util.ArrayList;import java.util.List;import static java.util.stream.Collectors.toList;/** * @author zhangjian */@Data@Builderpublic class Value { private int val1;原创 2021-07-12 14:21:48 · 250 阅读 · 0 评论 -
Java后端返回前端的日期差9小时?
当后端返回Date类型到前端的时候,需要在实体中增加@JsonFormat注释,这个可以帮我们处理格式化,很多人都是用下面这种写法。@JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")这样写大部分时候都不会有问题,但是有可能会出现加了8小时还是少了1小时的问题。这是因为GMT+8代表的是东时区,不代表中国时区,Asia/Shanghai 这个代表的是中国的时区,但在历史中,有国家(包含中国)政策原创 2020-11-26 11:04:43 · 667 阅读 · 0 评论 -
Monodb日期存储差8小时分析与解决,同时引出时间分析
1、时间标准UTC(世界标准时间)其以原子时秒长为基础,在时刻上尽量接近于格林尼治标准时间。GMT(格林尼治平时)位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。CST(北京时间)中国标准时间。在时区划分上,属东八区,比协调世界时早8小时,记为GMT+8。2、java中的时间我们在java中new一个时间对象,看一下是怎么样的时间。通过上图可以看出,这个时间是CST,同时还是Asia/Shanghai地区的。这就奇怪了,程序是怎么知道我们的所在地区呢原创 2020-11-26 10:56:25 · 4377 阅读 · 1 评论 -
java heap space 与 GC overhead limit exceeded 内存溢出相关问题分析处理
前言最近写了个复杂的数据处理程序,测试的时候在小数据量的场景下一点问题都没有,当时当部署到生产环境,发现执行不了,报了 java heap space 和 GC overhead limit exceeded 的错误,由于jvm的内存我们都是给最大的,而且明明内存都没满,怎么就报错了,只能从代码入手看是什么问题。问题介绍java heap space:内存溢出GC overhead limit exceeded:JVM花费了98%的时间进行垃圾回收,而只得到2%可用的内存问题重现我使用的电脑原创 2020-10-17 14:16:19 · 1641 阅读 · 0 评论 -
Java中将方法作为参数进行传递的实现
在Java8中引入了一个函数式接口Consumer的对象,该对象可以把方法作为参数进行传递。实例如下:package com.test;import org.junit.jupiter.api.Test;import java.util.function.Consumer;public class ForkJoinTest { @Test public void test() { //利用函数式接口Consumer的accept方法实现打印,Lambda表达原创 2020-10-14 17:32:36 · 12070 阅读 · 1 评论 -
java中ForkJoin框架的使用
什么是Fork\Join框架从JDK1.7开始,Java提供Fork/Join框架用于并行执行任务。它的思想就是讲一个大任务分割成若干小任务,最终汇总每个小任务的结果得到这个大任务的结果。如下图:如何实现Fork\Joinjava 的ForkJoinTask 抽象类中提供compute方法给我们实现这种思想。java又提供两个抽象类继承ForkJoinTask ,分别是:RecursiveTask有返回值,RecursiveAction无返回值。java7代码实例1、定义一个实体类packag原创 2020-10-12 17:30:18 · 213 阅读 · 0 评论 -
java.util.Calendar 日历类
Calendar.YEAR: 年Calendar.MONDAY: 月Calendar.WEEK_OF_YEAR:周Calendar.DAY_OF_MONTH:天Calendar.HOUR: 时Calendar.MINUTE: 分Calendar.SECOND: 秒calendar =Calendar.getInstance(); //实例一个日历int year = calendar.get(Calendar.YEAR);System.out.原创 2020-09-25 11:13:12 · 113 阅读 · 0 评论 -
Java中使用枚举来Switch
最近写需求的时候,遇到了这个问题,记录一下写法。1、枚举类package com.model.dto;import io.swagger.annotations.ApiModel;import io.swagger.annotations.ApiModelProperty;import lombok.AllArgsConstructor;import lombok.Data;import lombok.Getter;import javax.validation.constraints.原创 2020-09-24 17:14:37 · 545 阅读 · 1 评论 -
springboot编写netty-socketio实例
socket基础:https://blog.csdn.net/zhangjian8641/article/details/108615804上一篇记录了基础的Socket,本篇将结合springboot一起使用socket1、引进Maven<dependency> <groupId>io.socket</groupId> <artifactId>socket.io-client</artifactId> <ver原创 2020-09-16 20:12:56 · 841 阅读 · 1 评论 -
java基础socket实例
什么是SocketSocket(套接字),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。套接字Socket=(IP地址:端口号)Socket是以 TCP/IP 协议进行通讯图片来源:https://www.runoob.com/w3cnote/android-tutorial-socket1.html从上面的模型可以看出,Socket是一个长连接,可以在连接结束前进行多次通讯。实现Socket下面用代码实现一下上面的图。Server服务器package com.exa原创 2020-09-16 20:12:14 · 165 阅读 · 0 评论 -
Springboot整合cache缓存到redis
如果不知道怎么用cache的,可以先点击下面的链接了解:https://blog.csdn.net/zhangjian8641/article/details/108120384本篇主要讲解怎么把cache与redis结合起来,用过cache的都知道,它默认是缓存到本地的。1、引入MAVEN<dependency> <groupId>org.springframework.boot</groupId> <artifactId>原创 2020-08-26 20:22:55 · 236 阅读 · 0 评论 -
Springboot整合Ehcache缓存
EhCache是一个比较成熟的Java缓存框架,最早从hibernate发展而来, 是进程中的缓存系统,它提供了用内存,磁盘文件存储,以及分布式存储方式等多种灵活的cache管理方案,快速简单。网上很多教程都没说完整,本1、引入MAVEN<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache&l.原创 2020-08-20 19:26:20 · 652 阅读 · 0 评论 -
org.apache.commons.collections.MapUtils Map集合工具类
1、MapUtils<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> <version>4.2</version></dependency>包:org.apache.commons.collections4public stati原创 2020-08-20 19:40:05 · 4768 阅读 · 0 评论 -
解决 Java 泛型类型转换时的警告
最近在编写代码的时候,遇到了一个问题,当在Mongodb中查询到Map数据的时候,由于这个Map的结构不固定,没办法用实体来接收封装,就只能用Map来接收,但是没办法返回Map泛型,需要用到强转来处理数据,导致IDEA会出现警告,这对于我这种有强迫症的选手来说,看着贼难受,就想怎么才能消除掉警告。具体代码如下:LinkedHashMap<String, Object> map = (LinkedHashMap<String, Object>)lists.get(0)原创 2020-08-13 15:06:05 · 3916 阅读 · 0 评论 -
Java中处理Mongodb实例
最近项目中用到Mongodb,遇到问题在网上查找发现很多都写的很模糊,本文用来记录我已使用过的Mongodb实例,后续有新的实例会补充进来。首先说明,我使用 spring-data 的 MongoTemplate 来操作 Mongodb 的,操作很简单,就是将MongoTemplate注入到项目中,使用里面的API操作就行了,这个不用多说,真正麻烦的是如何拼接Query这个条件。Query:用来封装所有条件对象Criteria:用来构建条件查看了Criteria的API源码,这个对象有下原创 2020-08-11 20:08:01 · 1006 阅读 · 0 评论 -
Lombok+Builder构建实体类
以前的java实体类,代码中充斥着各种的get,set,构造等方法,这些代码既浪费时间又影响代码的美观,于是Lombok工具就问世了,使用Lombok可以用注解的方式取代这些方法。1、引入Lombok的Maven包<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId></dependency>2、安原创 2020-08-11 17:34:33 · 1283 阅读 · 0 评论 -
java数组String[]与列表List相互转换,解决转换后add,remove报错问题
1、String[] 转ListString[] strs = new String[]{"1", "2", "3"};List<String> strLists = Arrays.asList(strs);2、List转String[]List<String> strLists = new ArrayList<>();strLists.add("1");strLists.add("2");strLists.add("3");String[...原创 2020-08-05 14:28:41 · 576 阅读 · 0 评论 -
JAVA函数式编程实例笔记
1、剔除不在集合内的结果,得到新的集合List<UserDto> list = userDtoList.stream().filter(r -> ids.contains(r.getId())).collect(Collectors.toList());2、剔除不在集合内的结果同时对Id去重,得到新的集合List<UserDto> list = userDtoList.stream().filter(r -> ids.contains(r.getId())原创 2020-08-05 11:17:49 · 158 阅读 · 0 评论 -
AOP实现之自定义开发
一、AOP是什么?AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,...原创 2020-08-02 16:33:52 · 503 阅读 · 0 评论 -
java-string-api
首先,字符串的操作是计算机程序设计中最常见的行为。一、String(不可变对象)提到字符串,就必定会想到String关键字,但String不是java的八大基本类型之一。至于它的特性,只读性,下面我们来看一段代码:String str = &amp;amp;quot;abcdefg&amp;amp;quot;;System.out.println(str);str = &amp;amp;quot;1234567&amp;amp;原创 2018-07-16 17:30:15 · 181 阅读 · 0 评论 -
整合文档谈Java容器
一、面试题引发的故事一个字符串,如何统计这个字符串里的每个字符出现的次数?String str = &amp;amp;amp;amp;amp;quot;2hin2hbyb2bhbhbvas&amp;amp;amp;amp;amp;quot;;String key;Map&amp;amp;amp;amp;amp;amp;lt;String, Integer&amp;amp;amp;amp;amp;amp;gt; map = new H原创 2018-07-03 11:44:22 · 189 阅读 · 0 评论