摘要: [Java]Map接口有关总结 Map接口 1、HashMap和Hashtable的区别 线程安全方面。HashMap是非线程安全的,Hashtable是线程安全的。因为Hashtable内部方法基本都经过synchronized修饰。但是如果要保证线程安全推荐使用ConcurrentHashMap。 效率方面。因为线程安全问题H 阅读全文
posted @ 2022-09-13 16:46 knqiufan 阅读(75) 评论(0) 推荐(0)
摘要: [Java]HashMap源码解析 HashMap源码解析 构造函数 // 默认构造函数。 public HashMap() { this.loadFactor = DEFAULT_LOAD_FACTOR; // all other fields defaulted } // 包含另一个“Map”的构造函数 public HashMa 阅读全文
posted @ 2022-09-13 15:50 knqiufan 阅读(39) 评论(0) 推荐(0)
摘要: [概念]认证、授权、鉴权和权限控制 认证、授权、鉴权、权限控制 1、认证(identification) 指的是,根据声明者所特有的识别信息,确认声明者的身份。认证方式有很多,举例来说: 用户 + 密码 用户手机:二维码、短信、手势密码等 用户电子邮箱 用户的生物学特征:指纹、语音、虹膜等 身份证 等等 在安全要求高的场合,经常会使用 阅读全文
posted @ 2022-09-08 17:16 knqiufan 阅读(2755) 评论(0) 推荐(1)
摘要: [Java]《On Java》阅读记录之 -- 可变参数重载问题 《On Java》阅读记录之 -- 可变参数重载问题 有下面一段代码: public class OverloadingVarargs2 { static void f(float i , Character... args) { System.out.println("first"); } sta 阅读全文
posted @ 2022-09-03 00:07 knqiufan 阅读(26) 评论(0) 推荐(0)
摘要: [Java]Java类中的各元素初始化顺序 Java类中各元素的初始化顺序 初始化的原则是: 先初始化静态部分,再初始化动态部分;(先静再动) 先初始化父类部分,后初始化子类部分;(先父再子) 先初始化变量,次初始化代码块,再初始化构造器;(先变量,次代码块,再构造器) 所以依照这个规则可以得出总体顺序是: 父类的静态成员变量(第一次加载类时 阅读全文
posted @ 2022-09-02 23:21 knqiufan 阅读(62) 评论(0) 推荐(0)
摘要: [Java]ArrayList源码解析 ArrayList源码解析 1. 核心源码解读 package java.util; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.function.UnaryOpe 阅读全文
posted @ 2022-09-02 16:33 knqiufan 阅读(82) 评论(0) 推荐(0)
摘要: [JVM] JVM的类加载机制 当JVM需要用到某个类的时候,虚拟机会加载它的.class文件。加载了相关的字节码信息之后,会常见对应的Class对象,这个过程就被称为类加载。 需要注意的是:类加载机制只负责`class`文件的加载,至于是否可以执行,则是由执行引擎决定的。 类的加载过程被分为五个阶段:加载、验证、准备、解析、初始化。验证、准备、解析三个阶段为连接步骤。其中加载、验证、准备、初始化这几个阶段的顺序是确定的,但是解析阶段不一定,在某些情况下可以在初始化阶段之后再开始。 阅读全文
posted @ 2022-06-12 22:59 knqiufan 阅读(252) 评论(0) 推荐(0)
摘要: [Java][Spring]spring profile与maven profile多环境管理 spring profile 与 maven profile 多环境管理 spring profile Spring profile是Spring提供的多环境管理方案。 如下图: 每种环境都对应一个yml文件,然后再application.yml中配置需要使用的环境: spring: #环境 dev 阅读全文
posted @ 2022-06-12 00:32 knqiufan 阅读(708) 评论(0) 推荐(0)
摘要: [JVM]逃逸分析 逃逸分析是目前Java虚拟机中比较前沿的优化技术,也是JIT中一个很重要的优化技术。 它其实就是分析一个对象是否会逃逸出方法,分析对象的动态作用域。如果一个对象在一个方法内定义,并且有可能被方法外部引用使用,那认为它逃逸了。 阅读全文
posted @ 2022-06-05 22:55 knqiufan 阅读(177) 评论(0) 推荐(0)
摘要: [Java]HashMap与ConcurrentHashMap的一些总结 HashMap与ConcurrentHashMap的一些总结 HashMap底层数据结构 JDK7:数组+链表 JDK8:数组+链表+红黑树 JDK8中的HashMap什么时候将链表转为红黑树? 当发现链表中的元素大于8之后,判断当前数组长度,如果数组长度小于64并不会马上转为红黑树,而是进行扩容。 阅读全文
posted @ 2022-06-05 00:39 knqiufan 阅读(72) 评论(0) 推荐(0)