随笔分类 -  Java

摘要:[Spring]Junit单元测试时取不到本地文件问题Junit单元测试时取不到本地文件问题 问题 当使用Junit进行单元测试时,遇到了以下问题: 2022-10-24 16:13:19.902 [main] ERROR zonetop.gisboot.core.common.utils.FileReaderUtil:94 - ex=java.io. 阅读全文
posted @ 2022-10-25 15:20 knqiufan 阅读(407) 评论(0) 推荐(1)
摘要:[Java]Map接口有关总结Map接口 1、HashMap和Hashtable的区别 线程安全方面。HashMap是非线程安全的,Hashtable是线程安全的。因为Hashtable内部方法基本都经过synchronized修饰。但是如果要保证线程安全推荐使用ConcurrentHashMap。 效率方面。因为线程安全问题H 阅读全文
posted @ 2022-09-13 16:46 knqiufan 阅读(85) 评论(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 阅读(41) 评论(0) 推荐(0)
摘要:[概念]认证、授权、鉴权和权限控制认证、授权、鉴权、权限控制 1、认证(identification) 指的是,根据声明者所特有的识别信息,确认声明者的身份。认证方式有很多,举例来说: 用户 + 密码 用户手机:二维码、短信、手势密码等 用户电子邮箱 用户的生物学特征:指纹、语音、虹膜等 身份证 等等 在安全要求高的场合,经常会使用 阅读全文
posted @ 2022-09-08 17:16 knqiufan 阅读(2911) 评论(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 阅读(29) 评论(0) 推荐(0)
摘要:[Java]Java类中的各元素初始化顺序Java类中各元素的初始化顺序 初始化的原则是: 先初始化静态部分,再初始化动态部分;(先静再动) 先初始化父类部分,后初始化子类部分;(先父再子) 先初始化变量,次初始化代码块,再初始化构造器;(先变量,次代码块,再构造器) 所以依照这个规则可以得出总体顺序是: 父类的静态成员变量(第一次加载类时 阅读全文
posted @ 2022-09-02 23:21 knqiufan 阅读(65) 评论(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 阅读(84) 评论(0) 推荐(0)
摘要:[JVM] JVM的类加载机制当JVM需要用到某个类的时候,虚拟机会加载它的.class文件。加载了相关的字节码信息之后,会常见对应的Class对象,这个过程就被称为类加载。 需要注意的是:类加载机制只负责`class`文件的加载,至于是否可以执行,则是由执行引擎决定的。 类的加载过程被分为五个阶段:加载、验证、准备、解析、初始化。验证、准备、解析三个阶段为连接步骤。其中加载、验证、准备、初始化这几个阶段的顺序是确定的,但是解析阶段不一定,在某些情况下可以在初始化阶段之后再开始。 阅读全文
posted @ 2022-06-12 22:59 knqiufan 阅读(280) 评论(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 阅读(754) 评论(0) 推荐(0)
摘要:[JVM]逃逸分析逃逸分析是目前Java虚拟机中比较前沿的优化技术,也是JIT中一个很重要的优化技术。 它其实就是分析一个对象是否会逃逸出方法,分析对象的动态作用域。如果一个对象在一个方法内定义,并且有可能被方法外部引用使用,那认为它逃逸了。 阅读全文
posted @ 2022-06-05 22:55 knqiufan 阅读(193) 评论(0) 推荐(0)
摘要:[Java]HashMap与ConcurrentHashMap的一些总结HashMap与ConcurrentHashMap的一些总结 HashMap底层数据结构 JDK7:数组+链表 JDK8:数组+链表+红黑树 JDK8中的HashMap什么时候将链表转为红黑树? 当发现链表中的元素大于8之后,判断当前数组长度,如果数组长度小于64并不会马上转为红黑树,而是进行扩容。 阅读全文
posted @ 2022-06-05 00:39 knqiufan 阅读(88) 评论(0) 推荐(0)
摘要:[Java][并发编程]AQS以及其相关同步器的源码解析AQS以及其相关同步器的源码解析 概念 AQS(AbstractQueuedSynchronizer)抽象的队列同步器。是用来构建锁或者其他同步器组件的重量级基础框架以及整个JUC体系的基石。通过内置的 FIFO 队列(先入先出队列)来完成资源获取线程的排队工作,将每条要去抢占资源的线程封装成一个 阅读全文
posted @ 2022-05-31 00:10 knqiufan 阅读(245) 评论(0) 推荐(0)
摘要:[Java] 详细解说final关键字final final 可以修饰变量、方法和类,表示所修饰的内容一旦赋值之后就不会再被改变。例如String类就是一个final类型的类。 1.具体使用场景 1.1 变量 1.1.1 成员变量 每个类中的成员变量可以分为类变量(static修饰的变量)以及实例变量。针对这两种类型的变量赋初值的时机是 阅读全文
posted @ 2022-04-22 02:01 knqiufan 阅读(337) 评论(0) 推荐(0)
摘要:[JVM] CPU缓存一致性协议CPU缓存一致性协议 CPU高速缓存 CPU缓存是位于cpu和内存之间的临时数据交换器,它的容量比内存小的夺但是交换速度要比内存快得多,主要是为了解决cpu运行时的处理速度与内存读写速度不匹配的问题。 cpu在执行指令时需要从内存中获取所需要的指令和数据,但是cpu的处理速度远大于内存的读写速度,所 阅读全文
posted @ 2022-04-22 01:56 knqiufan 阅读(453) 评论(0) 推荐(0)
摘要:[JVM] Java内存分配Java内存分配 程序计数器 程序计数器是一块较小的内存区域,作用可以看做是当前线程执行的字节码的位置指示器。分支、循环、跳转、异常处理和线程恢复等基础功能都需要依赖这个计算器来完成。 虚拟机栈 虚拟机栈也叫栈内存,是在线程创建时创建,它的生命期是跟随线程的生命期,线程结束栈内存也就释放,对于栈来说 阅读全文
posted @ 2022-04-22 01:45 knqiufan 阅读(310) 评论(0) 推荐(0)