自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 junit4和junit5的@Test注解的区别

报了个空指针异常:java.lang.NullPointerException: Cannot invoke "org.springframework.amqp.rabbit.core.RabbitTemplate.convertAndSend(String, String, Object)" because "this.rabbitTemplate" is null。如果你想使用 JUnit 5,你需要适配 Spring Boot 2.2+ 版本,并相应地更新你的测试类和依赖。

2023-09-12 12:19:56 228

原创 需要理解的线程知识

线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。Java在语言层面对多线程提供了卓越的支持,它也是一个很好的卖点。欲了解更多详细信息请点击这里。详见这里竞态条件会导致程序在并发情况下出现一些bugs。

2023-09-11 22:21:01 83

原创 单列集合理解

每个人都站在一个标号上,比如我要找4号,我说4号出来,站在4号的人,一看自己的位置标号,就知道叫的是他,他就直接出来了,所以比较快。使用add方法时,涉及到的底层原理: 1.使用空参构造创建ArrayList集合的时候,底层会创建一个长度为0的数组 2.当使用add方法,添加第一个元素的时候,在底层会创建一个新的长度为10的数组 3.当数组存储满了,数组会自动扩容为原先的1.5倍,扩容(创建新的数组) 4.如果一次性添加多个元素,超过了即将扩容的1.5倍,扩容的长度会以实际长度为准。

2023-09-10 20:14:40 95 1

原创 java的反射机制

Java的反射机制是指在运行时,可以获取、检查和操作类、对象、方法、字段等程序的内部信息的能力。反射机制的核心类是`java.lang.Class`,它代表一个Java类的元数据。2. `java.lang.reflect.Method`:代表类的方法,可以用于获取和调用类的方法。3. `java.lang.reflect.Field`:代表类的字段,可以用于获取和设置类的字段值。1. **获取类的信息:** 可以获取类的名称、包信息、父类、接口、方法、字段等信息。

2023-09-08 19:52:33 71 1

原创 fastjson 的介绍

这些类使您能够在 Java 中轻松处理 JSON 数据,将其解析为 Java 对象或构建 JSON 数据以进行序列化。是一款流行的 Java 序列化和反序列化库,它可以用于处理 JSON 数据。提供了强大而灵活的功能,使您能够处理各种不同结构的 JSON 数据。中两个重要的类,用于处理 JSON 数据的解析和构建。实际运用,获取第三方接口返回的值。

2023-09-06 21:38:39 70 1

原创 初步认识java类的java机制

以前曾经看到过一个java的面试题,当时觉得此题很简单,可是自己把代码运行起来,可是结果并不是自己想象的那样。为神马?为神马?这要从java的类加载时机说起。

2023-09-05 22:27:26 37 1

原创 Linux常用指令

在介绍下常用指令之前,我们先来看下Linux里一些基本的目录,这些目录代表什么,方便我们后续创建文件和进行使用,Linux所有的目录都有一个根目录,而这个根目录就是"/"在使用rm删除的时候,会提示是否要删除,感觉比较麻烦,一般通过指令操作,我们肯定是确切的知道我们要删除的是什么。命令的一个选项,它代表"force",表示强制删除,即使文件或目录具有只读或其他特殊权限也会删除,使用。③.将a目录移动c目录,如果c目录不存在,将a目录改为c目录。④.将c目录移动到b目录,b目录存在,则c目录移动到b目录中。

2023-09-03 22:47:57 30

原创 Mybatis查询SQL:索引越界异常

查看实体类,发现使用了@Builder注解但没有加构造方法,加上了空参和有参构造之后就恢复了正常@AllArgsConstructor @NoArgsConstructor,两个都要加,不能少。通过debug看,发现每次有运行到mapper查询的时候就出现了问题,既然sql没有问题,那么一定是传入的参数zhrjAlarmInfo有问题。在Springboot中使用sql进行查询时,报了一个索引越界异常。生成的构造函数需要在创建对象时设置属性,而。查看配置文件,发现写的并没有问题。提供了无参数构造函数。

2023-09-02 22:25:08 474

原创 java中线程间的通信机制

如下面这段代码,同时开启一个main主线程和一个子线程,在主线程中将变量的值改了,如果变量不加这个volatile关键字,那么子线程将会一直卡住进入死循环,如果变量加了这个volatile关键字,子线程就可以立马的感受到其他线程修改了这个变量的值,从而获取到修改后的值,跳出循环。在jvm中,每个线程都会对应一个虚拟机栈中的栈帧,里面存在操作数栈,局部变量表等,每个线程中的内部参数是线程安全的,但是如果存在一个全局变量,会通过多个线程去操作,那么就会出现不可预料的后果,就是所谓的线程安全的问题。

2023-08-29 22:47:19 39 1

原创 自定义注解

注解(Annotation)与面向切面编程(AOP)结合使用,是一种强大的方式,可以在不侵入业务代码的情况下,实现对应用中的横切关注点进行管理和控制。自定义注解是 Java 中一种强大的工具,可以用来在代码中添加元数据信息,以便于在编译时、运行时或者通过反射进行处理。总之,通过注解配合 AOP,你可以在不侵入业务逻辑的情况下,对特定的方法进行增强,比如日志记录、性能监控、事务管理等。当你使用注解时,你实际上在代码中添加了元数据信息,这些信息可以在编译时、运行时或者通过反射机制进行处理。

2023-08-28 22:28:02 26 1

