自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 SpringBoot自动装配原理

​​启动类上标注了,其中包含​​导入了(import注解)​​通过getAutoConfigurationEntry方法---->加载所有候选的自动配置类​​根据等条件注解,筛选出最终需要加载的配置类​​将这些自动配置类注册到 Spring 容器中,它们会创建一系列默认的 Bean​​如果用户自己定义了某些 Bean(比如自己定义了 DataSource),则不会加载默认的(因为有)​​启动类│▼│ └── 包含 @EnableAutoConfiguration│ ││ ▼│ ││ ▼。

2025-08-26 17:36:10 741

原创 JUC——AQS

​​AQS(AbstractQueuedSynchronizer)是 Java 并发包中用于构建锁和同步器的核心框架,它通过一个 volatile 状态变量和 FIFO 等待队列,提供了线程同步的底层支持,开发者可通过继承 AQS 并实现 tryAcquire / tryRelease 等方法,轻松实现自定义的同步组件。​。

2025-08-24 17:44:09 958

原创 JUC——submit()和execute()

​所属类/接口​Executor接口,实现了这个接口。​​参数​​:接收一个Runnable类型的任务。​​返回值​​:​​void​​,没有返回值。​​异常处理​​:如果任务执行过程中抛出异常,异常会被线程池内部的机制捕获并处理(比如通过线程池的未捕获异常处理器),​​不会直接抛给调用者​​。​​用途​​:适用于你​​不需要获取任务执行结果、也不关心异常是否抛出​​的场景。// 如果这里抛出异常,不会直接反馈给调用者});特性execute()submit()​​所属接口/类​。

2025-08-18 09:26:02 449

原创 黑马点评项目学习笔记

本文为本人自学该项目(实战部分)记录的笔记

2025-08-15 15:30:22 858

原创 java中为什么重写equals方法就一定要重写hashcode?

在 Java 中,​equalshashCode​,这主要是为了​​,尤其是equals和hashCode方法之间的约定。如果不这样做,可能会导致程序出现难以察觉的 bug,尤其是在使用基于哈希的集合类(如HashMapHashSetHashtable等)时。

2025-08-06 09:39:22 372

原创 TCP 三次握手和四次挥手

​​TCP(Transmission Control Protocol,传输控制协议)​​ 是互联网中一种非常重要的、​​面向连接的、可靠的、基于字节流​​ 的传输层通信协议。它为应用层提供了一种​​可靠的、有序的、错误检测与恢复的数据传输服务​​。在使用 TCP 进行通信之前,通信双方必须先建立一个​​可靠的连接​​;通信结束后,也必须​​安全地断开连接​​。这个建立连接的过程就是著名的 ​​“三次握手”​​,而断开连接的过程就是 ​​“四次挥手”​​。

2025-08-05 11:04:45 925

原创 JUC——Executor 框架与线程池

Executor线程池(Thread Pool)是一种非常重要的并发编程工具,它通过预先创建一定数量的线程并重复使用这些线程来执行任务,从而减少线程的频繁创建和销毁带来的性能开销。Java 提供了强大的线程池支持,主要通过包中的Executor框架来实现。

2025-08-04 10:49:44 742

原创 Java内存模型(Java Memory Model,JMM)

​​ 是Java虚拟机(JVM)规范中定义的一组规则和规范,用于描述多线程环境下,Java程序中变量的访问和修改行为,尤其是在并发编程中如何保证内存和。JMM 是 Java 并发编程的基石,它定义了线程之间如何通过内存进行交互,

2025-08-02 19:51:48 1041

原创 java中的synchronized关键字​

是 Java 中用于实现​​的关键字,它提供了一种​​的机制,确保多个线程在访问临界区(Critical Section)时不会发生数据竞争(Data Race),从而保证线程安全。

2025-08-02 19:47:24 600

原创 java中的volatile 关键字

在 Java 中,volatile是一个类型修饰符(keyword),用于修饰变量。它的主要作用是确保变量的​​和​​,从而在多线程环境下提供一定程度的线程安全保障。volatile关键字提供了一种轻量级的同步机制,适用于某些特定的并发场景,但其功能有限,不能替代诸如等更强大的同步工具。

2025-08-01 10:29:04 1021

原创 @PostConstruct 注解

注解用于标记一个方法,该方法需要在依赖注入完成后执行,以完成任何初始化操作。​​。所有支持依赖注入的类都必须支持此注解。即使类没有请求任何资源注入,也必须调用标注了的方法。​​。(翻译自官方解释)

2025-07-22 19:02:34 198

原创 JUC——创建线程的方法

