- 博客(55)
- 收藏
- 关注
原创 AIO,BIO,NIO的区别(详解)
在 Java 编程里,BIO(Blocking I/O)、NIO(Non-blocking I/O)和 AIO(Asynchronous I/O)是三种不同的 I/O 模型,它们在阻塞特性、适用场景等方面存在明显差异。
2025-04-03 17:10:56
369
原创 Java中常见的设计模式
设计模式是软件设计中针对常见问题的可复用解决方案,它们提供了代码组织和架构的最佳实践,Java中常见的设计模式可分为三类。下面就给大家介绍一些常用的设计模式和案例。
2025-02-28 18:13:18
471
原创 Git原理+使用(超详细)
当我们写项目代码时,需要不断的更新版本,那么就需要一个东西去管理这些不同版本的文件—版本控制器。目前最主流的版本控制器就是Git。它是一个可以记录工程的每一次改动和版本迭代的管理系统,同时方便多人协同作业。!注意:Git只能跟踪文本文件的改动,比如第几行改了什么,但是图片,视频,二进制文件,并不能直观的观察到改了什么,比如只知道图片从100kb变为120kb。安装Git前言(目前显示的ubuntu平台)你可以通过输入git来看看有没有安装Git,如果安装了就会弹出以下界面。
2025-02-26 20:25:00
1378
原创 采用TypeHandler对隐私数据自动加解密
当我们写项目的时候,要对隐私数据进行加密和解密操作,可以不用每次都手动去写加密解密的代码,可以用Mybatis的TypeHandler来解决。
2025-02-24 22:06:15
380
原创 SSM框架知识总结
深入理解控制反转(IOC)概念控制权的转移// 调用userService和userDao的方法来处理登录逻辑在传统的程序设计中,对象的控制权完全在开发者编写的代码手里。例如,在一个简单的 Java Web 应用程序中,如果要实现用户登录功能,开发者可能会在类中手动创建和UserDao的实例来处理用户登录的业务逻辑。像这样:这种方式下,类不仅要负责自身的业务逻辑(处理用户登录请求),还要负责创建和管理它所依赖的对象(和UserDao。
2025-02-18 17:37:38
612
原创 Java Stream操作
stream可以将集合转换为“流”这种的元素序列,就比如list.stream():是将一个List(列表)转换为一个Strea(流)的操作。
2025-01-12 17:00:24
978
1
原创 Serializable接口
那么,什么是序列化呢,序列化就是将对象的状态转换为字节流的过程。例如,当我们有一个User类,它包含用户的姓名、年龄等信息。如果这个类实现了Serializable接口,我们就可以将User类的对象序列化为字节流并保存起来。最近写项目的时候,发现有一些类要实现Serializable接口,一开始只是粗略的知道实现了Serializable接口,这个类的对象可以被序列化,但我比较轴,想知道这个接口到底有什么作用。前面说了 它是标识接口,当有类实现了这个接口,它会通知JVM,告诉JVM来帮这个类对象序列化。
2025-01-05 17:10:15
273
原创 MySQL4.0
子查询是嵌套在其他sql查询中的查询,它是完整的查询语句,并且可以作为主查询的一部分,用于提供数据或者过滤条件。简单来说,就好像一个大的查询任务,先通过一个小的子查询获取部分信息,然后再利用这个信息来完成整个查询。
2024-12-10 19:12:32
974
1
原创 MySQL3.0
游标是数据库系统中用于处理查询结果集的一种机制。他就像一个指针,允许用户逐行的访问或处理从数据库中检索出来的结果集。在sql中,当执行一个查询语句,数据库就会返回一个结果集。如果没有游标,我们只能一次性处理整个结果集,而游标提供了一种细粒度的控制方式,让我们能够对结果集中的每一行进行单独操作。存储过程是一组为了完成特定功能的SQL语句集。它经过编译后存储在数据库中,存储过程就像是数据库中的一个小型程序,它可以接收输入参数,执行一系列的数据库操作,并且可以返回输出参数或者结果集。
2024-12-09 19:46:21
773
原创 计算机网络知识总结
HTTP:HTTP是超文本传输协议,它主要用于在Web浏览器和Web服务器之间传输超文本。比如HTML也没面。HTTPS:它是HTTP基础上加入了SSL(安全套接层)/TLS(传输层安全协议)加密层。SSL/TLS协议采用对称加密和非对称加盟秘密相结合的方式来确保数据的安全性。对称加密:对称加密是加密和解密使用相同的密钥。也就是发送发和接收方必须事先共享一个密钥,这个密钥用于对数据进行加密和揭秘操作。对称加密的加密和解密速度快,效率高,但是密钥在分发的过程中被窃取,整个加密系统就会被破解。
2024-12-08 21:17:54
2080
3
原创 MySQL2.0
聚簇索引是一种对表中数据的物理存储顺序进行重新排序的索引。表中的行数据会按照索引列的值进行重新排序并储存。简单来说,就是索引的顺序和数据的物理存储顺序是一致的。非聚簇索引是独立于数据物理存储顺序的索引。它存储的是索引列的值和指向数据行的指针。数据库事务是指作为单个逻辑工作单元执行的一系列操作,这些操作要么全部执行成功,要么全部不执行,以确保数据的完整性和一致性。比如在银行转账系统中,a向b转账1000,那么这个操作包含两个步骤:a扣除1000,b增加1000。这两个操作步骤就构成一个事务。
2024-12-04 14:47:48
881
原创 JVM知识总结
是Java类加载器的一种工作机制。当一个类加载器收到类加载请求时,它会首先把这个请求委派给它的父类加载器去完成,只有父类加载器无法完成这个加载请求时,子加载器才会尝试自己去加载。假如我们在自己的java应用程序中创建了一个java.lang.String类,当应用程序类加载器收到加载类请求时,会先委派给扩展类加载器,扩展类加载器又会委派给启动类加载器,因为这个类是java核心类库中的类,启动类加载器能找到并且加载这个类,所以最终这个类是由启动类加载器加载的。
2024-11-30 21:34:33
1127
原创 并发编程3.0
所以,如果 ThreadLocal 没有被外部强引用的情况下,在垃圾回收的时候,key 会被清理掉,而 value 不会被清理掉。这是因为 JVM 在内部维护了一个计数器,当线程第一次获取锁时,计数器加 1,后续在同一个线程中再次获取锁,计数器继续加 1,只有当计数器减为 0 时,锁才会被真正释放。来指定是否为公平锁。在公平锁模式下,线程按照请求锁的先后顺序来获取锁,先请求的线程会先获得锁。不过,公平锁的性能通常比非公平锁要低,因为它需要维护一个等待队列,按照顺序来分配锁会增加一些额外的开销。
2024-11-28 17:43:56
858
原创 并发编程2.0
优点:这种方式更符合面向对象的设计原则,将任务和执行任务的线程分开,可以多个线程共享一个Runnable对象,更方便的对共享资源进行操作。
2024-11-27 20:09:08
746
原创 并发编程1.0
上下文切换指的是在多任务操作系统中,cpu从一个任务切换到另一个任务的过程。在这个过程中,需要保存当前正在运行任务的相关状态信息,并加载下一个将要运行任务的状态信息,使得cpu能够正确的执行下一个任务。程序计数器:它记录了当前程序执行的位置,也就是下一条要执行指令的地址。在切换时,需要保存当前任务执行到的指令位置,以便下次切换回来时能够从正确的地方继续执行。栈信息:包括任务的栈指针和栈中的数据,栈用于存储局部变量,函数调用信息等。
2024-11-27 16:40:11
885
原创 Java集合2.0
HashMap内部维护了一个数组,数组的每个元素称为一个桶,当我们向HashMap中放入一个键值对时,首先会根据key的哈希值计算出这个键值对在数组中的索引位置。当不同的key通过哈希函数计算得到相同的索引位置时,这些键值对会以链表的形式存储在同一个桶中,在java8中,如果链表长度达到一定阈值(默认为8),并且数组长度大于64,这个链表会被转换为红黑树,提高查找效率。
2024-11-27 14:20:55
1313
原创 Java基础3.0
在Java中,可以把一个类的定义放在另一个类的定义内部,这就是内部类,本身是类的一个属性非静态内部类:它有访问外部类成员的权限,要访问内部类,需要先实例化外部类,在创建内部类对象来实现。私有内部类:内部类可以用private或protected修饰,如果不希望内部类被外部类访问,可以使用private修饰。静态内部类:用static关键字修饰,我们不需要创建外部类来访问,可以直接访问静态内部类,但是无法访问外部类成员。
2024-11-26 18:57:20
214
原创 Spring的事务传播行为
事务传播行为,指的就是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何运行。比如事务a方法调用事务b方法,b是继续在调用者a的事务中运行呢?还是为自己另开一个新事物运行?这就是由b的事务传播行为决定的。
2024-11-25 20:35:14
365
原创 @Autowired和@Resource的区别
两者来自不同的父类,@Autowired注解时spring定义的注解,而@Resource是Java定义的注解。
2024-11-25 19:46:58
343
原创 Spring常用注解
@Controller:用于标识一个Java类是一个控制器,控制器负责接收请求,处理请求,并返回响应。 @Service:可以将一个类声明为业务逻辑组件,并将其对象存入Spring容器,在控制器类中,通过注入该组件的实例,即可调用的方法。 @Component:用于标注这是一个受Spring管理的组件。 @Repository:用于标注数据访问组件,即DAO层。 @Bean:方法级别注解,主要用在@Configuration和@Component注解的类里面,@Bean注解的方法会产生一个Bean对
2024-11-25 18:14:29
262
原创 什么是Spring IOC和Spring AOP?
面向切面编程(AOP)就是纵向编程。比如业务a和业务b都需要一个相同的操作 ,传统方法我们可能需要在a,b中都加入相关操作代码,而应用AOP就可以只写一遍代码,a和b可以公用这段代码。像在实际开发中,比如商品查询,促销查询等业务,都需要记录日志和异常处理等操作,AOP可以把所有的公用代码剥离出来,单独放置到某个类中进行集中管理,在运行时,由容器进行动态导入这些公用代码。Srping IOC负责创建对象,管理对象,装配对象,配置对象,并且管理这些对象的整个生命周期。
2024-11-25 16:32:10
411
原创 Spring框架中都用到了哪些设计模式?
工厂模式:BeanFactory就是简单工厂模式的体现,用来创建对象的实例。 单例模式:Bean默认就是单例模式。 代理模式:Spring的AOP功能用到了JDK的动态代理和CGLIB字节码生成技术; 模板模式:用来解决代码重复的问题,比如RestTemplate。 观察者模式:定义对象是一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知被制动更新,比如Spring中listener的实现-ApplicationListener
2024-11-25 16:20:26
91
原创 什么是Spring?
目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此Java开发者可以专注于应用程序的开发。
2024-11-25 16:13:58
304
原创 RabbitMQ的死信队列
死信简单理解就是因为种种原因,无法被消费的消息.有死信自然就有死信队列,消息再一个队列中编程死信之后,它能被重新发送到另一个交换器中,这个交换器就是DLX,绑定DLX的队列,就被称为死信队列,简称DLQ消息变成死信一般由于一下几种情况:1.消息被拒绝2.消息过期3.队列达到最大长度。
2024-11-09 15:51:15
484
原创 重试机制与TTL
在消息传递过程中,可能遇到各种问题,如网络故障,服务不可用,资源不足等,这些问题可能导致消息处理失败,为了解决这些问题,RabbitMQ提供了重试机制,循序消息处理失败后重新发送.
2024-11-09 15:33:17
442
原创 发送方确认
在使用RabbitMQ的时候,可以通过消息持久化来解决因为服务器的异常而导致的消息就是,但是还有一个问题,当消息的生产者将消息发送出去之后,消息到底有没有正确地到达服务器呢?如果消息在到达服务器之前已经丢失,持久化操作也解决不了这个问题,那么该如何解决呢?RabbitMQ为我们提供了两种解决方案:1.通过事务机制实现2.通过发送方确认机制实现。
2024-11-09 15:09:14
473
原创 RabbitMQ高级特性之消息确认
2) requeue: 表⽰拒绝后, 这条消息如何处理. 如果requeue 参数设置为true, 则RabbitMQ会重新将这条消息存⼊队列,以便可以发送给下⼀个订阅的消费者. 如果requeue参数设置为false, 则RabbitMQ会把消息从队列中移除, ⽽不会把它发送给新的消费者。自动确认:当autoAck等于true时,RabbitMQ会自动把发送出去的消息设为确认,然后从内存或磁盘种删除,而不管消费者是否真正消费到了这些消息,自动确认模式适合对于消息可靠性要求不高的场景。
2024-11-08 18:41:34
881
原创 RabbitMQ的应用
P:生产者,也就是要发送信息的程序C:消费者,消息的接收者Queue:消息队列。图中黄色背景部分,类似一个邮箱,可以缓存发送信息;生产者向其中投递信息,消费者从其中取出消息。
2024-11-08 17:56:04
1182
原创 拼三角(贪心)
我们不用暴力枚举所有种情况,我们可以先把数组排序,先选两个最小边相加跟最大的边比较,如果能构成三角形,那么比这两个边大的数相加也能构成三角形了。给出6根棍子,能否在选出3根拼成一个三角形的同时剩下的3根也能组成一个三角形?接下来t行,每行给出6个数字代表棍子长度,棍子长度为正且小于 10 ^ 9。首先在一行中给出一个 t, 1 ≤ t ≤ 10 ^ 3,代表。在一行中输出 “Yes” or “No”
2024-11-05 17:51:19
274
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人