Java equals 和 == 完全解析
今天朋友突然问到一个问题: 两个对象使用 x.equals(y) 判断结果为 true 时,两个对象的 hashCode 可以不同吗? 在Java编程中,判断两个对象是否相等常常使用 equals() 或是 == ,但是其中的区别和原理可能很多人并不完全清楚。今天就借着上面这个问题来看看 equals() 和 == 的区别和原理。 1. 数据类型与==的含义Java中的数据类型分为基本数据类型和引用数据类型: 基本类型:编程语言中内置的最小粒度的数据类型。它包括四大类八种类型 4 种整数类型:byte、short、int、long 2 种浮点数类型:float、double 1 种字符类型:char 1 种布尔类型:boolean 引用类型:引用也叫句柄,引用类型,是编程语言中定义的在句柄中存放着实际内容所在地址的地址值的一种数据形式 类 接口 数组 对于基本类型来说, == 比较的是它们的值对于引用类型来说, == 比较的是它们在内存中存放的地址(堆内存地址) 例: 1234567891011121314public void tes ...
Spring Boot系列之Log4j2的配置使用
后台程序开发及上线时,一般都会用到Log信息打印及Log日志记录,开发时通过Log信息打印可以快速的定位问题所在,帮助我们快捷开发。程序上线后如遇到Bug或错误,此时则需要日志记录来查找发现问题所在。 Spring Boot 可以集成很多不同的日志系统,其中最常用的Apache Log4j,而Log4j 2是Log4j的升级版本,Log4j 2相对于Log4j 1.x 有了很多显著的改善。所以这篇博客就直接来说说Spring Boot如何集成并配置使用Log4j2。 1. 导入Log4j2的包如果你使用Gradle,则在build.gradle文件中添加以下依赖。示例代码中使用的是Gradle方式。 1234567dependencies { // log4j2 implementation "org.apache.logging.log4j:log4j-api:2.8" implementation "org.apache.logging.log4j:log4j-core:2.8" // 用来支持Logge ...