![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 70
码学弟
这个作者很懒,什么都没留下…
展开
-
fastjson SerializerFeature详解
【代码】fastjson SerializerFeature详解。转载 2024-07-18 09:50:18 · 12 阅读 · 0 评论 -
Java日志-总结
🍅 JDK日志、log4j系列日志、logback系列日志🍅 common-logging日志接口🍅 sl4j日志接口一、JDK日志(java.util.logging=jul)从jdk1.4起,JDK开始自带一套日志系统。JDK Logger最大的优点就是不需要任何类库的支持,只要有Java的运行环境就可以使用。相对于其他的日志框架,JDK自带的日志可谓是鸡肋,无论易用性,功能还是扩展性都要稍逊一筹,所以在商业系统中很少直接使用。JDK默认的logging配置文件为:$JAVA_HOM转载 2024-07-15 15:12:28 · 11 阅读 · 0 评论 -
Java实现CSV文件的读写(包含追加内容)
逗号分隔值(,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据,CSV文件由任意数目的记录组成每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符记录间以某种换行符分隔(windows和linux下不一样)所有记录都有完全相同的字段序列通常都是纯文本文件(一般是建议使用文本编辑工具打开)转载 2024-05-29 08:28:42 · 271 阅读 · 0 评论 -
三种线程安全的List
获取线程安全的List我们可以通过Vector、Collections.synchronizedList()方法和CopyOnWriteArrayList三种方式读多写少的情况下,推荐使用CopyOnWriteArrayList方式读少写多的情况下,推荐使用Collections.synchronizedList()的方式。转载 2024-05-24 10:43:49 · 818 阅读 · 0 评论 -
java8使用parallelStream并行流造成数据丢失或下标越界异常解决方案
在从stream和parallelStream方法中进行选择时,我们可以考虑以下几个问题:1.是否需要并行?2.任务之间是否是独立的?是否会引起任何竞态条件?3.结果是否取决于任务的调用顺序?对于问题1,在回答这个问题之前,你需要弄清楚你要解决的问题是什么,数据量有多大,计算的特点是什么?并不是所有的问题都适合使用并发程序来求解,比如当数据量不大时,顺序执行往往比并行执行更快。毕竟,准备线程池和其它相关资源也是需要时间的。转载 2024-05-24 10:35:26 · 317 阅读 · 0 评论 -
解决:The Unicode character [学] at code point [23,398] cannot be encoded as it is outside the permi..问题
问题:在导出Excel表格的时候,前台正常执行导出操作,但后台出现The Unicode character [学] at code point [23,398] cannot be encoded as it is outside the permitted range of 0 to 255报错日志,且导出的Excel表格名称不是代码中定义的"学生"原因:在代码点[23,398]处的Unicode字符[学]不能被编码,因为它超出了0到255的允许范围解决:在出现中文的地方加上 URLEncoder.转载 2024-05-23 11:15:37 · 592 阅读 · 0 评论 -
获取、排序、比较两个Map中相同key对应value值
【代码】获取、排序、比较两个Map中相同key对应value值。转载 2024-05-20 11:14:38 · 150 阅读 · 0 评论 -
Java 中的 Map 的区别: HashMap, LinkedHashMap, TreeMap
可以保证按 key 的排序顺序去取(key 需要实现 Comparable, 否则会报错 cannot be cast to java.lang.Comparable)Map是用来保存2个元素的对应关系的,分别是key和value,key唯一。Java 自带的三个实现使用有下面的区别。不能保证取里面元素时的顺序。可以保证按添加的顺序去取。转载 2024-05-17 17:28:49 · 15 阅读 · 0 评论 -
java8 LocalTime的使用方法
Java 8里面添加了许多的新特性,如LocalDate、LocalTime、LocalDateTime。新增的日期类主要有三种:java.time.LocalDate ->只对年月日做出处理默认格式:yyyy-MM-dd, 例如:2021-11-29java.time.LocalTime ->只对时分秒纳秒做出处理默认格式:HH:mm:ss.SSSSSSSSS 例如:11:23:40.051942200。当纳秒<=0时,不显示纳秒当秒<=0且纳秒<=0时,默认只显示时:分 如11:23。转载 2024-05-10 15:56:45 · 56 阅读 · 0 评论 -
Java面试常考的 BIO,NIO,AIO 总结
Java 中的 BIO、NIO和 AIO 理解为是 Java 语言对操作系统的各种 IO 模型的封装。程序员在使用这些 API 的时候,不需要关心操作系统层面的知识,也不需要根据不同操作系统编写不同的代码。只需要使用Java的API就可以了。在讲 BIO,NIO,AIO 之前先来回顾一下这样几个概念:同步与异步,阻塞与非阻塞。同步与异步同步就是发起一个调用后,被调用者未处理完请求之前,调用不返回。转载 2024-04-18 10:52:39 · 210 阅读 · 0 评论 -
matcher.group() 的基本使用
matcher.group() 是matcher中关键在正则表达式中 ()定义了一个组,group(0)就是指的整个串,group(1)指的是第一个括号里的东西,group(2)指的第二个括号里的东西。转载 2024-04-11 16:10:22 · 650 阅读 · 0 评论 -
【类文件具有错误的版本 55.0, 应为 52.0】JDK与Minor版本对应,看这一篇就够啦(附java历史版本下载地址)
今天博主在学习SpringBoot,启动项目时遇到这样一个问题[ERROR] /Users/richard/springboot-helloworld/src/main/java/com/richard/controller/Application.java:[3,32] 无法访问org。转载 2023-12-19 15:36:06 · 1207 阅读 · 1 评论 -
【Java】Java中isBlank与isEmpty的区别
isBlank 是在isEmpty的基础上进行了为空(字符串都为空格、制表符、tab 的情况)的判断。相对应的isNotBlank(“str”)==true 就是 isBlank(“str”)==false的时候。isEmpty判断某字段字符串是否为空,为空的标准是str==null或者str.length()==0。isNotEmpty(“str”)==true 就是 isEmpty(“str”)==false的时候。isBlank的使用频率更高,而isEmpty的使用频率更高。转载 2023-11-20 16:08:09 · 814 阅读 · 0 评论 -
JDK8,JDK11,JDK17,JDK21及中间版本主要更新特性
有且只有一个抽象方法,但可以有多个非抽象方法的接口。在 java 8 中专门有一个包放函数式接口java.util.function,该包下的所有接口都有 @FunctionalInterface 注解,提供函数式编程。在其他包中也有函数式接口,其中一些没有@FunctionalInterface 注解,但是只要符合函数式接口的定义就是函数式接口,与是否有@FunctionalInterface注解无关,注解只是在编译时起到强制规范定义的作用。其在 Lambda 表达式中有广泛的应用。转载 2023-11-13 09:11:05 · 3294 阅读 · 0 评论 -
Java List排序4种写法
例如:对User对象集合根据User类的age属性排序,默认是升序。当集合中存在null元素时,可以使用针对null友好的。4.最后格式化为需要的格式。可以充分调度多核CPU。里面的内容,也是就是。转载 2023-10-16 17:11:59 · 4031 阅读 · 0 评论 -
Spring Boot 定义全局变量的三种方式
在Spring Boot应用程序中,我们经常需要定义一些全局变量,这些变量可以在应用的任何地方访问。Spring Boot提供了多种方式来定义全局变量,本文将介绍其中的几种方法,并提供相应的代码示例。本文介绍了几种在Spring Boot应用程序中定义全局变量的方法。使用配置文件、静态变量或单例模式都可以实现全局变量的定义。选择合适的方法取决于具体的需求和场景。希望本文对你在Spring Boot中定义全局变量有所帮助。通过合理的使用全局变量,我们可以在应用程序中方便地共享数据和配置信息。转载 2023-10-13 14:41:32 · 5577 阅读 · 0 评论 -
代码规范之e.printStackTrace()
不要使用e.printStackTrace()转载 2023-10-13 14:34:52 · 1569 阅读 · 0 评论 -
Serializable接口serialVersionUID作用
对象经常要通过IO进行传送,让你写程序传递对象,你会怎么做?把对象的状态数据用某种格式写入到硬盘,,既然大家都要这么干,并且没有个统一的干法,于是,Sun公司就提出一种统一的解决方案,它会把对象变成某个格式进行输入和输出,这种格式对程序员来说是透明(transparent)的,但是,我们的某个类要想能被Sun公司的这种方案处理,必须实现接口。假设两年前我保存了某个类的一个对象,这两年来,我修改该类,删除了某个属性和增加了另外一个属性,两年后,我又去读取那个保存的对象,或有什么结果?未知!Sun的jdk。转载 2023-10-13 09:40:57 · 28 阅读 · 0 评论 -
报错:‘Page‘ is abstract; cannot be instantiated 已解决
框架,并且已经导入了依赖,所以这里是不应该出问题的。于是,我转念一想,是不是使用类包错了?他告诉我们Page这个类是抽象的,不能被实例化。可是我这里想要用的是。我导入了自己创建的一个同名包。代码又恢复成了最初的样子!解决办法:重新导入正确的包即可。转载 2023-10-13 09:17:26 · 781 阅读 · 1 评论 -
implements Serializable的作用
而实际上,Serializable是一个空接口,没有什么具体内容,它的目的只是简单的标识一个类的对象可以被序列化。比如说你的内存不够用了,那计算机就要将内存里面的一部分对象暂时的保存到硬盘中,等到要用的时候再读入到内存中,硬盘的那部分存储空间就是所谓的虚拟内存。如果要通过远程的方法调用(RMI)去调用一个远程对象的方法,如在计算机A中调用另一台计算机B的对象的方法,那么你需要通过JNDI服务获取计算机B目标对象的引用,将对象从B传送到A,就需要实现序列化接口。当你想把的内存中的对象写入到硬盘的时候。转载 2023-10-13 09:14:18 · 355 阅读 · 0 评论 -
StringBuffer和StringBuilder区别详解(Java面试)
③StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。②和 String 类不同的是,StringBuffer 和 StringBuilder类的对象能够被多次的修改,并且不产生新的未使用对象。既然 StringBuffer是线程安全的,它的所有公开方法都是同步的,StringBuilder 是没有对方法加锁同步的,所以毫无疑问,多数情况下建议使用 StringBuilder类。转载 2023-09-07 11:23:20 · 42 阅读 · 0 评论 -
Java文件读写操作
Java中I/O流对文件的读写有很多种方法,在这里我主要介绍三种方式,供大家参考。希望对大家有帮助,有什么问题欢迎提问。转载 2023-09-07 10:38:31 · 269 阅读 · 0 评论 -
@JSONField 注解详解和应用
注意:1.1、若属性是私有的,必须有set*方法。否则无法反序列化。// 配置序列化和反序列化的顺序,1.1.42版本之后才⽀持// 指定字段的名称// 指定字段的格式,对⽇期格式有⽤// 是否序列化// 是否反序列化。转载 2023-09-07 10:35:53 · 677 阅读 · 0 评论 -
【java基础】吐血总结Stream流操作
java 8 是一个非常成功的版本,这个版本新增的Stream,配合同版本出现的Lambda,给我们操作集合(Collection)提供了极大的便利。那么什么是Stream?Stream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行操作,比如:筛选、排序、聚合等。Stream中间操作,每次返回一个新的流,可以有多个。(筛选filter、映射map、排序sorted、去重组合skip—limit)终端操作,每个流只能进行一次终端操作,终端操作结束后流无法再次使用。转载 2023-09-02 08:27:18 · 973 阅读 · 0 评论 -
module java.base does not “opens java.lang“ to unnamed module
在Java 9及以上版本运行应用程序时,在各种情况下都会发生此异常。某些库和框架(Spring,Hibernate,JAXB)特别容易使用。转载 2023-09-01 16:35:39 · 8831 阅读 · 0 评论 -
Java8 LocalDateTime常用方法
【代码】Java8 LocalDateTime常用方法。转载 2023-08-17 17:13:09 · 195 阅读 · 0 评论 -
告别BeanUtils,Mapstruct从入门到精通
如果现有的能力都不能满足需要,可以自定义一个转换器,比如我们需要把一个字符串使用JSON工具转换成对象。添加属性我们在po中加入一个字符串的attributes属性,在entity中加入Attributes类型的属性。转载 2023-07-31 15:56:45 · 138 阅读 · 0 评论 -
Spring的@Scheduled 动态更新cron表达式
2、再写一个controller,通过调用set方法就可以动态设置这个cron表达式了。直接调用setCron,就可以将cron从5秒一次改为10秒一次。当然,在这个基础上把cron移到数据库中集中管理就不难了。1、先写一个类,让cron表达式总是读成员变量的值。转载 2023-07-25 15:01:03 · 1004 阅读 · 1 评论 -
java获取项目所在服务器的ip地址和端口号(获取当前ip地址)
【代码】java获取项目所在服务器的ip地址和端口号(获取当前ip地址)转载 2023-07-25 14:45:34 · 7535 阅读 · 0 评论 -
@Autowired和@Resource注解的区别和联系
先说联系。转载 2023-07-25 14:27:05 · 38 阅读 · 0 评论 -
JPA之@GeneratedValue注解
使用一个特定的数据库表格来保存主键,持久化引擎通过关系数据库的一张特定的表格来生成主键,这种策略的好处就是不依赖于外部环境和数据库的具体实现,在不同数据库间可以很容易的进行移植,但由于其不能充分利用数据库的特性,所以不会优先使用。的@GeneratedValue注解,在JPA中,@GeneratedValue注解存在的意义主要就是为一个实体生成一个唯一标识的主键(JPA要求每一个实体Entity,必须有且只有一个主键),@GeneratedValue提供了主键的生成策略。下面分别介绍这四种主键生成策略。转载 2023-07-24 08:48:24 · 2174 阅读 · 0 评论 -
从源码看起--lombok @Accessors 注解详解
在你的工作中,有时候可能会看到 @Accessors(chain = true) 这样的注解,他是lombok插件包中的一个注解,那么它是什么意思呢?1. @Accessors 源码我们打开 @Accessors 的源码可以看到:(1)该注解主要作用是:当属性字段在生成 getter 和 setter 方法时,做一些相关的设置。(2)当它可作用于类上时,修饰类中所有字段,当作用于具体字段时,只对该字段有效。该字段共有三个属性,分别是fluent。转载 2023-07-21 15:20:50 · 132 阅读 · 0 评论 -
this调用自身方法,Transaction注解事务不生效的问题
Spring的事务是通过代理类实现的,而下方代码中的this.addUserToDb()并没有走UserService的代理类,所以事务并不会生效。转载 2023-05-17 08:52:00 · 707 阅读 · 0 评论 -
SpringBoot引入JWT
随着技术的发展,分布式web应用的普及,通过session管理用户登录状态成本越来越高,因此慢慢发展成为token的方式做登录身份校验,然后通过token去取redis中的缓存的用户信息,随着之后jwt的出现,校验方式更加简单便捷化,无需通过redis缓存,而是直接根据token取出保存的用户信息,以及对token可用性校验,单点登录更为简单。转载 2023-01-13 13:31:51 · 617 阅读 · 0 评论 -
java多线程入门(很到位)
java中之所以有多线程机制,目的就是为了提高程序的处理效率。对于单核的CPU来说,不能够做到真正的多线程并发,但是可以做到给人一种“多线程并发”的感觉。对于单核的CPU来说,在某一个时间点上实际上只能处理一件事情,但是由于CPU的处理速度极快,多个线程之间频繁切换执行,跟人来的感觉是多个事情同时在做。转载 2023-01-13 09:22:53 · 426 阅读 · 0 评论 -
Java随机生成字符串的4种方式
Java随机生成字符串的4种方式转载 2022-12-27 08:50:47 · 4034 阅读 · 0 评论 -
Port 8083 was already in use。端口被占用解决办法
Address already in use: JVM_Bind 8083端口被占用的几个解决办法转载 2022-12-15 11:36:57 · 1023 阅读 · 0 评论 -
领域驱动设计:从理论到实践,一文带你掌握DDD!
领域驱动设计:从理论到实践,一文带你掌握DDD!转载 2022-12-15 11:00:59 · 289 阅读 · 0 评论 -
DO、DTO、BO、VO、POJO的详解与区别
浅析DO、DTO、BO、VO、POJO的概念与区别。转载 2022-12-15 10:44:54 · 392 阅读 · 0 评论 -
初识java.util.Locale
初识Java.Util.Locale转载 2022-12-15 10:36:41 · 531 阅读 · 0 评论