摘要:
GC算法与种类 对于垃圾收集(GC),我们需要考虑三件事情:哪些内存需要回收?如果判断是垃圾对象?垃圾回收算法有哪些? 一、GC的工作区域 1、不是GC的工作区域 (1)程序计数器、虚拟机栈和本地方法栈这三个区域是线程私有的,随线程生而生,随线程灭而灭 (2)栈中的栈帧随着方法的进入和退出而进行入栈 阅读全文
摘要:
常用JVM配置参数 常用JVM配置参数主要有Trace跟踪参数、堆的分配参数、栈的分配参数 一、Trace跟踪参数 跟踪参数用于跟踪监控JVM,对于开发人员来讲用于JVM调优以及故障排查的 1、打印GC的简要信息 -verbose:gc -XX:+PrintGC 这两个配置参数效果是一样的,都是在发 阅读全文
摘要:
Java8 Optional 一句话介绍Optional类:使用JDK8的Optional类防止NullPointerException(空指针异常)问题 一、前言 在我们开发的过程中,碰到的异常中NullPointerException必然是排行第一的,所以在平时编码中,我们会时时的判断null 阅读全文
摘要:
Java8 Function、Consumer、Supplier 有关JDK8新特性之前还有三篇博客: 1,java代码(1) Java8 Lambda 2,java代码(2) Java8 Stream 3,java代码(3) Predicate详解 这一篇我们来了解JDK8已经定义好的几个函数式接 阅读全文
摘要:
Java8函数式接口 之前有关JDK8的Lambda表达式 Java代码(1)--Java8 Lambda 函数式接口可以理解就是为Lambda服务的,它们组合在一起可以让你的代码看去更加简洁 一、概念 1、什么是函数式接口 所谓函数式接口,当然首先是一个接口,然后就是在这个接口里面 只能有一个抽象 阅读全文
摘要:
Predicate详解 遇到Predicate是自己在自定义Mybatis拦截器的时候,在拦截器中我们是通过反射机制获取对象的所有属性,在查看这些属性上是否有我们自定义的UUID注解 如果有该注解,那么就给该属性赋值UUID随机字符串,作为主键保存到数据库,所以前提条件是获取带有UUID注解的属性, 阅读全文
摘要:
CollectionUtils工具类 CollectionUtils工具类是在apache下的,而不是springframework下的CollectionUtils 个人觉得在真实项目中CollectionUtils,可以使你的代码更加简洁和安全 下面我们就一起来探究一下 先从maven官方找到最 阅读全文
摘要:
java代码的优化 参考了一些Java开发手册有关代码的规范,觉得一段好的代码可以从三个维度去分析.1)性能,2)可扩展性,3)可读性 让我们看看别人是怎么去分析,还有值得我们去学习的地方,也是我正在要求自己的条件 一、性能考虑 1、必须注意,不对数据库层做任何操作,如果业务的确需要,那也最后注解说 阅读全文
摘要:
Map中的computeIfAbsent方法 一、案例说明 1、概述 在JAVA8的Map接口中,增加了一个computeIfAbsent,此方法签名如下: public V computeIfAbsent (K key , Function<? super K, ? extends V> mapp 阅读全文
摘要:
guava之Lists、Maps 谷歌提供了guava包里面有很多的工具类,Lists和Maps集合工具,集合操作做了些优化提升 一、概述 1、静态工厂方法 (1)Guava提供了能够推断泛型的静态工厂方法 List<Person> list = Lists.newArrayList(); Map< 阅读全文