原创 SpringBoot中的全局异常处理器的使用

这样可以将不同类型的异常统一转化为自定义的格式或响应,并进行适当的处理,从而提供更友好的错误信息给客户端或用户。:可以在全局异常处理中定义统一的错误响应格式,包括状态码、错误信息、时间戳等,从而保持响应的一致性。这样,当发生异常时,全局异常处理器会根据异常类型调用相应的处理方法,将自定义的错误响应返回给客户端。,该类将会成为全局异常处理器。:在全局异常处理中,可以捕获敏感错误信息,避免将详细的错误堆栈信息直接暴露给客户端。:通过集中处理异常,可以降低代码的复杂性,提升代码的可维护性,便于管理和修改。

2023-08-27 19:49:34 73 1

原创 SpringBoot中提供的缓存注解

这些是 Spring Boot 中常用的缓存注解,可以根据你的业务需要来选择合适的注解并在方法上使用。注意,要正确使用缓存,你需要配置一个缓存管理器(如 Ehcache、Redis 等)并在应用程序中启用缓存功能。: 该注解用于指定方法的结果应该被缓存。当调用带有该注解的方法时,首先会检查缓存中是否已存在结果,如果存在,则直接返回缓存的结果,否则执行方法并将结果放入缓存。Spring Boot 提供了多个缓存相关的注解,用于简化应用程序中的缓存操作。注解,以启用 Spring Boot 的缓存功能。

2023-08-25 22:20:16 136 1

原创 数据库事务

如果一个事务中的任何一个操作失败,那么整个事务会被回滚,即之前的操作都会被撤销,从而保持数据的一致性。方法,那么在这些方法内部如果发生异常,事务会将之前的操作全部撤销,以保持数据的一致性。一般情况下,使用 Spring Boot 时,声明式事务管理是推荐的方式,因为它简化了事务的处理,并且可以通过少量的注解或配置来实现。这意味着在该类的方法中,如果抛出了运行时异常,事务将被回滚,而如果方法成功完成,事务将被提交。并发事务的执行是相互隔离的,即一个事务的操作对其他事务是不可见的。类是一个服务类,使用了。

2023-08-24 22:29:16 19 1

原创 Redis中的序列化器

在Java中,序列化器主要用于将对象转换为字节流,以便将其存储到文件、数据库或通过网络传输到其他计算机,然后再将字节流反序列化为原始对象。

2023-08-23 21:43:32 388 1

原创 @RequestParam注解的详细介绍

例如,如果请求中的参数是一个字符串,而方法参数是整数类型,Spring 将尝试将字符串转换为整数。然而,Spring MVC 默认情况下会尝试将请求中的数据转换为方法参数所需的类型。为了让 Spring MVC 正确地将请求中的参数映射到方法参数,需要告诉它将这些参数作为请求参数处理。属性来显式指定请求参数的名称,这在方法参数名与请求参数名不匹配时很有用。注解,为 Spring MVC 提供了明确的指示,告诉它将请求中的参数。指定的参数是必需的,如果请求中缺少该参数,将会报错。属性来设置参数是否是必需的。

2023-08-21 19:55:43 2466 1

原创 什么是SpringMVC

在这个示例中,我们创建了一个简单的Spring MVC应用程序,包括一个控制器、一个模型和一个视图。控制器使用注解标记,处理"/welcome"请求并返回一个对象,其中包含了欢迎消息数据和视图名称。视图采用JSP模板进行呈现。

2023-08-20 22:21:31 22 1

原创 什么是ThreadLocal

线程map在下次调用get的时候,会清除key为null的value使用ThreadLocal务必要在本次线程使用结束之前调用remove方法(一般是在切面的after 中进行)

2023-08-18 21:17:44 41

原创 分页查询出错的Bug处理

SQL: SELECT count(0) FROM sky_take_out.employee WHERE name LIKE concat('%', 张, '%')在出现报错的时候我们要分析报错的代码,要耐心的去寻找错误的原因,sql语句查找要一行一行的分析过去,不能着急。号,而是具体的值,所以是有问题的,查看mapper映射文件。出现status:500的报错就是我们的java代码写的有问题,需要去idea中查看具体报错。发现在concat里面的#写错了,写成了$号,在将改为#好之后,能正确查询。

2023-08-16 20:20:14 318 1

原创 Spring的简单介绍

Spring 是一个开源的轻量级框架,用于构建和管理企业级 Java 应用程序。它提供了一种综合性的编程和配置模型,旨在简化应用程序开发,并促进松耦合、可测试性和可维护性。Spring 框架的核心功能包括:1.Spring 使用控制反转来管理应用程序组件之间的依赖关系。传统上,Java 类之间的依赖由类自己来创建和管理,而 Spring 容器会负责创建、管理和注入这些依赖,从而实现了解耦。2.

2023-08-15 20:36:06 21

原创 在idea中使用Git

3.git报错,如果在设置用户和邮箱时报错:error: could not lock config file C:not file之类的,需要在环境变量中删除git的配置,找到Git类的环境变量设置,我的是已经删除好了的,在系统变量中不需要设置git相关变量。5.在设置好之后,我们还需要注册使用一个远程仓库,这里介绍。在本篇文章中将介绍如何安装和在idea中使用git。4.在安装成功之后,可以练习下git的基本指令。git add 将文件的修改加入暂存区。在设置好远程仓库员之后,设置配置文件。

2023-08-14 21:17:48 82

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除