- 博客(19)
- 收藏
- 关注
原创 Spring框架深度解析:从IOC容器到AOP
IOC(InversionofControl,控制反转)是Spring框架的核心。它是一种设计思想,将传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。相较于传统的程序设计中,我们通常是在某个对象中主动创建另一个对象,控制权在自己手上。而在IOC中,创建对象的控制权被反转了,转到了Spring框架,当我们需要某个对象时从容器池中进行注入即可。举例说明://数据库连接逻辑//主动创建依赖对象。
2025-01-19 12:42:33
2630
原创 Redis常用命令详解
输出: 1) “cherry” 2) “banana” 3) “apple”输出: (integer) 1 (表示排名第二,因为排名从0开始)位图不是实际的数据类型,而是在字符串类型上定义的一组面向位的操作。输出: 1) “hello” 2) “world” 3) “!输出: 3600 (或小于3600的值,表示剩余秒数)输出: 1) “王五” 2) “25” 3) “北京”输出: (integer) 1 (表示是成员)哈希是字符串字段和字符串值之间的映射。输出: 1) “b” 2) “c”
2025-01-16 11:57:00
688
原创 Redis与MySQL主从复制原理解析
主从复制是一种常用的数据冗余和负载均衡技术。无论是缓存系统Redis还是关系型数据库MySQL,都广泛应用了主从复制技术。MySQL的主从复制(Master-Slave Replication)是一种数据库同步技术,它允许将一个MySQL数据库服务器(称为主服务器或master)的数据复制到一个或多个MySQL数据库服务器(称为从服务器或slave)上。
2025-01-15 15:03:02
1362
原创 Java代理详解:静态代理、动态代理
在Java编程中,代理是一种常用的设计模式,它允许我们控制对其他对象的访问。代理可以在不改变原始类代码的情况下,添加额外的功能或控制逻辑。
2025-01-15 13:47:12
1222
原创 MySQL的并发控制与MVCC机制深度解析
A事务多次读取某些数据(比如查询表的数据总数),B事务插入或者删除了数据,A读取的数据数量发生了变更,像幻觉一样。:当这条数据最新更改的事务id小于最小活跃事务id,就说明该事务id是已经提交的事务id,该条数据就可读。:这条数据的最新记录是在快照建立之后执行的,显然属于不可读,根据回滚指针找到合适的历史版本数据进行返回。保存数据在某个时间点的快照,形成一个版本链,使得事务可以看到在事务开始时数据的一致性视图。:当前读取的事务就是创建快照读的事务,说明就是该事务最近修改了这条数据,因此是可读的;
2024-12-18 15:52:56
1442
原创 深入理解数据库索引:原理、分类与优化
数据库索引是提高数据库性能的关键技术之一。本文将深入探讨索引的各个方面,包括最左匹配原则、索引分类、聚集索引与非聚集索引的区别、索引覆盖、索引下推,以及为什么选择B+树作为索引的结构等内容。
2024-12-17 19:37:15
2791
原创 JDK 8的革命性更新:新特性与技术详解
JDK 8带来的这些新特性和技术,极大地改变了Java编程的方式。Lambda表达式和Stream API使得函数式编程在Java中成为可能,新的日期时间API解决了长期存在的问题,而Optional类则帮助我们更好地处理null值。这些更新不仅提高了开发效率,还促进了更清晰、更简洁的代码风格。
2024-12-12 23:05:30
1309
原创 深入理解JVM垃圾回收:从算法到G1收集器
Java虚拟机(JVM)的垃圾回收(Garbage Collection,GC)是Java平台的一个重要特性。它自动管理内存,释放程序员从手动内存管理的负担中解脱出来。在 Java 中垃圾回收线程是特殊的守护线程。(守护线程是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件)垃圾回收是一种自动内存管理机制。管理内存确保有引用的对象继续保留在内存中即存活对象回收不再被引用的对象(即"垃圾")占用的内存。
2024-12-02 19:02:22
1572
原创 Java虚拟机(JVM)深度解析
Java虚拟机(Java Virtual Machine,简称JVM)是Java程序运行的核心。它是一个抽象的计算机,提供了一个独立于硬件和操作系统的运行环境。JVM的主要任务是加载、验证和执行Java字节码。跨平台性:一次编写,到处运行自动内存管理:垃圾回收机制安全性:字节码验证,沙箱安全模型优化执行:即时编译(JIT)lock(锁定):作用于主内存的变量unlock(解锁):作用于主内存的变量read(读取):作用于主内存的变量,把一个变量的值从主内存传输到线程的工作内存中。
2024-12-01 14:53:55
1332
原创 Java并发工具类深度解析
工具类主要用途特点适用场景线程安全的哈希表高并发、分段锁、读操作无锁需要线程安全的Map,且有高并发读写原子操作的整数无锁、CAS操作、高性能计数器、序列号生成Semaphore控制并发访问的数量可限制访问数量、支持公平性资源池限流、数据库连接池同步屏障可重用、支持执行屏障动作并行迭代算法、分阶段并发任务等待多个线程完成一次性使用、计数器操作主线程等待多个子任务完成线程安全的队列支持阻塞操作、多种实现生产者-消费者模式、任务队列。
2024-11-26 19:35:29
2603
原创 Java并发编程深度解析: 从多线程到CompletableFuture
在Java中,创建和使用多线程是实现并发编程的基础。了解不同的线程创建方式及其特点,对于编写高效的并发程序至关重要。本文从多线程创建层层递进,逐步深入。
2024-11-24 22:45:06
1174
原创 Java同步机制深度解析: synchronized vs ReentrantLock
在Java并发编程中,同步机制是确保线程安全的关键。本文将深入探讨Java中两种主要的同步机制: synchronized关键字和ReentrantLock类。我们将详细分析它们的实现原理、特性、优缺点,以及适用场景。
2024-11-24 15:35:12
1259
原创 Java中的List集合:从ArrayList到CopyOnWriteArrayList
在Java集合框架中,List接口是最常用的接口之一。List表示一个有序的集合,允许重复元素,并提供了基于索引的操作。add(E e): 添加元素到列表末尾: 在指定位置插入元素: 获取指定位置的元素: 移除指定位置的元素: 替换指定位置的元素size(): 返回列表的大小Java提供了多种List实现,每种实现都有其特定的用途和性能特征。
2024-11-23 15:58:37
1313
原创 Java中的Map集合:从HashMap到ConcurrentHashMap
在Java集合框架中,Map接口占据着重要的位置。Map用于存储键值对(key-value pairs),其中每个键都是唯一的。Map接口定义了一系列操作这些键值对的方法,如添加、删除、获取等。: 添加键值对: 根据键获取值: 移除键值对: 检查是否包含某个键: 检查是否包含某个值size(): 返回Map的大小isEmpty(): 检查Map是否为空Java提供了丰富的Map实现,每种实现都有其特定的用途和性能特征。在选择使用哪种Map实现时,需要考虑以下因素:是否需要线程安全。
2024-11-23 13:41:48
1025
原创 Java类加载机制深度解析:从类加载过程到双亲委派模型
Override// 从文件中加载类//使用 defineClass 方法,传入类名 name 和字节码数组 b,定义并返回一个 Class 对象。//从文件中加载类:调用 loadClassFromFile 方法,传入类名 name,返回类的字节码数组 b。// 从文件加载类的字节码// 实现省略...
2024-11-22 13:10:30
1301
原创 Java反射:动态编程的强大工具
Java反射是Java语言的一个强大特性,它允许程序在运行时检查、访问和修改自身的结构和行为。通过反射,我们可以在运行时获取类的信息,创建对象,调用方法,以及访问和修改字段,而无需在编译时知道这些类的具体信息。反射的核心概念是将类本身也视为对象。在Java中,每个类都有一个对应的Class对象,这个对象包含了该类的所有信息。通过这个Class对象,我们可以访问类的结构,包括其构造方法、字段和方法等。
2024-11-22 10:46:46
1001
原创 前后端参数传递问题解析:Content-Type与注解的正确使用
在开发Web应用时,前后端的参数传递是一个常见的问题。本文将详细探讨不同请求方法、Content-Type以及后端注解的正确使用,以确保前后端能够顺利地进行数据交互。
2024-11-19 23:12:17
498
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人