​​原理​:​​​特点​​​​局限性​​:Java 是单继承的,继承 后无法再继承其他类。​​2. 实现 接口​​原理​:​特点:或者:3. 实现 接口(带返回值)​​​​原理​:​​​特点​:​局限性:4. 使用线程池()​​​​原理​:​ 补充:使用​CompletableFuture(异步编程) 大家都说Java有三种创建线程的方式!并发编程中的惊天骗局!

2025-07-21 17:08:56 732

原创 java中的final关键字

在Java中,final是一个关键字,用于修饰变量、方法或类,表示“不可更改”的约束。根据修饰对象的不同,final的作用也不同。

2025-07-20 11:08:01 252

原创 Java中的字符串——String,StringBuilder,StringBuffer

类,内部使用。

2025-07-17 11:31:31 783

原创 事务管理——@Transactional

是 Java 中用于声明式事务管理的关键注解,通常与 Spring 框架一起使用。它允许开发者通过简单的注解方式来管理事务,而无需手动编写事务控制代码(如commit()rollback()等)。

2025-07-15 19:08:39 1666

原创 函数式编程——Lambda表达式与函数式接口

Java 从 Java 8 开始正式引入函数式编程(Functional Programming)支持,核心是通过 ​​ 和 ​​ 实现。

2025-07-15 10:06:35 870

原创 双端队列(Deque)

Deque(全称,双端队列)是 Java 集合框架中的一个重要接口,它扩展了Queue接口,支持在队列的​​。Deque既可以作为​​使用,也可以作为​​使用。

2025-07-14 20:15:02 674

原创 IDEA运行Spring项目报错:java: 警告: 源发行版 17 需要目标发行版 17,java: 无效的目标发行版: 17

运行一个Maven项目时,要求使用jdk1.8,刚开始使用的是17,报错:配置好项目结构中的SDK和语言级别:按照网上的一些教程,修改了maven配置:重新加载所有maven项目后,重新启动项目,又出现:检查发现自动改为了17(其它配置没变):重新导入模块也没用,还是出现上述问题。

2025-07-10 17:31:51 486

转载 Redis安装及配置(Linux)

大多数企业都是基于Linux服务器来部署项目,而且Redis官方也没有提供Windows版本的安装包。此处选择的Linux版本为CentOS 7.Redis的官方网站地址:https://redis.io/

2025-07-10 14:39:58 175

原创 RESTful架构

RESTful(Representational State Transfer,表述性状态转移)是一种基于 ​​ 的软件架构风格,用于设计网络应用接口(API)。它由 Roy Fielding 在 2000 年的博士论文中提出,现已成为 Web API 设计的事实标准,尤其在前后端分离、微服务架构中广泛应用。

2025-07-08 14:34:18 834

原创 Spring中实现依赖注入(DI)的三种方式

特性@Autowired字段注入Setter 注入构造函数注入构造函数 +​​代码简洁性​​⭐⭐⭐⭐(最简洁)⭐⭐⭐⭐⭐(需手动写构造函数)⭐⭐⭐⭐(Lombok 自动生成)​​可读性​​⭐(依赖关系隐藏)⭐⭐(setter 分散)⭐⭐⭐⭐(构造函数明确)⭐⭐⭐⭐(和手动构造函数一样清晰)​​可测试性​​❌(难以测试)⭐⭐(需手动注入)⭐⭐⭐⭐(直接传入 mock)⭐⭐⭐⭐(和手动构造函数一样)​​不可变性(final)​​❌(不支持)❌(不支持)⭐⭐⭐⭐(支持)

2025-07-05 10:10:56 354

原创 Docker常用命令

【代码】Docker常用命令。

2025-07-02 09:17:27 335

原创 Intellij Idea 无法安装插件和JDK问题

本人是Idea官网下载的2024.3.5版本,然后使用激活工具激活的,

2025-06-23 11:28:43 547

原创 Java中的基础数据类型及其包装类

在 Java 中,​​基础数据类型(Primitive Data Types)​​ 是语言内置的基本数据类型,它们不是对象,而是直接存储值的数据类型。Java 的基础数据类型共有 ​​8 种​​,分为 ​​4 类​​:​​整数类型​​、​​浮点类型​​、​​字符类型​​ 和 ​​布尔类型​​。类别数据类型位数(bits)字节(bytes)取值范围默认值​​整数型​​byte81-128 ~ 1270short1620int324。

2025-06-19 10:48:47 812

原创 JVM学习笔记(四)——类加载器

在Java虚拟机(JVM)中,​​负责将类的字节码(.class文件)加载到JVM内存中。

2025-06-13 10:40:03 464

原创 异步编程——CompletableFuture

是 Java 8 引入的一个强大的异步编程工具,位于包中。它是Future接口的实现类,但相比传统的Future提供了更灵活、更强大的异步任务处理能力,支持链式调用、组合多个异步任务、异常处理等功能,极大地简化了 Java 中异步编程的复杂性。

