![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
实习总结
L.2626
仅记录我的学习,注明出处按需转载
展开
-
从git上拉下来的代码不能通过编译,还是以文件的形式加载
打开你的maven侧边栏,查看想要添加进来的项目有没有加载进来,如果没有的话,点击绿色的小加号,选择你想要添加的项目,吧maven添加进来就可以了。原因:可能是maven没有加载上来。原创 2024-06-24 09:24:59 · 113 阅读 · 0 评论 -
将字符数组转为字符串
请注意,String.join()方法的第一个参数是要用作分隔符的字符串,第二个参数是要连接的字符序列。这些方法可以根据实际需求选择使用。从性能角度考虑,使用StringBuilder或StringBuffer的方法更加高效,特别是在处理大量字符的情况下。在这个示例中,我们将字符数组转为字符串,然后使用String.join()方法将其连接成一个字符串,并用逗号和空格分隔每个字符。5. 在这种情况下,可以使用Java 8中新增的String.join()方法来将字符数组转为字符串。原创 2024-06-11 08:02:12 · 358 阅读 · 0 评论 -
dto和vo的区别
通过以上示例,可以看到DTO主要用于数据传递和业务逻辑层之间的数据传递,而VO主要用于展示层的数据封装和展示,有助于分离不同层的责任和提高代码的可维护性。在下单页面展示订单信息时,需要展示订单的基本信息和所有商品的信息。VO(View Object)用于封装展示层(如前端页面)的数据,主要用于展示层中组织数据,满足页面展示需求。- DTO用于数据传输和业务逻辑层之间的数据传递,VO用于展示层的数据封装和展示。- DTO更专注于数据传输和业务逻辑,VO更专注于展示层的数据组织和展示。原创 2024-06-04 10:40:14 · 283 阅读 · 0 评论 -
在两张表查询出两个list,一个list的三个值,另一个list的两个值,用test_id关联,组装在一起
在上面的代码中,我们首先遍历TestA对象列表,并根据test_id属性在TestB对象列表中找到对应的对象。然后根据两个列表中的数据构造CombinedTest对象,并将其收集到一个新的List中。过滤掉合并后为null的对象。可以通过使用Java中的Stream API和Lambda表达式,以及自定义一个包含所需值的新实体类,来实现这一功能。在两张表查询出两个list,一个list的三个值,另一个list的两个值,用test_id关联,组装在一起。原创 2024-05-31 13:22:52 · 290 阅读 · 0 评论 -
Objects.nonNull()
在上面的示例中,我们定义了两个字符串变量`str1`和`str2`,其中`str1`不为null,而`str2`是一个null引用。接着我们分别使用`Objects.nonNull()`方法来检查这两个字符串是否为null。`Objects.nonNull()`方法在检查非null对象时返回对象本身,而在检查null对象时会抛出`NullPointerException`异常。`Objects.nonNull()`方法是`Objects`工具类中的一个静态方法,用于检查给定的对象是否为null。原创 2024-05-31 10:25:43 · 418 阅读 · 0 评论 -
OOM简介
1. **常见的 OOM 类型**:在 Java 中,常见的 OOM 类型包括:Java heap space(堆内存溢出)、PermGen space(永久代溢出)、Metaspace(元空间溢出)、Direct memory(直接内存溢出)等。每种 OOM 类型都有其特定的原因和解决方法。2. **可能导致 OOM 的原因**:导致 OOM 的原因通常包括以下几个方面:内存泄漏(即对象无法被回收导致内存占用过多)、对象创建过多(频繁创建大量对象导致内存不足)、内存分配不足、持有过多对象的引用等。原创 2024-05-29 14:09:39 · 260 阅读 · 2 评论 -
endsWith()` 方法
endsWith()` 方法是字符串类(String)的一个方法,用于检查字符串是否以指定的后缀结尾。在上面的代码中,我们调用了 `endsWith()` 方法来检查文件名是否以".paper"结尾。这样可以根据文件名的后缀对文件进行不同的处理逻辑。Java 中的 `endsWith()` 方法用于检查字符串是否以指定的后缀结尾,返回一个布尔值表示结果。在这个例子中,我们使用 `endsWith("")` 检查文件名是否以 "" 结尾。假设我们需要在处理文件时,只对后缀为".pa"的文件进行特定处理。原创 2024-05-28 20:26:44 · 206 阅读 · 0 评论 -
Objects.requireNonNull()
如果某个方法需要一个非 null 的参数,我们可以使用 Objects.requireNonNull() 方法来检查这个参数是否为 null。在上面的代码中,我们调用了 Objects.requireNonNull() 方法来确保 file.getOriginalFilename() 方法返回的文件名不为 null。Java 中的 Objects.requireNonNull() 方法用于检查给定的对象是否为 null,并在必要时抛出 NullPointerException 异常。原创 2024-05-28 20:20:27 · 617 阅读 · 0 评论 -
在Spring Boot中添加主键类型为Long的主键
根据实际需要,还可以选择其他主键生成策略,如GenerationType.AUTO、GenerationType.SEQUENCE等。2. 在上述示例中,使用@GeneratedValue注解指定主键的生成策略为GenerationType.IDENTITY,表示主键值由数据库自动生成。4. 在进行数据访问操作时,可以通过主键字段id来进行数据的查询、更新和删除等操作。3. 在数据库表中,对应的主键字段会被自动创建为Long类型的主键。在Spring Boot中添加主键类型为Long的主键。原创 2024-05-27 10:08:28 · 346 阅读 · 0 评论 -
case的值设置为Enum.QUESTION.getCode()报错:常量表达式、模式或 null 为必需项
在Java中,case的值必须是编译时可确定的常量表达式,而不是在运行时才能确定的值。如果`QuestionBankTypeEnum.OBJECTIVE_QUESTION.getTypeCode()` 方法的返回值无法在编译时确定,你可以考虑使用if-else语句来实现相同的逻辑。通过使用if-else语句,你可以根据方法返回值的实际情况处理不同的逻辑分支,并避免在switch语句中使用无法在编译时确定的值所导致的错误。原创 2024-05-24 08:58:42 · 222 阅读 · 0 评论 -
@LockMethod
在上面的示例中,通过`@LockMethod`注解标记需要同步访问的方法,并根据方法参数的值进行锁定。切面类`LockMethodAspect`中使用`ConcurrentHashMap`保存不同参数组合对应的锁,并通过`ReentrantLock`实现锁定。如果需要限制同一时间只允许一个线程访问带有多个参数的方法,并且需要根据多个参数进行锁定,则可以自定义一个注解`@LockMethod`,并通过AOP来实现方法级别的同步访问。原创 2024-05-23 10:10:48 · 275 阅读 · 0 评论 -
springboot中处理多线程的注解在同一时间只允许一个进程访问
在Spring Boot中,可以通过`@Async`注解实现多线程处理,但是默认情况下多个线程是并发执行的,不会限制同一时间只允许一个线程访问。在上面的示例中,通过`@Synchronized`注解标记需要同步访问的方法,切面类`SynchronizedAspect`中使用`Semaphore`实现方法级别的同步,限制同一时间只允许一个线程访问该方法。`@Synchronized`是一个自定义的注解,在Spring Boot中可以通过自定义切面来实现同步访问。原创 2024-05-23 10:00:37 · 271 阅读 · 1 评论 -
ResourceUtils.getFile()方法
在上述示例中,我们使用ResourceUtils.getFile("classpath:example.txt")方法加载了类路径下的example.txt资源文件,并获取了文件的绝对路径。ResourceUtils.getFile()方法是Spring Framework中的一个工具类方法,用于获取类路径下的资源文件。它接受一个文件路径或者URL作为参数,然后返回对应的资源文件对象。这个方法通常用于加载类路径下的配置文件、模板文件等资源。ResourceUtils.getFile()方法。原创 2024-05-23 07:34:41 · 255 阅读 · 0 评论 -
FileUtils.deleteQuietly
在上述修改后的代码中,我们在下载文件到临时目录后添加了一个删除原始文件的步骤,并使用FileUtils.deleteQuietly方法来删除原始文件。这样就可以确保下载完文件后删除原始文件,并且不会抛出异常。想在下载完文件后删除原始文件,可以使用Apache Commons IO库中的FileUtils.deleteQuietly方法。这个方法可以安静地删除文件或目录,即使文件不存在或者无法删除也不会抛出异常。原创 2024-05-22 15:18:14 · 313 阅读 · 0 评论 -
FileUtils.writeStringToFile
总结:FileUtils.writeStringToFile方法可以方便地将字符串写入文件,提供了灵活的参数设置,使得文件写入操作更加简单和便捷。通过该方法,您可以轻松实现文件写入功能,而不必手动处理文件流的打开、写入和关闭等操作,提高编程效率。Apache Commons IO库中的FileUtils类提供了一系列用于操作文件的实用方法,其中包括了writeStringToFile方法用于将字符串写入文件。3. encoding:要使用的字符编码格式,一般为UTF-8。原创 2024-05-22 13:15:19 · 292 阅读 · 0 评论 -
@MapKey is required
错误信息 "@MapKey is required" 表明在使用Map类型注入时,必须使用@MapKey注解来标识Map的key。在Spring中,当将Map类型的属性注入到bean中时,需要使用@MapKey注解来明确指定Map的key。如果只有value而没有key,就会出现"@MapKey is required"的错误。1. 在注入Map类型的属性时,确保使用了@MapKey注解,并在注解中指定Map的key。在这个示例中,@MapKey注解标明了Map的key是"myKey"。原创 2024-05-22 10:51:01 · 3044 阅读 · 0 评论 -
springboot再接受参数时怎么标注可以不传的一个字段
在 Spring Boot 中,如果您希望一个字段在接收请求参数时可以不传,可以使用 `@RequestParam` 注解中的 `required` 属性来标注这个字段是可选的。同样地,您可以使用 `required = false` 来标注一个字段为可选字段。要标注一个字段为可选字段,可以将 `@RequestParam` 注解的 `required` 属性设置为 `false`。在上面的例子中,`optionalParam` 字段被标注为可选字段,如果请求中没有传递该参数,该字段将会为 null。原创 2024-05-21 13:20:20 · 281 阅读 · 0 评论 -
实现 Zip 压缩算法
在上述示例中,`compress` 方法接收源文件的路径以及要创建的 ZIP 文件的路径作为参数,并使用 ZipOutputStream 创建一个新的 ZIP 文件。然后,通过 FileInputStream 读取源文件的内容,并通过 ZipEntry 和 ZipOutputStream 将数据写入到 ZIP 文件中。要实现 Zip 压缩算法,您可以使用 Java 中提供的 ZipOutputStream 类。该类可以将数据压缩为 ZIP 格式。原创 2024-05-14 16:06:07 · 188 阅读 · 0 评论 -
Java后台利用组合模式实现浏览器一键导出下载zip压缩包
在上述示例中,通过组合文件和文件夹的方式,可以实现将多个文件和文件夹组合成一个整体,然后一键导出下载压缩包的功能。通过使用组合模式,可以很方便地管理文件和文件夹的关系,同时也保证了代码的可扩展性和灵活性。组合模式是一种结构型设计模式,其主要思想是将对象组合成树形结构以表示“部分-整体”的层次结构。在这种模式中,单个对象和组合对象具有相同的接口,使得客户端可以以统一的方式处理对象。在你的场景中,可以借助组合模式实现浏览器一键导出下载 zip 压缩包的功能。原创 2024-05-14 15:49:27 · 137 阅读 · 0 评论 -
IPage
在以上示例中,首先创建了一个`Page`对象来指定当前页码和每页显示条数,然后调用`selectUserPage()`方法进行分页查询,返回一个`IPage`对象。通过`getTotal()`、`getCurrent()`、`getSize()`和`getRecords()`等方法可以获取分页查询的相关信息和结果列表。通常情况下,当进行分页查询时,查询方法会返回一个`IPage`对象,该对象包含了查询结果列表及与分页相关的信息,例如当前页码、每页显示条数、总记录数等。原创 2024-05-13 15:13:26 · 389 阅读 · 0 评论 -
Collections.shuffle()
Java中的Collections类提供了shuffle()方法,用于对List集合中的元素进行随机排序。该方法接受一个List参数,并会随机打乱该List中的元素顺序。Java中的Collections类提供了shuffle()方法,用于对List集合中的元素进行随机排序。可以看到,在调用Collections.shuffle()方法后,List集合中的元素被随机打乱了顺序。可以看到,在调用Collections.shuffle()方法后,List集合中的元素被随机打乱了顺序。原创 2024-05-09 13:29:01 · 370 阅读 · 0 评论 -
MybatisPlus忽略实体字段(不映射数据库中字段)
在MybatisPlus中忽视实体字段(不映射数据库中字段)用的@Transient。原创 2024-05-08 14:26:20 · 1337 阅读 · 0 评论 -
实体类中不在数据库中的字段怎么标注
在上面的示例中,`temporaryData` 字段使用了 `@Transient` 注解,表示该字段不会映射到数据库中,只是在实体对象中临时存在的数据。需要注意的是,如果使用其他持久化框架,可能会有不同的方式来标注不需要映射到数据库的字段,具体的注解可能会有所不同,需要根据具体的框架来选择合适的方式来标注。`@Transient` 注解通常用在 JPA 或 Hibernate 中,告诉持久化框架忽略该字段,不将其映射到数据库表中。// 省略 getter 和 setter 方法。原创 2024-05-06 16:16:16 · 669 阅读 · 1 评论 -
File.separator()
在不同操作系统中,文件分隔符可能不同,例如在 Windows 系统中使用反斜杠 `\` 作为文件分隔符,在 Unix/Linux 系统中使用斜杠 `/` 作为文件分隔符。为了编写可移植性更好的 Java 代码,建议在拼接文件路径时使用 `File.separator`,这样就可以保证代码在不同操作系统上都能正确使用相应的文件分隔符。在上面的示例中,我们获取了当前工作目录,并使用 `File.separator` 来拼接文件路径,确保在不同操作系统上都能正确拼接文件路径。原创 2024-04-24 17:49:10 · 403 阅读 · 0 评论 -
substring(int start, int end)
该方法接受两个参数:`start` 和 `end`,分别表示要提取的子字符串的起始索引和结束索引(不包括结束索引处的字符)。我们使用 `substring` 方法分别提取了两个子字符串:`subString1` 从索引7开始直到字符串的末尾,`subString2` 从索引7开始直到索引12(不包括12)结束。请注意,`substring` 方法的第一个参数 `start` 表示子字符串的起始索引,而第二个参数 `end` 表示子字符串的结束索引(不包括结束索引处的字符)。原创 2024-04-24 14:05:35 · 195 阅读 · 0 评论 -
toCamelCase()
在上面的示例中,`toCamelCase` 方法接收一个字符串作为输入,然后遍历该字符串中的每个字符。如果遇到一个字母或数字字符,则根据 `capitalizeNext` 变量的值决定是否将该字符转换为大写形式,并将其添加到结果字符串中。在驼峰命名法中,字符串中的每个单词都以大写字母开头,而其他字母都是小写的,单词之间没有空格或其他分隔符。在 `main` 方法中,我们使用了一个简单的示例来演示如何使用 `toCamelCase` 方法将字符串从普通形式转换为驼峰命名法的形式。原创 2024-04-24 13:37:05 · 261 阅读 · 0 评论 -
toLowerCase()
在上面的示例中,我们首先定义了一个原始字符串 "Hello, World!",然后调用 `toLowerCase()` 方法将其转换为小写形式,并将结果存储在`lowerCaseString`中。最后分别打印原始字符串和转换后的小写字符串。toLowerCase()` 是 Java 中 String 类的一个方法,用于将字符串中的所有字母转换为小写形式。这个方法会返回一个新的字符串,原始字符串并不会改变。原创 2024-04-24 13:31:23 · 389 阅读 · 0 评论 -
compareTo()
一种常见的用法是在排序数据结构中使用`compareTo()`方法,比如在对数组、集合或树形结构中的元素进行排序时,可以实现`Comparable`接口,并重写`compareTo()`方法以定义元素的比较规则。`compareTo()` 方法是Java中的一个用于比较两个对象的方法,它通常用于比较实现了`Comparable`接口的类的对象。`compareTo()`方法在Java中是用于比较两个对象的方法,通常用于实现了`Comparable`接口的类中,以定义对象之间的自然顺序。原创 2024-04-23 19:24:00 · 271 阅读 · 1 评论 -
JSONArray
在上述代码中,首先创建了一个空的 `JSONArray` 对象,并通过 `put()` 方法向数组中添加了三个元素。JSON-Java 是一个用于处理 JSON 数据的 Java 库,提供了添加、查询、修改和删除 JSON 数据的方法。JSONArray是Java中用于存储一系列有序的值(如数字、字符串等)的数据结构,可通过索引来访问和操作其中的元素。在 Java 开发中,`JSONArray` 是一个来自于 JSON-Java 库的类,用于表示 JSON 数组。原创 2024-04-23 14:57:20 · 250 阅读 · 0 评论 -
Optional.ofNullable()
在上述示例中,首先通过`Optional.ofNullable`方法创建了一个包含值的`Optional`对象`optional1`,然后通过`optional1.get()`方法获取该值并输出。接着,再次使用`Optional.ofNullable`方法创建了一个空的`Optional`对象`optional2`,并通过`optional2.isPresent()`方法判断该`Optional`对象是否包含值,从而决定输出结果。如果给定的值非空,调用of()方法返回一个包含该值的Optional对象。原创 2024-04-18 15:35:14 · 525 阅读 · 0 评论 -
AccessibleObject.setAccessible()
在上述示例中,通过使用反射机制获取类`Example`中的私有字段`privateField`,然后通过调用`setAccessible(true)`方法将该私有字段设置为可访问的。如果标志flag为true,但该对象的访问性不允许更改(例如,如果该对象是一个Constructor对象,其对应的类为java.lang.Class),则会抛出SecurityException异常。当一个对象的可访问性被设置为true时,即使它是私有的,也可以通过反射机制访问和操作该对象的私有成员。原创 2024-04-18 14:32:35 · 418 阅读 · 0 评论 -
String.startsWith()
该函数用于判断当前字符串是否以指定的前缀开头。它调用了另一个重载的startsWith方法,传入前缀和起始索引0,检查前缀是否匹配字符串的开头部分。如果匹配,则返回true,否则返回false。",然后使用startsWith方法检查该字符串是否以"Hello"开头。注意,如果前缀为空字符串或与当前字符串相等(通过equals方法比较),也会返回true。该方法自Java 1.0以来就存在。上述示例代码演示了如何使用Java中String类的startsWith方法来检查一个字符串是否以指定的前缀开头。原创 2024-04-18 14:16:43 · 327 阅读 · 0 评论 -
BeanValidatorUtil的validateobject方法
在上面的代码中,validateObject方法接收一个泛型对象作为参数,然后使用Validator对该对象进行验证。如果验证过程中发现属性值违反了约束规则,则会将错误信息打印出来。如果验证通过,则提示“Validation successful”。BeanValidatorUtil类的validateObject方法是一个用于验证Java对象的方法,通常用于验证对象的属性是否符合特定的规则或约束。原创 2024-04-18 11:02:04 · 169 阅读 · 0 评论 -
java.lang.IllegalStateException: Duplicate key XXXXXX
这个错误表明在使用Java Stream API的toMap方法时发生了重复的键值对冲突。具体来说,当使用toMap方法将流中的元素收集到一个Map中时,如果出现了重复的键,则会抛出IllegalStateException异常。可以使用在Java8提供的Collectors.toMap方法的第三个参数来指定出现重复键时的解决策略。2.将lcsList中id的数据查到,用toMap转换为Map。1.建一个userList,将id传入一个重复的。这样两种方式就会出现我们上面的报错提示。原创 2024-04-17 16:29:14 · 184 阅读 · 0 评论 -
在IntelliJ IDEA中打包Java项目
确保您的Java项目中已经配置了Maven依赖,并且pom.xml文件中已经定义了项目的构建配置。- 在IntelliJ IDEA中点击菜单栏中的 "View" -> "Tool Windows" -> "Maven" 打开Maven工具窗口。- 在Maven工具窗口中选择您的项目,在 "Lifecycle" 中双击 "package" 进行打包操作。- 打包完成后,会在项目的 target 目录下生成打包好的 JAR 文件。原创 2024-04-17 11:29:33 · 747 阅读 · 0 评论 -
Maven配置的修改
在集团做java实习生的第一天,我的leader给了我项目的代码,并且还有一个settings.xml文件,当时很懵,不知道这个文件是干啥的,当然有的小伙伴可能一眼就认出来了,这个配置文件是做什么,是做maven配置的,下面我就总结一些,maven的修改。当你入职的第一天你也收到了这样的一个文件,却不知道他是干什么的,不要慌,这个是maven相关的配置文件。首先,我们在setting中找到maven相关的设置。大公司都有自己的依赖库放在私服上。点击“apply”和“OK”我们找到这两个文件的位置。原创 2024-04-15 18:49:47 · 253 阅读 · 0 评论