随笔分类 -  java常用知识

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

点击右上角即可分享
微信分享提示