
Java
文章平均质量分 68
洛小豆
个人微信公众号:三更编程菌,科技小豆。入门级开发人员
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
如何优雅地初始化 Java 集合?从构造方法到懒加载的全面分析
在最近的一个项目中,我需要定义一个类,其中包含一个用于存储筛选条件的集合属性。最初,我直接在类中定义了这个集合并进行了初始化,像这样:不过,在实际开发中,我开始思考:是否应该在定义时就初始化这个集合,还是在构造方法中进行初始化呢?毕竟构造方法允许我们根据传入的参数来动态设置属性值,或者使用其他方式更灵活地控制集合的初始化。同时,我也在考虑其他场景,比如懒加载或外部注入,这种情况下应该如何处理这个集合属性的初始化?那么,究竟哪种方式更优雅,或者说在不同的情况下我们该如何做出选择呢?最简单的方式,就是在定义类原创 2024-12-08 11:09:55 · 1122 阅读 · 0 评论 -
如何优雅地实现单例模式?内部静态类还是双重检查锁定?
在最近的一个项目中,我需要为一个核心配置类实现单例模式。在设计过程中,我发现要同时满足和和起初,我倾向于使用 DCL,它通过双重检查来避免不必要的同步开销,但需要谨慎处理volatile关键字的使用,确保在多线程环境下的安全性。另一方面,内部静态类的实现更加简洁,利用类加载的机制,天然地保证了线程安全和延迟加载。但这两者在实际应用中各有优劣,那么在面对不同场景时,究竟该如何选择更合适的单例实现方式呢?原创 2024-12-07 16:36:34 · 1089 阅读 · 0 评论 -
巧用反射与注解:如何快速提取类的属性名为字符串列表?
在实际的应用场景中,这里不希望直接使用属性名作为输出,或者需要忽略某些字段。比如,我需要把userName转换成user_name,而忽略掉password字段。为了解决这个问题,我们可以通过Java 注解来控制字段的转换方式。:用于自定义某个字段的名称。:用于忽略某个字段的转化。原创 2024-12-06 11:26:24 · 417 阅读 · 0 评论 -
为什么你应该手动定义 serialVersionUID?@Serial 注解有什么作用?
最近在优化一个Java项目时,遇到了一个关于类序列化的问题。项目中有一个需要实现 Serializable 接口的类,我发现有一段代码使用了 @Serial 注解,并且还定义了 serialVersionUID……原创 2024-09-30 13:44:36 · 1694 阅读 · 0 评论 -
Java 序列化:为什么你应该手动定义 serialVersionUID?@Serial 注解有什么作用?
最近在优化一个Java项目时,我发现有一段代码使用了 @Serial 注解,并且还定义了 serialVersionUID,我开始思考两个问题:@Serial 注解的作用是什么?以及在类实现序列化时,是否必须手动定义 serialVersionUID?原创 2024-09-26 10:36:17 · 1331 阅读 · 0 评论 -
到底选谁?Java判断null,Optional和工具类真香?还是if(obj == null)更靠谱?
因此,在不需要大量使用 Spring 或其他第三方库的场景下,这种方法更加适合。例如,在一个不广泛使用 Spring 的项目中,使用 Java 原生方法可以让代码更独立,降低对外部库的耦合度。虽然这种性能差异在大多数场景下是微不足道的,但在追求极致性能的情况下,直接使用原生方法可以减少一次静态方法调用。如果你的项目广泛使用工具类,那么在所有相关代码中保持使用工具类的方法有助于代码的统一性和可维护性。如果代码需要在不同项目中复用或发布为公共类库,选择原生方法可以减少对外部库的依赖,使代码更容易维护和移植。原创 2024-09-05 21:29:18 · 773 阅读 · 0 评论 -
新手必备:SpringBoot3如何使用redis?怎么配置?实现一个常用工具类?
为了定制化 Redis 的使用方式,我们可以创建一个配置类,自定义和,以便对 Redis 的键值进行序列化和缓存管理。这里定义对象序列化的方式,可以直接往Reids中存放对象,它实现自动转换。// 配置 RedisTemplate,用于操作 Redis 数据库@Bean// 创建 RedisTemplate 对象,用于执行 Redis 操作// 设置连接工厂,用于与 Redis 建立连接。原创 2024-09-04 09:09:33 · 2311 阅读 · 0 评论 -
Maven入门:自动化构建工具的基本概念与配置
目前无论使用IDEA还是Eclipse等其他IDE,使用里面 ANT 工具帮助我们进行编译,打包运行等工作。Apache基于ANT进行了升级,研发出了全新的自动化构建工具Maven。Maven使用项目对象模型(POM-Project Object Model,项目对象模型)的概念,可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。在Maven中每个项目都相当于是一个对象,对象(项目)和对象(项目)之间是有关系的。原创 2024-08-31 09:23:01 · 766 阅读 · 0 评论 -
代码小妙招:用Java轻松获取List交集数据
今天遇到一个小需求,当用户上传了一个关于用户数据的列表,我们需要将其与数据库中已有的用户数据进行比较。假设数据库中的用户数据存储在集合A中,而用户上传的数据存储在集合B中。我们需要确定集合B中有多少数据在集合A中,以及有多少数据不在集合A中,并记录这些信息到日志中。那么,我们应该如何处理这个需求呢?原创 2024-08-30 10:18:04 · 1821 阅读 · 0 评论 -
小白科普篇:详解Java对象的强引用、软引用、弱引用和虚引用
在Java中,有四种类型的引用,它们定义了对象被垃圾收集器(GC)处理的不同时机。下面我将结合代码对这四种引用类型进行介绍。原创 2024-06-22 13:16:15 · 383 阅读 · 0 评论 -
优化Java多线程应用:是创建Thread对象直接调用start()方法?还是用个变量调用?
偶然间发现一个有意思的点,平时写代码的时候,下面这两种写法,不知道大家经常使用的是哪一种写法?你能发现他俩有啥区别吗?原创 2024-06-20 23:12:47 · 375 阅读 · 0 评论 -
小白教程:使用IntelliJ IDEA的HTTP Client进行接口验证
这段时间使用开发一些Rest API相关的功能,准备做一些接口的简单测试,快速的验证一下API功能是否正常,正好觉得IntelliJ IDEA中的HTTP Client功能非常方便,它允许我们直接在编辑器中操作,正好记录一下。原创 2024-06-20 23:11:24 · 2751 阅读 · 0 评论 -
使用file.transferTo()做Java文件复制,目标文件存在时,是抛异常还是覆盖写入?
最近在做一个项目,在服务端涉及到文件的复制操作,于是想到了 Java 中 `FileInputStream` 类的 `transferTo()` 方法。这里简单记录一下用法,另外,如果目标文件已经存在,该如何处理这种情况呢?是出现异常还是覆盖写入?原创 2024-06-16 08:50:28 · 1605 阅读 · 0 评论 -
Spring Cloud微服务实战:一起来看看实体类如何管理,到底是“统一大本营”还是“各个为政”?
Spring Cloud作为微服务架构的框架,正好这段时间在使用spring全家桶做服务端开发时,发现了同事不同的开发风格,在管理项目中的这些实体类时。有两种做法,一种是把实体类写到一个模块中,其他微服务引用这个模块,另外一种是实体类写到微服务中,哪一种做法更好呢?原创 2024-06-13 20:22:10 · 656 阅读 · 0 评论 -
Tomcat 启动报does not exist or is not a readable directory错误,修改配置文件
这个问题应该是,在经历什么意外操作以后,你把在Tomcat下面的项目移除了,但是配置文件还存在相应的配置,但是运行的时候找不到相应的项目,然后报错了。可以查看一下Tomcat的配置文件。如下所示,这就是我配置文件里面,多余的项目配置。删掉就可以正常运行了,希望对你们有帮助。 ...原创 2019-01-16 16:57:59 · 2436 阅读 · 0 评论 -
Java接口知识小结
Java 1.8开始支持在接口中定义静态方法(有方法体)和默认方法(有方法体),也就是说接口中的方法可以被static和default修饰,一旦修饰,默认方法必须存在方法体。接口方法的定义规则变成了只允许public、abstract、default、static来作为修饰接口中的方法,其它是不允许的。静态方法不能被接口的实现类调用,只能用接口直接调用。默认方法可以被接口的实现类直接调用。如果...原创 2018-11-25 21:09:47 · 553 阅读 · 0 评论 -
spring配置文件常用约束条件
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springfra转载 2018-10-02 14:01:14 · 2162 阅读 · 0 评论 -
【Spring】CannotGetJdbcConnectionException
在学习Spring的JdbcTemplate过程中,偶然间遇到了CannotGetJdbcConnectionException这个异常,查看代码并没有发现异常,因为数据库的连接使用的DriverManagerDataSource,并没与使用配置文件,所以不是配置文件上的问题。org.springframework.jdbc.CannotGetJdbcConnectionException:...原创 2018-10-01 23:25:30 · 2141 阅读 · 0 评论 -
【Java】内存中的数组
在讲内存中的数组之前,我们了解一下内存,Java是怎么使用内存的呢?简单的介绍一下java的内存机制。在Java里面把内存划分成两种:一种是栈内存,另一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中,当在一段代码块定义一个变量时,Java 就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java 会自动释放掉为该变量分配的内存空间,该内存空间可以立即被其...原创 2018-10-01 11:58:50 · 353 阅读 · 0 评论