- 博客(83)
- 收藏
- 关注
原创 Java并发容器ConcurrentMap
ConcurrentMap接口是线程安全的Map接口,ConcurrentHashMap是HashMap的线程安全版本。
2024-04-01 13:01:41
945
原创 谈谈MVCC机制
在MySQL中,MVCC(多版本并发控制)是InnoDB存储引擎使用的并发控制机制。它提供对数据的并发访问,并确保多用户环境中数据的一致性和隔离性。
2024-03-31 12:25:03
1038
原创 简单理解session和cookie
在Web开发中,Session和Cookie是两种常用的客户端状态跟踪机制。它们在维护用户会话、个性化设置、安全认证等方面发挥着重要作用。下面来简单了解一下session和cookie。
2024-03-30 13:06:06
530
原创 SpringBoot自动装配
自动装配 是指 Spring Boot框架能够自动将一些常用的组件(例如数据库连接池、事务管理器等)注册到 Spring 容器中,而无需进行显式配置。这样相当于简化操作,提升了我们的工作效率。核心特性:依赖管理、自动配置、条件装配。
2024-03-30 12:04:54
705
原创 Java中的阻塞队列
阻塞队列是一种特殊的队列,它支持两个基本操作:入队(put)和出队(take)。当一个元素被放入阻塞队列时,如果队列已满,进行入队操作的线程将被阻塞,直到队列有空闲位置;同样地,当一个元素被取出时,如果队列已空,进行出队操作的线程也会被阻塞,直到队列中有元素可用。阻塞队列在多线程环境下非常有用,特别是在生产者-消费者问题中。生产者负责生成数据并将其放入队列,而消费者从队列中取出数据进行处理。阻塞队列确保了生产者不会在队列满时丢失数据,同时也保证了消费者不会在队列空时无限等待。
2024-03-29 14:15:27
762
原创 #{}和${}的区别
${}对应的就是字符串直接拼接参数,从而会有SQL注入的风险。#{}对应的就是占位符?和setString()拼接参数,不会有SQL注入的风险。
2024-03-29 13:38:13
561
原创 TCP的可靠性是怎么保证的?
TCP通过三次握手和四次挥手之后进行数据传输,它们是建立在序列号机制和确认应答机制的基础之上,如果保证这个机制的可靠性还需要一些其他辅助,TCP的可靠性保证包括:重传机制,滑动窗口,流量控制,拥塞控制等。
2024-03-28 16:16:45
888
原创 @Transactional 注解使用的注意事项
事务管理在系统开发中是不可缺少的一部分,Spring提供了很好的事务管理机制,主要分为编程式事务和声明式事务两种。
2024-03-28 15:25:19
934
原创 多线程中线程间如何通信
除了使用synchronized来对代码块和方法进行同步外,jdk1.5之后还有一种Lock同步锁的方式进行同步:使用lock.lock()来进行加锁,使用lock.unlock()方法来释放锁,既然可以使用lock来代替synchronized,那么如何进行处理synchronized与wait()、notify()、notifyAll()的线程通信机制呢,在使用lock时使用Condition来进行线程通信。下面来使用两种方式来分别展示一下线程间通信。
2024-03-26 20:41:57
538
原创 wait、sleep、join、yield的区别
在线程的生命周期中,不同状态之间切换时,可以通过调用sleep()、wait()、join()、yield()等方法进行线程状态控制
2024-03-23 15:05:53
1521
原创 什么是内网穿透?
内网穿透技术的出现,为我们带来了一个更加互联的世界。它不仅消除了地理和网络限制,还为远程工作、文件共享、远程访问等应用场景提供了强大支持。然而,在使用内网穿透技术时,我们也需要注意安全性,采取必要的措施来保护数据和系统的完整性。无论如何,内网穿透无疑是连接未来的关键一步。
2024-03-21 18:12:48
496
原创 MySQL中行锁、表锁、悲观锁、乐观锁和共享锁
在操作数据库的时候,可能会由于并发问题而引起的数据的不一致性(数据冲突),如何保证数据并发访问的一致性、有效性,是所有数据库必须解决的一个问题,锁的冲突也是影响数据库并发访问性能的一个重要因素,因此锁对于数据库而言就显得尤为重要。
2024-03-19 13:09:23
1255
1
原创 Java中JDK 动态代理与 CGLIB 动态代理
JDK 动态代理和 CGLIB 动态代理各有其优劣,选择合适的代理方式取决于具体的需求场景。可以根据需要灵活地选择使用 JDK 动态代理或 CGLIB 动态代理,从而实现对目标类的代理控制和增强。无论是 JDK 动态代理还是 CGLIB 动态代理,都为 Java 中的 AOP 编程提供了重要的技术支持,能够帮助开发人员实现面向切面编程,提高代码的复用性和可维护性。
2024-03-18 11:13:29
471
原创 Redis和Mysql的数据一致性问题
在高并发应用场景下,如果是对数据一致性要求高的情况下,要定位好导致数据和缓存不一致的原因。解决高并发场景下数据一致性的方案有两种,分别是延时双删策略和异步更新缓存两种方案。
2024-03-16 15:58:22
1163
1
原创 Spring 中 BeanFactory 和 FactoryBean
Spring 中 BeanFactory 和 FactoryBean的区别
2024-03-16 15:00:26
1118
原创 Hashtable、HashMap、TreeMap的区别
然而,向 TreeMap 添加 null 值是允许的,我们可以看到 Cherry 对应的值被成功添加为 null。在非多线程环境中,或者在读多写少的场景下(可以通过外部同步来解决线程安全问题),HashMap 是一个优选,因为它提供了更好的性能。它是同步的,这意味着它是线程安全的,但这也意味着它通常比非同步的实现(如 HashMap )慢。它是非同步的,这意味着它不是线程安全的,但其性能在单线程环境下通常比 Hashtable 好。在需要根据键进行排序的应用中,如时间线索引、自然排序的目录结构等。
2024-03-15 15:08:26
1072
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人