随笔分类 - Java 笔记
Java 学习笔记
摘要:本文介绍Java中遍历Map对象的几种方法,温故知新,夯实基础。
阅读全文
摘要:本文演示如何判断某一字符串是否包含数字、字母、标点符号和中文等。
阅读全文
摘要:本文介绍在windows和Linux环境下,在spring boot项目中如何读取resources目录下的静态文件,例如PDF、Excel和一些图片等
阅读全文
摘要:本文主要梳理代码块、静态代码块和构造代码块被调用时的加载顺序,强化基础知识。
阅读全文
摘要:实现文件和base 64字符串的相互转换。
阅读全文
摘要:使用Java语言基于MD5校验文件内容是否相等。
阅读全文
摘要:本文基于方法 HttpServletRequest.getHeader 和 HttpServletRequest.getRemoteAddr 介绍如何在服务器端获取客户端真实IP地址。 业务背景 服务器端接收客户端请求的时候,一般需要进行签名验证,客户端IP限定等拦截,在进行IP限定的时候就需要获取
阅读全文
摘要:关于单例设计模式,《Java与设计模式之单例模式(上)六种实现方式》介绍了6种不同的单例模式,线程安全,本文介绍该如何保证单例模式最核心的作用——“实现该模式的类有且只有一个实例对象”。 我们知道,Java中有四种方式创建对象:new、克隆、序列化、反射。下面逐一分析哪个方式存在风险。 new,无风
阅读全文
摘要:
Java中,基于jar包jackson实现的对象和JSON互相转换的json工具类。忽略JSON中未知字段,序列化时忽略null字段。
阅读全文

摘要:枚举类可以实现一个或多个接口。与普通类实现接口完全一样,枚举类实现接口时,需要实现该接口所包含的方法。 如果需要每个枚举值在调用同一个方法时呈现不同的行为,则可以让每个枚举值在{...}匿名块中实现自己的业务逻辑。 为了方便测试,示例只定义了A和E两个等级,执行结果如下: 反编译枚举类 在《Java
阅读全文
摘要:需求背景 需求已经确定了几个固定的常量值,并且每个常量值都有相同的行为,但是具体实现细节不同。建议使用枚举抽象方法,优点:结构清晰,便于扩展。 枚举类实现抽象方法 与常规抽象类一样,enum类允许我们为其定义抽象方法,然后使每个枚举实例都实现该方法,以便产生不同的行为方式,注意abstract关键字
阅读全文
摘要:有个是否为零的判断【BigDecimal.ZERO.equals(ratio)】我用了BigDecimal的equals方法,结果,判断失败,因此特地分析一下equals与compareTo的区别。本文参考JAVA_VERSION="1.7.0"。首先看一下BigDecimal的equals方法源码
阅读全文
摘要:介绍合并多个list并删除其中重复元素的方法,推荐使用Map或者TreeSet去重。
阅读全文
摘要:介绍如何去掉BigDecimal类型变量小数点后多余的零。stripTrailingZeros()存在用科学计数法转换数值的小瑕疵。
阅读全文
摘要:循环小数输出的坑 BigDecimal做除法时如果出现除不尽(循环小数)的情况,会抛异常: BigDecimal a = new BigDecimal("1"); System.out.println(a.divide(new BigDecimal(3))); 异常如下: Exception in
阅读全文
摘要:本文介绍Java中,有状态和无状态对象的区别。
阅读全文
摘要:关于java的for循环想必大家非常熟悉,它是java常用的语句之一。for循环是最灵活也是最常用的循环结构,表达式一般如下: for(表达式1;表达式2;表达式4){ 表达式3; } 执行顺序: 1)首次循环,即参数初始化循环 首先,执行表达式1,一般为定义并且初始化一个循环变量; 然后,执行表达
阅读全文