- 博客(39)
- 问答 (1)
- 收藏
- 关注
原创 Nacos
Nacos 的特点和优点使其非常适合微服务架构,能够高效地解决服务注册、发现、配置管理、健康检查等关键问题。它不仅提供了灵活的服务管理功能,而且还能与主流的微服务框架、容器平台无缝集成,是一个强大且易于扩展的工具。
2025-02-12 11:03:32
894
原创 java线程池队列
适用于大部分常见的线程池场景,灵活且通用。:当你需要限制队列大小时,它是一个很好的选择。:在对任务处理有非常严格要求的高并发场景中非常有效。这三种队列类型是最常见的,其他类型如和DelayQueue通常在特定的应用场景下使用。
2025-01-22 12:00:00
951
原创 IOC有什么优势
IOC 通过将对象的创建和管理责任从程序代码中分离出来,将对象的创建过程交由外部容器来管理,解耦了类之间的依赖,增强了系统的灵活性、可维护性和可扩展性。特别是在复杂的应用中,IOC 是提高代码质量和开发效率的一个非常重要的设计模式。
2025-01-21 20:32:34
622
原创 依赖倒置原则
依赖倒置原则通过引入抽象,减少了高层模块与低层模块之间的依赖关系,使得系统更加灵活、可扩展和易于测试。在实际开发中,遵循这个原则可以有效提高代码的可维护性和可重用性,特别是在大型系统或复杂业务逻辑中。
2025-01-21 20:30:27
790
原创 Java负载均衡
Java中的负载均衡通常分为客户端负载均衡和服务器端负载均衡。客户端负载均衡常见的实现方法包括Ribbon和等,采用的算法通常包括轮询、最少连接数、加权等。通过合理配置负载均衡策略,能够提高系统的性能、可扩展性、可靠性和容错能力。
2025-01-16 22:34:05
1084
原创 如何调用短信服务接口给自己的网站设置短信验证码功能
为了方便使用阿里云的 API,阿里云提供了 Java SDK。你可以通过 Maven 来引入依赖。设置阿里云的 AccessKey ID 和 AccessKey Secret。
2025-01-16 22:32:51
730
原创 面试题:Java中并发的三大特性
特性描述示例(Java)独立性(Independence)并发任务可以独立运行,互不依赖。多线程并发执行任务,例如使用Thread类。共享资源(Shared Resources)多个线程可能需要访问共享资源,需要确保访问的安全性。使用或来保证线程安全。同步与协调(Synchronization and Coordination)线程之间需要通过同步机制来协调执行,确保顺序和正确性。使用等工具。这些特性是实现高效、可靠的并发程序的基础,开发者需要根据具体的应用场景合理设计并发模型。
2025-01-14 21:45:43
698
原创 面试题:Java中并发并行串行的区别
特性串行 (Serial)并发 (Concurrency)并行 (Parallelism)执行方式一个接一个顺序执行任务交替执行,通过多线程模拟任务真正同时执行,多个线程或 CPU 核心任务依赖性任务之间可能有依赖任务可能是独立的,交替执行任务独立,完全并行执行实现方式单线程,按顺序执行多线程,但任务不是完全同时执行多线程或多进程,任务同时执行适用场景简单任务,顺序执行任务之间相互独立,需要多任务计算密集型任务,充分利用多核性能影响执行慢,受限于单核处理可能提高效率,但受限于单核。
2025-01-14 21:40:31
639
原创 Java定时任务
Timer:适用于简单的定时任务,功能较为基础,但不适合复杂的任务调度。:更强大和灵活的调度工具,适用于多线程环境,线程安全,功能更丰富。Spring@Scheduled:适用于 Spring 环境,简洁易用,支持更多灵活的定时任务配置。对于简单的定时任务,Timer或都是不错的选择。如果你使用 Spring 框架,@Scheduled提供了一个非常方便的方式来实现定时任务。
2025-01-13 22:37:01
798
原创 Java异步任务
Thread:基础的异步执行方式,手动管理线程,适用于简单的异步操作。:线程池框架,自动管理线程,适合执行多个并发任务。:高级异步编程工具,支持任务链式调用、异常处理、合并多个异步任务,适用于复杂的异步操作。是推荐的异步编程方式,因为它提供了强大的功能、流式API和对异步操作的更好控制。
2025-01-13 22:34:18
1019
原创 SpringSecurity高级
默认情况下,Spring Security 提供了很多内置的身份验证机制(如基于表单的登录、LDAP、OAuth2 等),但在某些场景下,可能需要自定义认证逻辑。此时,可以通过实现接口来实现自定义的身份验证逻辑。@Override// 自定义认证逻辑.build();} else {@Override@Autowired@Override需要自定义授权的逻辑,可以实现接口。这个接口负责根据权限判断用户是否有访问某个资源的权限。@Override。
2025-01-09 15:27:50
583
原创 Spring Security
Spring Security 是一个非常强大且灵活的安全框架,旨在保护基于 Spring 的应用程序免受各种安全威胁。无论是基础的认证、授权控制,还是集成现代认证协议(如 OAuth2、JWT),Spring Security 都能提供广泛的支持。它可以帮助开发者轻松实现细粒度的安全控制,并防止常见的网络攻击,如 CSRF、XSS、会话劫持等。
2025-01-09 15:18:19
677
原创 JSON Web Token (JWT)
JWT 是一种非常灵活且强大的标准,用于身份验证和信息交换。它可以用于 API 的认证、Web 应用的用户登录、以及多平台之间的安全通信。在使用 JWT 时,务必关注密钥管理、Token 的过期策略以及 Token 的安全传输。
2025-01-08 19:53:54
822
原创 Token
JWT 的一个常见使用场景是,用户通过登录后,服务器生成一个 JWT Token,客户端将此 Token 保存在本地(如浏览器的 LocalStorage 或 Cookie 中)。每次客户端访问受保护的资源时,都会附带这个 Token,服务器验证后才允许访问。在一些 Web 应用中,登录后服务器会生成一个 Session Token,用来在后续请求中识别用户的会话状态。通常这个 Token 会存储在浏览器的 Cookie 中,并在每次请求时由客户端自动发送到服务器。
2025-01-08 19:47:21
677
原创 深克隆和浅克隆
浅克隆只复制对象本身,不会递归复制引用类型字段,因此它们会共享引用类型的数据。深克隆会递归地复制对象中的所有字段,包括引用类型字段,因此它们互不影响,完全独立。
2025-01-07 21:50:27
923
1
原创 Java克隆Cloneable 接口
Cloneable是一个标记接口,用来表示该类的对象可以被克隆。Object类中的clone()方法用于创建对象的副本,默认执行浅克隆。如果需要深克隆,通常需要覆盖clone()方法,并手动处理引用类型字段的复制。clone()方法在使用时要遵循一定的规则,确保类实现了Cloneable接口,并处理可能的异常。
2025-01-07 21:48:03
1943
原创 redis持久化方案
RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程就是通过子进程,先将数据集写入到临时文件中,写入成功后,再替换之前的文件,用二进制压缩存储,无法直接打开文件阅读。AOF持久化以日志的形式记录服务器的写、删除操作指令,对于查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。缺点:持久化的速度相对于RDB较慢,存储的是一个文本文件,到了后期文件会比较大,传输困难,不过redis提供了文件压缩策略。缺点:无法保证数据的绝对安全,有时候就是1s也会有很大的数据丢失。
2025-01-05 19:44:34
342
原创 认识雪花算法
雪花算法是一个高效、分布式且能够生成有序、唯一 ID 的算法。它非常适合用于需要全局唯一标识符的场景,如分布式系统、数据库主键生成等。虽然有时钟回拨的问题,但通常可以通过一些额外的措施来避免。
2025-01-05 19:42:02
2043
原创 SpringBoot中常用的 Redis 命令实现
通过 RedisTemplate,Spring Boot 提供了对 Redis 常见数据类型(如 String, List, Set, Hash, ZSet)和命令的全面支持。您可以通过配置 Redis 连接信息、注入 RedisTemplate来轻松操作 Redis,进行高效的数据存取。
2025-01-04 20:19:23
565
原创 Redis的缓存雪崩,缓存击穿,缓存穿透
缓存雪崩指的是当缓存中大量的缓存数据在同一时间失效,导致大量的请求直接打到后端数据库,造成数据库压力剧增,甚至可能引起数据库崩溃。
2025-01-04 20:13:23
2038
原创 Redis的常用命令
unlink key非阻塞删除,仅仅将keys从keyspace元数据中删除,真正的删除会在后续异步中执行。move key dbindex【0-15】将当前数据库的key移动到给定的数据库db当中。ttl key查看还有多少秒过期,-1表示永不过期,-2表示已过期。expire key 秒钟 为给定的key设置过期时间。type key查看你的key是什么类型。Keys * 查看当前库所有的key。Del key删除执行的key数据。Redis中文字典网站。redis 命令手册。
2025-01-03 19:18:56
488
原创 Springboot的自动配置原理?
3.Spring容器启动时:加载loc容器时会解析@Import 注解4.@lmpor导入了一个deferredlmportSelector,它会使SpringBoot的自动配置类的顺序在最后,这样方便我们扩展和覆盖5.然后读取所有的/META-INF/spring.factories文件。1.通过@SpringBootConfiguration引入了@EnableAutoConfigurdlion(负责启动自动配置功能)7.最后通过@Condition排除无效的自动配置类。
2025-01-02 20:30:33
435
原创 MyBatis的缓存
级别,通过同一个SqlSessionFactory创建的SqlSession查询结果会被缓存;此后若再执行相同的查询语句,结果就会从缓存中获取。级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就会从缓存中直接获取,不会从数据库重新访问。两次查询之间执行了任意的增删改,会使一级和二级缓存同时失效。Mybatis的一级缓存。Mybatis的二级缓存。
2025-01-02 20:27:23
737
原创 SpringBoot配置文件
4、缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级。阅读性,要比.properties的配置文件好。相同的缩进表示相同的层级,只看空格的数量。通常情况下,默认的贵则:2个空格算1层。3、禁止使用tab缩进,只能使用空格键。属性和值之间,不能挨着,要有1个空格。使用空格,作为层级,[不能使用tab]2、使用缩进表示层级关系。6、字符串可以不用引号标注。
2024-12-30 20:24:36
289
原创 SpringMVC个人笔记
例如,如果请求的 URL 是 /query/123,那么 id 的值就会被设置为 123。类型转换:Spring 会自动进行类型转换,如果请求中的 {id} 是一个数字,而方法参数是 Integer 类型,Spring 会自动将其转换为 Integer。路径中的动态部分:/query/{id} 中的 {id} 是一个动态路径变量,它会根据请求的不同而变化。* 用来接受页面的参数,参数来自不同的表,要一起提交,创造一个哪个表都不属于的VO。* 要区分,is...a的关系和has...a的关系。
2024-12-27 22:12:12
226
原创 SpringAOP
传统的面向对象编程(OOP)中,通常将一个应用的逻辑分成多个类,这些类之间通过继承和接口来实现功能的扩展。然而,某些功能(如日志、性能监控、事务管理等)通常跨越多个类和方法,这些功能被称为“横切关注点”,它们会导致代码重复,难以维护和扩展。通过 AOP,开发者可以将日志、事务、安全等功能从核心业务代码中提取出来,避免重复代码,提高代码的可维护性和模块化。代理是通过 AOP 实现的,通常是指通过某种方式(如动态代理或静态代理)增强目标对象的功能。通知是切面中定义的行为或操作,指在切点处执行的功能。
2024-12-24 16:47:19
1022
原创 SpringIOC
IOC控制反转IOC(Inversion of Control),即控制反转,是面向对象编程中一种设计原则,它通过将对象的控制权从程序中反转出来,让框架或容器来管理对象的创建、生命周期以及它们之间的依赖关系,从而降低类之间的耦合度,提高系统的灵活性和可扩展性。IOC 的核心思想是将对象的控制权从程序内部转移到外部容器或者框架中管理。具体来说,应用程序不再负责自己如何创建和管理对象的实例及其依赖关系,而是交给 IOC 容器来处理。
2024-12-24 16:43:10
728
原创 mysql 中count(*)和count(1)、count(0)谁的效率更高???
在 MySQL 中,COUNT(*)COUNT(1)和COUNT(0)在大多数情况下具有相似的性能表现。这是因为 MySQL 的查询优化器通常能够识别这些不同的计数方式并将其优化为相同的执行计划。COUNT(*): 计算表中的总行数。COUNT(1): 计算表中非空值的数量,但由于1是一个常量且总是非空,实际上它等同于计算总行数。COUNT(0): 同样地,
2024-12-04 15:58:44
1022
原创 JAVA集合
java集合,List、ArrayList、LinkedList、Vector、Lterator 迭代器、HashSet、TreeSet、LinkedHashSet、Queue队列
2024-11-07 16:09:48
807
空空如也
这个数据库的代码都是啥意思啊
2021-11-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人