![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java8
春秋战国程序猿
仓廪实而知礼节,衣食足而知荣辱
展开
-
HashMap扩容测试(基于java8进行测试)
结论:初始容量为16的HashMap,当向这个集合中添加第13个键值对时,会触发扩容,扩容后的容量为32package com.cr949.auto.docs.utils;import java.lang.reflect.Method;import java.util.HashMap;import java.util.Map;/** * @author cr949 * @description HashMap扩容测试 */public class HashMapCapacit.原创 2021-02-20 16:50:06 · 513 阅读 · 1 评论 -
对象深拷贝实践之Zuul对象深拷贝
源码来自zuul-core-1.1.0.jarpackage com.netflix.zuul.util;import java.io.*;/** * Deep copy of an Object. The Object must be Serializable * @author Mikey Cohen * Date: 1/31/12 * Time: 11:54 AM */public class DeepCopy { /** * Returns ...原创 2021-02-20 15:06:54 · 130 阅读 · 0 评论 -
AES加密工具类AesUtils整理
package com.cr949.auto.docs.utils;import lombok.extern.slf4j.Slf4j;import org.springframework.util.Base64Utils;import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto.SecretKey;import javax.crypto.spec.SecretKeySpec;import.原创 2021-01-21 09:43:00 · 3051 阅读 · 0 评论 -
spring boot 1.3.7版本和spring boot 2.2.6版本获取端口的2种方式
spring boot 1.3.7版本,直接从environment中获取端口,这种情况下,不管是否修改默认端口,都可以获取到。package com.cr949.auto.docs.config;import com.cr949.auto.docs.constants.Constants;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;...原创 2020-12-01 15:05:53 · 368 阅读 · 0 评论 -
AOP切面获取参数的一个小技巧
一般来说,我们的参数,都是通过json传递的,那么这个问题就转化成了,从json中获取指定字符串的问题。OK,这个问题就简单了。如下:public static void main(String[] args) { JSONObject jsonObject = JSON.parseObject("{\"timeStamp\":21602756894612,\"status\":0,\"results\":{\"userName\":\"yang20102\",\"userLevel.原创 2020-10-30 11:47:12 · 1718 阅读 · 0 评论 -
spring cloud+mybatis+阿里Druid:如何开启配置multiStatementAllow支持一次执行多条sql
关于如何开启multiStatementAllow,一次执行多条sql,这里结合项目,来说明一下。首先搞清楚,multiStatementAllow配置在哪,其实就是阿里Druid框架中WallConfig.class中的一个属性。源码如下:package com.alibaba.druid.wall;import com.alibaba.druid.util.Utils;import com.alibaba.druid.wall.spi.WallVisitorUtils;...原创 2020-07-24 19:13:07 · 8506 阅读 · 2 评论 -
理论与实践:幂等性的常见实现方案有哪些
1,全局唯一ID2,去重表3,多版本控制4,状态机控制5,数据库唯一索引原创 2020-07-21 11:32:55 · 234 阅读 · 0 评论 -
java8 并行流 parallelStream,在8核的机器上,启动了几个线程
java8 并行流 parallelStream,其实就是java集合接口Collection新增的一个方法。default Stream<E> parallelStream() { return StreamSupport.stream(this.spliterator(), true);}parallelStream的存在,使得处理集合多了一种选择。parallelStream的底层实现,并没有多么高大上的技术,而是我们熟知的多线程框架ForkJoin。..原创 2020-07-13 12:24:24 · 2864 阅读 · 0 评论 -
开发常用小工具类:list集合去重
在平时的项目维护中,我们经常会操作大批量的数据。比如,我需要把某个excel中所有的手机号复制出来,然后去重。对于这样的需求,通过今天分享的这个小工具类,可以轻松搞定。mark一下吧!package com.yangcq.learning.hantang.utils;import lombok.extern.slf4j.Slf4j;import java.util.*;/** * List去重 */@Slf4jpublic class DuplicateRemov.原创 2020-06-02 15:15:40 · 502 阅读 · 0 评论 -
自己动手,使用Spring Initializr从零开始搭建Spring Cloud项目
新建Project打开IDEA开发工具,File -> New -> Project然后一步步往下设置,然后到这一步,选择Spring CloudOK,继续一路往下,点finish,Spring Cloud项目创建完成。设置编译器版本,选择jdk版本等这里我使用的是JDK 1.8,当前主流的版本。具体操作不再赘述,网上一搜一大...原创 2020-04-02 17:06:25 · 2189 阅读 · 0 评论 -
java对象转map:PropertyUtilsBean#describe方法对象转Map,为什么多余一个class
通常,我们项目都有一个这样的工具类:import org.apache.commons.beanutils.PropertyUtils;import java.util.Map;public class BeanUtilsTest { public static void main(String[] args) { ProductDto produ...原创 2020-03-10 17:03:42 · 1300 阅读 · 0 评论 -
一看就懂系列:java8流的扁平化/什么是扁平化流(图解)
《java8实战》这本书上,关于刘的扁平化的讲解,个人觉得有点费解。我也是读完,回味了好多遍才理解。其实我觉得作者的图解不太直观,接下来,我会重新画一张图,方便大家理解。什么是扁平化流,书中是这样描述的:一言以蔽之,flatMap方法让你把一个流中的每个值都换成另一个流,然后把所有的流连接起来成为一个流。个人理解:扁平化流的关键字眼,就是扁平二字,什么是扁平呢?大家应该听说过扁平...原创 2020-01-20 18:17:59 · 2922 阅读 · 5 评论 -
根据经纬度计算两点之间的直线距离(算法)
Talk is cheap, show me the code.import lombok.extern.slf4j.Slf4j;/** * 根据经纬度,计算2点之间的直线距离。 * 距离较近的场景,可以使用,误差较小。 * 距离较远的场景,要考虑具体的业务场景。 * 因为这个只是计算直线距离,和实际的路线不同,所以要结合场景,看是否适用 */@Slf4jpub...原创 2019-12-26 17:09:51 · 3976 阅读 · 0 评论 -
如何在lambda内部修改外部局部变量的值/如何用lambda重构for循环计数
Talk is cheap, show me your code!看一段代码:/** * 在lambda表达式内部,修改lambda表达式外部的局部变量的值 */private synchronized void updateLocalVariable() { List<String> list = new ArrayList<>(); ...原创 2019-11-28 09:32:20 · 11337 阅读 · 2 评论