java
文章平均质量分 82
java学习。
hac1322
沉淀中。欢迎大佬指点,谢谢啦。(近期开始写csdn)
展开
-
SpringBoot整合xxl-job实现定时任务【入门版】
这个端口号通常用于 Executor 提供的 HTTP API 接口,用于接收 XXL-Job Admin 分配的任务并执行。在 XXL-Job Admin 中配置的执行器的地址和端口号需要与 Executor 的配置保持一致,以确保 Admin 能够正确地与 Executor 通信。这里的空字符串表示 Executor 的地址为空,意味着 Executor 将会使用本机的 IP 地址。的任务管理界面和强大的任务调度功能。:可以设置任务失败的处理策略,例如重试、告警、忽略等,保证任务执行的稳定性和可靠性。原创 2024-05-19 14:23:51 · 1245 阅读 · 0 评论 -
SpringBoot和vue3实现登录退出【用jwt redis 拦截器..】
后端可以记录每个用户发送验证码的时间戳。如果用户在短时间内发送多次验证码请求,后端可以检查最新的请求时间戳与上次请求时间戳的间隔,如果间隔时间太短,就拒绝处理额外的请求。:在前端实现点击发送验证码按钮后,禁用按钮一段时间,防止用户连续点击发送。可以在发送验证码后,将按钮禁用一段时间,以防止用户误操作多次点击发送。功能,并使用拦截器、JWT和Redis缓存来提高系统的安全性和性能。发送验证码,可能不小心点了两下等重复提交操作。像登录页面的路径就不要拦截了,否则都不能登录了。原创 2024-05-18 10:08:42 · 545 阅读 · 0 评论 -
Jedis使用 【附例子】
Jedis是一个Java语言编写的Redis客户端库,为 Java 开发者提供了与 Redis 服务器进行交互的便捷方式。通过 Jedis,我们可以轻松地操作 Redis 的各种功能,并实现缓存、会话管理、计数器、排行榜等业务需求。无论是新手还是有经验的开发者,都可以通过 Jedis 快速上手并利用 Redis 的强大功能当使用 Jedis 时,务必在使用完成后调用close()方法释放资源,以避免资源泄漏。由于 Jedis 实例是非线程安全。原创 2024-05-05 12:41:40 · 873 阅读 · 1 评论 -
java中HttpClient使用【含例子】
但是,如果你在使用Java 11之前的版本,并且想要使用类似的功能,你可能需要引入第三方库的依赖,如Apache HttpClient。通过HttpRequest对象,您可以设置请求的URL、请求方法、请求头、请求体等信息,并构建一个完整的HTTP请求对象,用于发送给服务器。它提供了一种简单且一致的方式来执行HTTP操作,包括同步和异步的请求发送、连接池管理、请求和响应的拦截器等功能。被设计成与Java平台更好地集成,使得开发者能够更轻松地处理HTTP请求和响应,同时减少了对外部库的依赖。原创 2024-05-03 21:17:42 · 933 阅读 · 0 评论 -
SpringBoot中实现发送邮件
当你添加了spring-boot-starter-mail依赖后,Spring Boot会自动配置JavaMailSender实例,并根据application.yml文件中的属性来配置这个实例。你可以直接在需要发送邮件的地方通过@Autowired注解将JavaMailSender实例注入到你的类中,然后使用它来发送邮件。:首先,需要在你的pom.xml文件中添加Spring Boot的邮件发送器依赖。,简化了在Spring Boot应用程序中发送电子邮件的设置过程。Spring Boot的。原创 2024-04-30 19:24:04 · 847 阅读 · 0 评论 -
Nginx反向代理
当 Nginx 的 location /api/ 规则匹配到请求 http://localhost:8011/api/user 后,Nginx 会从请求路径中去掉匹配到的部分,也就是去掉 /api/,然后将剩余的部分 /user 传递给后端服务器,即将/user拼接到proxy_pass。通常情况下,前端项目会被打包成静态文件(如 HTML、CSS、JavaScript、图像等),然后将这些文件部署到 Nginx 服务器上,让 Nginx 直接提供静态文件的访问服务。原创 2024-04-28 19:40:53 · 1565 阅读 · 1 评论 -
Mysql联合索引和最左匹配例子说明
是什么是索引?索引是一种数据结构,用于加速数据库查询。当没有索引时,数据库系统需要执行全表逐行扫描来满足查询需求。这意味着它会逐行读取整个表中的数据,并在内存中进行比较,以找到满足查询条件的数据行。由于数据通常存储在磁盘上,而磁盘的读取速度相对较慢,因此全表扫描会导致大量的磁盘 I/O 操作,这些磁盘 I/O 操作会耗费大量的时间。此外,全表扫描还会导致大量的数据被加载到内存中,这可能会耗尽内存资源,并导致性能下降总结:在没有索引的情况下,MySQL必须从第一行开始逐行扫描整个表来查找相关的行。原创 2024-04-24 21:46:15 · 941 阅读 · 0 评论 -
java中LocalDate类
在Java 8中,引入了新的日期时间API,其中包括LocalDate、LocalTime 和 LocalDateTime 这三个类,用于处理日期和时间,解决了旧的java.util.Date 和 java.util.Calendar 类的一些问题,使日期时间处理更加简单、清晰和灵活。原创 2024-04-22 14:22:20 · 452 阅读 · 0 评论 -
CGLIB动态代理
当我们需要在Java中实现动态代理时,通常会考虑使用JDK原生动态代理或者CGLIB动态代理。我这里说一下CGLIB动态代理,并给出一个例子。原创 2024-04-20 17:35:44 · 536 阅读 · 0 评论 -
java读取文件常见方式
如果需要简单地读取整个文件的内容,可以使用 Files 或 FileUtils 提供的方法。其中,FileUtils 类是该库中的一个工具类,提供了各种用于文件操作的静态方法,例如读取文件、写入文件、复制文件、删除文件等。它包含了读取文件内容的方法,如 readAllLines(Path),可以一次性读取整个文件的内容并返回一个字符串列表。:BufferedReader 是 Java IO 包中的一个类,它提供了缓冲区功能,可以一次读取一行文本。如果文件非常大,加载整个文件内容可能会导致内存溢出的风险。原创 2024-04-18 17:59:31 · 684 阅读 · 1 评论 -
面试:java中常见的锁
在Java中,锁是用于控制多个线程对共享资源的访问的一种机制。保证线程安全:多个线程同时访问共享资源时,锁可以保证线程的有序执行,避免出现竞争条件等线程安全问题。提高性能:通过锁的机制,可以提高多线程并发访问共享资源的效率,充分利用系统资源。合理选择锁的类型可以避免不必要的线程阻塞,从而提高程序性能。原创 2024-04-16 18:16:13 · 1154 阅读 · 0 评论 -
JSON序列化
是将Java对象转换为JSON格式的过程,JSON是目前工作中最常用的序列化方式之一。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人类阅读和编写,也易于机器解析和生成。让我们详细了解如何在Java中进行JSON序列化。如果你需要丰富的功能和灵活性,可以选择Jackson;如果你希望使用简单易用的API和良好的兼容性,可以选择Gson;第一步:在pom.xml中添加以下依赖。第一步:在pom.xml中添加以下依赖。第一步:在pom.xml中添加以下依赖。原创 2024-04-14 12:38:10 · 377 阅读 · 1 评论 -
JDK自带的序列化
在Java中,序列化是指将java对象转换为字节流的过程,以便存储到文件、通过网络传输或在不同的Java虚拟机之间传递。原创 2024-04-14 12:02:34 · 1322 阅读 · 1 评论 -
面试题:HashMap线程不安全 ConcurrentHashMap为什么线程安全
( JDK 1.7 中,ConcurrentHashMap 使用了分段锁的结构,即将整个哈希表分成多个段(Segment),每个段有自己的锁。当一个线程修改了 table 数组时,volatile 关键字可以确保对其他线程可见,即其他线程能够立即看到 table 数组的更新,而不会使用过期的或者缓存的值。ConcurrentHashMap 在 JDK 1.7 中使用了分段锁(Segmentation)的结构,将整个哈希表分成了多个段(Segment),每个段有自己的锁。如果未找到,则在链表末尾插入新节点。原创 2024-04-13 16:52:10 · 1053 阅读 · 2 评论 -
HashMap底层数据结构,扩容
否则,因为我们使用的是 2 的幂扩展,所以每个 bin 中的元素必须保持在相同的索引处,或者在新表中以 2 的幂偏移量移动。当 HashMap 的大小(已存储的键值对数量)超过容量乘以加载因子时,HashMap 会进行扩容,新的容量是原来的两倍,并且会进行重新哈希,将已经存在的元素重新放入新的 bucket 位置。”,即在链表的长度超过阈值8时,将链表转化为红黑树结构,这样大大减少了查找时间。HashMap 在初始化时,有一个默认的初始容量(16),并且有一个加载因子(0.75)。原创 2024-04-13 12:38:12 · 470 阅读 · 1 评论 -
java异常 自定义异常 全局异常统一处理
创建一个类来表示自定义异常。通常,这个类应该继承自Java标准库中的Exception类或者类,具体取决于你想要定义的异常是否是受检查异常(Checked Exception)或非受检查异常(Unchecked Exception)/*** 登录失败异常*///构造函数//构造方法使用super(msg)调用父类RuntimeException的构造方法super(msg);//参数表示异常的详细描述信息。原创 2024-04-12 21:10:02 · 895 阅读 · 1 评论 -
Integer缓存是什么
下面这段代码结果是什么呢?原创 2024-04-09 09:50:56 · 410 阅读 · 0 评论 -
面试常问:Spring Boot自动装配原理
Spring Boot 的自动装配原理是基于 Spring 框架的依赖注入和控制反转(Inversion of Control,IoC)的核心概念。Spring Boot 提供了一种简化配置的方式,使得开发者可以更加便捷地构建和配置应用程序。首先,让我们了解一下 Spring Boot 自动装配的背景:Spring Boot 的自动装配是通过SPI(Service Provider Interface) 的方式实现的。原创 2024-03-30 16:17:22 · 1240 阅读 · 0 评论 -
MyBatis一级、二级缓存
MyBatis 中的缓存是一种用于提高数据库访问性能的机制。它可以暂时保存数据库查询的结果,以便在后续的查询中直接从缓存中获取数据,而不必再次访问数据库。MyBatis 提供了两种级别的缓存:一级缓存和二级缓存。原创 2024-03-30 12:49:10 · 593 阅读 · 2 评论