- 博客(6)
- 资源 (2)
- 收藏
- 关注
原创 什么是Spring的依赖注入?
所 谓依赖注入(Dependency Injection),即组件之间的依赖关系由容器在应用 系统运行期来决定,也就是由容器动态地将某种依赖关系的目标对象实例注入到 应用系统中的各个关联的组件之中。依赖注入之所以更流行是因为它是一种更可取的方式:让容器全权负责依赖查 询,受管组件只需要暴露JavaBean的setter方法或者带参数的构造器或者接口,使容器可以在初始化时组装对象的依赖关系。:构造器依赖注入通过容器触发一个类的构造器来实现的,该类 有一系列参数,每个参数代表一个对其他类的依赖。
2024-02-27 11:45:45 540 1
原创 一文详解JMM(Java 内存模型)
实际上,对于 Java 来说,你可以把 JMM 看作是 Java 定义的并发编程相关的一组规范,除了抽象了线程和主内存之间的关系之外,其还规定了从 Java 源代码到 CPU 可执行指令的这个转化过程要遵守哪些和并发相关的原则和规范,其主要目的是为了简化多线程编程,增强程序可移植性的。另外,为了达到屏障的效果,它也会使处理器写入、读取值之前,将主内存的值写入高速缓存,清空无效队列,从而保障变量的可见性。说白了就是对 volatile 变量的写操作的结果对于发生于其后的任何操作都是可见的。
2022-11-28 15:00:31 298
原创 怒怼面试官|你真的懂Redis吗?
Redis的复制功能是支持多个数据库之间的数据同步。主数据库可以进行读写操作,当主数据库的数据发生变化时会自动将数据同步到从数据库。从数据库一般是只读的,它会接收主数据库同步过来的数据。都说Redis速度快,那Redis为什么这么快呢?来讲讲Redis主从复制的原理?Redis为什么选择单线程呢?Redis怎么实现消息队列?Redis应用场景有哪些?了解过期键的删除策略吗?
2022-09-29 13:06:54 102
原创 怒怼面试官-别再问我JAVA List了
新增和删除元素,LinkedList的速度要优于ArrayList,因为ArrayList在新增和删除元素的时候,可能会扩容和复制数组,而LinkedList的新增和删除操作只需要修改指针即可。当我们往容器添加元素时,不直接往容器添加,而是先将当前容器进行复制,复制出一个新的容器,然后往新的容器添加元素,添加完元素之后,再将原容器引入指向新容器。List以索引来存取元素,有序的,元素是允许重复的,可以插入多个null值,Set不能存放重复元素,无序的,只允许插入一个null。
2022-09-28 16:33:30 80
原创 从JDK源码级别彻底刨析JVM类加载机制
当我们用java命令运行某个类的main函数启动程序时,大家有没有想过是怎样加载的,本文将带着大家一起探讨JVM类的加载机制类加载运行全过程请看下方代码:package com.bethmeta.jvm;public class Math { public static final int initData = 666; public static User user = new User(); public int compute() { //一个方法对应一块栈帧内存区域
2022-05-08 18:56:26 1080
原创 数据结构与算法(二):渐近符号
当我们从时间和空间方面分析任何算法的复杂性时,我们永远不能以确切的数字去定义运行算法所需的时间和空间,因此我们需要用一些标准符号来表达,也被称为渐近符号。当我们在分析任何一个算法时,我们通常会用一个公式来表示执行该算法所需的时间或者计算机编译运行所需的时间,内存访问次数,比较次数,占用内存的临时变量等,该公式通常包含一些不重要的细节来告诉我们算法运行的时间。我们来举一个例子,如果某些算法的...
2019-06-28 17:06:41 944
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人