JAVA
面向Web3,春暖花开
这个作者很懒,什么都没留下…
展开
-
Java stream List 转 Map<Object, List>
Java stream List 转 Map<Object, List>JAVA中的Stream操作一定程度上方便了数据的转换,List转Map的场景下,针对downStream的操作一般较少遇到,遇到的时候一时间也不容易想到处理方式,这里记录一下。示例代码:import java.util.ArrayList;import java.util.List;import java.util.Map;import java.util.stream.Collectors;publ原创 2020-10-30 15:05:11 · 1871 阅读 · 0 评论 -
Java 中 for循环中删除List元素的问题
for循环,会导致List中的元素的下标变动 public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); list.add(4); list.add(5); list.add原创 2020-09-23 19:02:23 · 1134 阅读 · 0 评论 -
HashMap中的移位骚操作
基于JDK11我们都知道,在声明一个HashMap的时候能够指定the initial capacity(初始容量),如果我们指定了一个初始容量cap,那么就需要根据cap计算出相应的threshold(下次扩容的大小)Talk is cheep /** * JDK11 HashMap源码,根据capacity返回2的n次幂(n就是返回值,也是数组的大小) * Returns a power of two size for the given target capac.原创 2020-09-03 10:24:20 · 605 阅读 · 0 评论 -
JVM触发老年代GC的情景收集
JVM触发老年代GC的情景收集当老年代可用内存小于新生代对象总大小时,根据是否开启了允许空间担保失败,决定是否进行Full GC相关参数:HandlePromotionFailure如果设置HandlePromotionFailure = true了,那么就会判断老年代的最大可用连续空间是否大于历次晋升到老年代的对象的平均大小,如果大于就尝试进行Minor GC。如果小于或者Handl...原创 2020-02-26 23:53:14 · 761 阅读 · 0 评论 -
@Builder和构造函数同时使用的问题
Lombok @Builder标注的类,如果使用使用构造方法需要注意参数的顺序新建一个使用@Builder注解和构造函数的类@Data@Builderpublic class TestBuilder { private String name; private String desc; public TestBuilder() { } p...原创 2019-08-27 12:39:32 · 2857 阅读 · 1 评论 -
SpringBoot自定义HttpMessageConverter
@RequestBody可以将请求体中的JSON字符串绑定到相应的bean,使用@ResponseBody可以使返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中,而整个数据绑定的过程其实是HttpMessageConverter在起作用。文章目录简介MediaType@RequestBody的简单实用@ResponseBody自定义HttpMessageC...原创 2019-09-06 12:03:30 · 2138 阅读 · 4 评论 -
Spring自定义Filter踩坑
通过继承OncePerRequestFilter,发现无法往Response写入内容OncePerRequestFilter是什么?OncePerRequestFilter是SpringBoot提供的一种能够确保在一次请求只通过一次filter,一般情况下我们要自定义Filter都会继承这个类。What!!! 一次请求还会过滤多次吗?Filter base class that...原创 2019-09-09 11:27:18 · 4577 阅读 · 0 评论 -
commons-collections 之 MultiValuedMap
commons-collections 之 MultiValuedMap作用:可以为一个key,指定一个value集合注:MultiMap具有同样的功能,但是4.1之后推荐使用MultiValuedMap内部实现:通过维护Collection的value值实现,参考AbstractMultiValuedMap比如 Collection valuesView; 实际上就是 Values...原创 2019-09-10 12:06:30 · 3574 阅读 · 0 评论 -
Mysql乐观锁问题
使用乐观锁更新数据库,单元测试的时候,更新结果显示更新了一条数据,但是数据库中的update_time字段没有自动更新,这个字段设置了根据时间戳更新遇到的问题:Mybatis或者JOOQ执行数据库更新,返回的结果为1,但是数据库中用来作为乐观锁的update_time字段没有更新MySQL的行为创建数据表创建一张user表,插入一条数据,update_time字段设置为根据...原创 2019-09-11 10:54:26 · 540 阅读 · 0 评论 -
JAVA重载
package com.generator;public class TestOverload { void sayHello(Human human) { System.out.println("Human"); } void sayHello(Man human) { System.out.println("man"); ...原创 2019-09-12 09:47:55 · 79 阅读 · 0 评论 -
SpringBoot加载共用配置文件
文章目录SpringBoot加载共用配置文件ConfigFileApplicationListener自定义的配置加载类如何为每个服务加上配置具体操作步骤SpringBoot加载共用配置文件问题:多个SpringBoot项目,项目间通过Hessian调用,每个项目要配置一些一样的配置文件,如数据库连接,Redis相关配置,MQ相关配置。如果一旦需要修改,那么每个配置文件都要修改解决办法...原创 2019-09-06 12:01:18 · 1100 阅读 · 0 评论 -
commons-collections 之 Transformer
commons-collections 之 Transformer说明:Transformer是一个接口,它定义了将输入转化为输出的一个流程public interface Transformer<I, O> { /** * Transforms the input object (leaving it unchanged) into some output...原创 2019-09-05 11:51:02 · 947 阅读 · 0 评论 -
有趣的Integer与自动拆箱
有趣的Integer与自动拆箱首先 int与Integer比较 public static void main(String[] args) { Integer a = 1; int a_int = 1; //此时结果为 true,因为与int类型比较时,Integer会自动拆箱 System.out.println(a...原创 2019-09-02 12:07:20 · 135 阅读 · 1 评论 -
Java时间之LocalDateTime
说明ISO-8601日历系统中没有时区信息的日期时间构造出的实例,是一个不可变的,线程安全的日期时间,一般的表现格式为"year-month-day-hour-minute-second",也有一些其它字段,比如day-of-year,day-of-week,week-of-year类的基础结构public final class LocalDateTime { /** ...原创 2019-08-29 08:07:06 · 1320 阅读 · 0 评论 -
commons-collections 之 BidiMap
commons-collections 之 BidiMap作用:双向MAP,参考AbstractDualBidiMap内部通过两个Map实现public abstract class AbstractDualBidiMap<K, V> implements BidiMap<K, V> { /** * Normal delegate map...原创 2019-08-29 08:09:02 · 320 阅读 · 0 评论 -
JAVA并发编程之volatile关键字
JAVA多线程编程之volatile关键字volatile修饰变量,直接存取原始内存的值;禁止指令重排序volatile 百度百科volatile可以保证内存的可见性1.了解下线程内存和主内存的关系如图,每个线程都有自己单独的内存空间,储存着从主内存拷贝进来的副本,如果变量是共享变量(多个线程会用到),那么就会存在线程A和线程B中变量A的值不相同的情况。2.volatile强...原创 2019-08-29 08:18:24 · 166 阅读 · 0 评论 -
Java时间 之 Instant
Instant是一种表示秒和毫秒的类> Instant是Java8中新提供的时间类,出场次数较少,但是小身板里也有一些需要注意的东西官方说明精捡这个类在时间线上模拟一个瞬时点(相当于流动的河水中我们舀出来了一瓢,舀出来之后就是静止的)可用于记录事件的时间戳这个类不可变,并且线程安全类里面主要有什么 /** * The number of seconds ...原创 2019-08-29 08:19:01 · 1578 阅读 · 0 评论 -
JDK8 之 Predicate
作用:Predicate函数式接口的作用就是提供一个test方法,接受一个参数返回一个布尔类型。@FunctionalInterfacepublic interface Predicate<T> { /** * Evaluates this predicate on the given argument. * * @param t the...原创 2019-08-29 08:24:52 · 1557 阅读 · 1 评论 -
JAVA子类继承父类的成员变量以及方法
Dog继承Animalclass Animal{ protected String name; protected String description; protected String say() { return "一只动物"; }}class Dog extends Animal{ private String name;...原创 2019-08-30 15:27:49 · 13761 阅读 · 0 评论 -
commons-collections 之 LazyMap
commons-collections 之 LazyMap作用:只有真正调用的时候才去加载注:关注 public V get(final Object key) 方法内部实现:通过 Transformer<? super K, ? extends V> factory;映射key到value,通过key查找的时候,如果有就直接返回value,如果没有就会调用Transf...原创 2019-09-05 11:51:50 · 791 阅读 · 0 评论 -
JAVA8新特性Stream
Stream 简单介绍java8中引入了一个新的特性Stream(流)官方介绍:A sequence of elements supporting sequential and parallel aggregate operations.(支持顺序和并行聚合操作的一...原创 2019-08-31 08:08:25 · 350 阅读 · 0 评论 -
线程的生命周期
线程的生命周期图新建(new Thread)当创建Thread类的一个实例(对象)时,此线程进入新建状态(未被启动),此时系统还没有为其分配资源例如:Thread t1=new Thread()通过Thread类的方法,可以设置线程的优先级(setPrioriry)、线程名(setName)、线程类型(setDaemon)就绪(runnable)线程已经被启动,正在等...原创 2019-09-01 10:17:47 · 81 阅读 · 0 评论 -
Java内部类的用处
Java内部类的用处同一个类中两种同名方法的调用问题假如继承一个类的同时实现了一个接口,父类和接口中的方法名是一样的,该如何办?如果修改父类或接口中的方法名,这样肯定会引起很多不必要的修改。而且如果继承的是第三方SDK中的方法,那就是无法修改的。具体应用public class HashMap<K,V> extends AbstractMap<K,V>...原创 2019-08-27 12:44:56 · 342 阅读 · 0 评论