随笔分类 - java常用知识
摘要:只循环一次构建树形结构,可以直接加入工具类使用,代码如下 public static <T, I> List<T> lambdaGenerateTree(List<T> allTreeNode, Callback<T, I> getIdCallback, Callback<T, I> getPare
阅读全文
摘要:1.全局配置返回的对象排除为空和null的属性import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframe
阅读全文
摘要:1.并发编程:在高内聚低耦合的前提下,用线程操作资源类
阅读全文
摘要:一、什么是SPI SPI ,全称为 Service Provider Interface,是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类。 这一机制为很多框架扩展提供了可能,比如在Dubbo、JDBC中都使用到了SPI
阅读全文
摘要:apache 有个开源库:commons-net,这个开源库中包括了各种基础的网络工具类,我使用了这个开源库中的 FTP 工具。 但碰到一些问题,并不是说是开源库的 bug,可能锅得算在产品头上吧,各种奇怪需求。 问题 当将网络限速成 1KB/S 时,使用 commons-net 开源库中的 FTP
阅读全文
摘要:一,实现 1. 最简单粗暴的方法,遍历循环 1 package list.demo; 2 3 import java.io.Serializable; 4 import java.util.*; 5 import java.util.stream.Collectors; 6 7 /** 8 * 判断
阅读全文
摘要:概述 在JDK1.7以后,新增了一个命令行工具 jcmd。他是一个多功能的工具,可以用它来导出堆、查看Java进程、导出线程信息、执行GC、还可以进行采样分析(jmc 工具的飞行记录器)。 命令格式 1 jcmd <pid | main class> <command ... | PerfCount
阅读全文
摘要:一、JVM 内存模型 1.概述 对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不再需要手动释放内存,不容易出现内存泄露和内存溢出问题。一旦出现内存泄露和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,排查错误将会异常艰难。 2. 运行时数据区域 Java虚拟机在执行Java程序的过程中
阅读全文
摘要:1 public abstract class BaseAction<T> extends ActionSupport implements ModelDriven<T> { 2 3 private T model; 4 @Override 5 public T getModel() { 6 7 r
阅读全文
摘要:前言 这篇文章的目的如下: HashSet是如何保证元素的不重复和无序 HashSet的增删(改查?)原理 CopyOnWriteArraySet支持并发的原理 CopyOnWriteArraySet的增删(改查?)原理 如果不想看分析过程,可直接拉到文章末尾看结论 先来看看 Set接口 1 pub
阅读全文
摘要:这篇文章的目的如下: 了解一下ArrayList和CopyOnWriteArrayList的增删改查实现原理 看看为什么说ArrayList查询快而增删慢? CopyOnWriteArrayList为什么并发安全且性能比Vector好 1. List接口 首先我们来看看List接口,因为ArrayL
阅读全文
摘要:1.在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) ; 操作系统里面是没有所谓的守护线程的概念,只有守护进程一说,但是Java语言机制是构建在JVM的基础之上的,意思是Java平台把操作系统的底层给屏蔽起来,所以它可以在它自己的虚拟的平台里面构造出
阅读全文
摘要:该问题是jdk版本不支持类所导致的 Java版本的主版本号如下: J2SE 8 = 52,J2SE 7 = 51,J2SE 6.0 = 50,J2SE 5.0 = 49,JDK 1.4 = 48,JDK 1.3 = 47,JDK 1.2 = 46,JDK 1.1 = 45 解决方案: 1.修改ide
阅读全文
摘要:使用的是commons-lang3-3.4 中的StringEscapeUtils类 1 package test; 2 3 import java.io.IOException; 4 5 import org.apache.commons.lang3.StringEscapeUtils; 6 7
阅读全文
摘要:一直都知道SimpleDateFormat是线程不安全的,现在还是出现了问题。阿里Java规范中(六.5)有这么一条强制 Instant java.time 包中的 Instant 类代表的是某个时间(有点像 java.util.Date),准确的说是:”是不带时区的即时时间点“,它是精确到纳秒的(
阅读全文
摘要:6.1 JSON 知识背景 6.1.1 JSON 简介 JSON: JavaScript Object Notation(JavaScript 对象表示法) JSON 是存储和交换文本信息的语法。类似 XML。 JSON 比 XML 更小、更快,更易解析。 JSON 使用 Javascript语法来
阅读全文
摘要:强引用: 只要引用存在,垃圾回收器永远不会回收Object obj = new Object();//可直接通过obj取得对应的对象 如obj.equels(new Object());而这样 obj对象对后面new Object的一个强引用,只有当obj这个引用被释放之后,对象才会被释放掉,这也是
阅读全文
摘要:作为一个合格的开发人员,不仅要能写得一手还代码,还有一项很重要的技能就是排查问题。这里提到的排查问题不仅仅是在coding的过程中debug等,还包括的就是线上问题的排查。由于在生产环境中,一般没办法debug(其实有些问题,debug也白扯。。。),所以我们需要借助一些常用命令来查看运行时的具体情
阅读全文
摘要:javap是jdk自带的一个工具,可以对代码反编译,也可以查看java编译器生成的字节码。 一般情况下,很少有人使用javap对class文件进行反编译,因为有很多成熟的反编译工具可以使用,比如jad。但是,javap还可以查看java编译器为我们生成的字节码。通过它,可以对照源代码和字节码,从而了
阅读全文
摘要:jinfo可以输出java进程、core文件或远程debug服务器的配置信息。这些配置信息包括JAVA系统参数及命令行参数,如果进程运行在64位虚拟机上,需要指明-J-d64参数,如:jinfo -J-d64 -sysprops pid 另外,Java7的官方文档指出,这一命令在后续的版本中可能不再
阅读全文