2025-06-12 18:02:14 472

原创 Java中的反射机制

Java 的​​ 是 Java 提供的一种在运行时动态获取类的信息、操作类或对象的能力。通过反射,程序可以在运行期间检查类、接口、字段和方法,而不需要在编译时知道这些类的具体信息。上面的解释,大家背过八股应该都知道,但是如何去理解“运行时动态获取类的信息、操作类或对象”?

2025-06-11 16:35:31 1188

原创 @JsonProperty注解

是 ​​ 库提供的一个注解,主要用于 ​​。它允许开发者自定义 JSON 字段名与 Java 类属性名的对应关系,从而实现更灵活的序列化(对象 → JSON)和反序列化(JSON → 对象)过程。​​:当 Java 属性名与 JSON 字段名不一致时,可以显式指定映射关系。​​:是否包含该字段(required参数)。是否允许null值(结合使用)。​​(结合 @JsonAnySetter和READ_ONLYWRITE_ONLYREAD_WRITEAUTO。

2025-06-11 10:42:11 481

原创 Stream 流的使用

方法类型描述中间过滤符合条件的元素中间将元素映射成另一种形式中间扁平化映射(如将多个List合并为一个)sorted()中间排序distinct()中间去重中间取前n个元素中间跳过前n个元素终止遍历每个元素终止收集结果到集合或其他数据结构count()终止计数终止最小值/最大值终止归约操作(如求和、拼接等)终止匹配判断。

2025-06-10 17:46:24 610

原创 Lombok 中 @Builder 注解

(本人亲身经历。。。使用 Lombok 的 @Builder 时,new User().builder()这样写原来的user还是空的。

2025-06-05 16:02:39 388

原创 JVM学习笔记(三)——垃圾回收

JVM中的垃圾回收GC)机制是一种自动内存管理机制,用于识别并回收不再被程序使用的对象所占用的内存空间,防止内存泄漏,提高内存利用率。

2025-06-02 19:05:21 594

原创 JVM学习笔记(二)

JVM 的内存区域是指 Java 虚拟机在运行时管理内存的逻辑分区,这些区域有不同的作用和生命周期。JVM 会根据对象的类型、生命周期及功能需求,将内存划分为不同区域进行管理,以优化内存使用效率和垃圾回收机制。JDK8 对 JVM 内存结构进行了调整,移除永久代(PermGen)引入了元空间(Metaspace)。

2025-06-01 19:49:23 610

原创 Spring5.2.9-RELEASE源码导入idea打包发布到本地指定位置

会安装到:本地Maven仓库下org/springframework/spring-beans/5.2.9.RELEASE/spring-beans-5.2.9.RELEASE.jar。在gradle目录下的。

2025-05-29 13:59:38 586

原创 Maven依赖jar包手动安装到本地Maven仓库

有时候即使配制了阿里云仓库,在同步的时候还是出现依赖找不到的情况,这时候我们可以手动去maven中央仓库下载jar包,然后导入到本地仓库。

2025-05-29 09:55:47 386

原创 Spring5.2.9Gradle源码打包发布到指定位置

点击即可将模块jar包发布到对应位置和Maven仓库。

2025-05-29 09:38:44 322

原创 JVM学习笔记(一)

事实上,JVM并不是直接与java语言挂钩,而是与字节码文件(.class文件)直接挂钩,只要编译后的字节码文件遵循Java虚拟机规范中定义的格式和指令集,JVM就可以加载并尝试运行这些字节码文件,例如Kotlin语言,其编译后的字节码也能在JVM上运行。在编译模式下,JVM尽可能地对所有代码进行预编译处理,优先采用编译方式执行代码。”,意思是java程序(.java文件)只需要被编译一次,变成字节码文件(.class文件)就可以在任何支持 Java 虚拟机(JVM)的设备上运行,无需重新编译,

2025-05-25 10:55:41 601

原创 Docker进行镜像拉取失败解决办法

解决报错:docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers). See 'docker run --help'.

2025-04-12 11:12:31 375

原创 Con-CDVAE论文精读

Con-CDVAE论文精读

2024-07-15 14:58:04 2175

原创 从循环神经网络(RNN)到长短期记忆网络(LSTM)

大部分模型都只能处理单独的输入,然而,当某些任务需要提取各个输入之间的时序信息时,只对每个输入进行单独的处理是不够的,需要处理的是将各个输入连成的整个序列,基于此RNN诞生了!

2023-11-21 15:56:22 495

原创 生成对抗网络(GAN)详解

生成对抗网络(Generative Adversarial Network, GAN)是由IanGoodfellow于2014年在《Generative Adversarial Nets》中提出的模型。

2023-11-12 17:15:35 6103 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除