JAVA基础
文章平均质量分 69
执键行天涯
国企程序猿 5年工作经验
展开
-
【JAVA基础】try-catch-finally执行完finally中的代码之后,后面的代码还会不会继续执行 ?
背景:今天在开发过程中遇到了一个问题,再某个成员方法中,try-catch-finally后面还想执行一些内容,但是略微模糊,特此梳理记录,希望能帮到大家。原创 2024-10-09 11:01:46 · 316 阅读 · 0 评论 -
JAVA实体需要加@Builder吗(构建器模式)
当你有一个实体类(Entity)或数据传输对象(DTO)拥有多个字段,并且你希望以一种更简洁的方式创建其实例时,@Builder 注解就显得非常有用。@Data注解来自于Lombok库,它会自动为你的类生成getter、setter、equals()、hashCode()和toString()方法。这意味着,即使你使用了@Builder注解,你的类仍然会拥有传统的setter方法。因此,你可以通过new User()创建对象后,使用.set()方法来设置属性,或者你也可以使用构建器模式来创建和设置对象。原创 2024-09-27 10:18:56 · 335 阅读 · 11 评论 -
【JAVA基础】lombok的@Data会生成什么?和无参构造器有关系吗
无参构造器:@Data注解本身不直接生成构造器。但是,由于Java类的默认行为,如果你没有显式地定义任何构造器,Java编译器会自动为你生成一个无参构造器。这个哈希码的计算方式可能依赖于字段的类型和值,但通常会尝试确保不同对象(即字段值不完全相同的对象)具有不同的哈希码,以减少哈希冲突的可能性。编译器默认生成无参构造器,但如果你自己写了有一个参数的构造器,那么编译器将不会再生成默认的无参构造器。编译器默认生成无参构造器,如果自己写了有一个参数的构造器,还会生成默认的无参构造器吗?原创 2024-09-26 10:34:59 · 824 阅读 · 2 评论 -
【JAVA基础】JAVA类的拷贝使用示例
Apache Commons BeanUtils是一个用于操作JavaBean的工具类库,它提供了丰富的API来操作JavaBean的属性,包括属性拷贝。Spring框架自带的BeanUtils类也提供了属性拷贝的功能,通常与Spring框架一起使用。ModelMapper是一个智能的对象映射库,它可以自动将一种类型的对象转换为另一种类型的对象,包括Bean的属性拷贝。原创 2024-09-26 10:24:41 · 1227 阅读 · 2 评论 -
【JAVA基础】StringUtils.isEmpty、StringUtils.isBlank()、Objects.isNull()三者区别
【代码】【JAVA基础】StringUtils.isEmpty、StringUtils.isBlank()、Objects.isNull()三者区别。原创 2024-09-06 18:07:08 · 318 阅读 · 3 评论 -
【不安全的集合类】同步容器(ConcurrentHashMap)、并发集合(CopyOnWriteArrayList)
CopyOnWrite容器即写时复制的容器,往一个容器中添加元素的时候,不直接往当前容器Object[]添加,而是现将当前容器Object[]进行Copy,而是复制出一个新的容器Object[] newElements向新容器添加元素,添加之后,再将原容器的引用指向新的容器setArray(newElements);这里浅说一下HashSet的源码,HashSet其实就是一个HashMap,HashSet的中存的值是HashMap的key,HashMap中的Value是一个固定对象PRESENT。原创 2024-09-02 22:21:25 · 859 阅读 · 0 评论 -
Mybatis 的<trim>标签用法 prefix prefixOverrides suffix suffixOverrides
<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim>prefix:在trim标签内sql语句加上前缀。prefixOverrides:指定去除多余的前缀内容 如:prefixOverrides = "and",去除trim标签内sql语句多余的前缀"and"。suffix:在t...原创 2022-12-28 10:14:00 · 96 阅读 · 0 评论 -
深入解析 `CopyOnWriteArrayList` 的实现原理与应用
1、由于写操作的时候,需要拷贝数组,会消耗内存,如果原数组的内容比较多的情况下,可能导致young gc或者full gc。(1、young gc :年轻代(Young Generation):对象被创建时,内存的分配首先发生在年轻代(大对象可以直接被创建在年老代),大部分的对象在创建后很快就不再使用,因此很快变得不可达,于是被年轻代的GC机制清理掉(IBM的研究表明,98%的对象都是很快消亡的),这个GC机制被称为Minor GC或叫Young GC。特别是在数组较大时,写操作的性能会受到较大影响。原创 2024-08-21 15:01:32 · 824 阅读 · 0 评论 -
CommandLineRunner
在这个方法中,你可以访问传入的命令行参数(尽管这在实践中可能不常见,因为通常 Spring Boot 的配置文件已经提供了所有必要的配置),并执行所需的启动逻辑。在这个例子中,MyCommandLineRunner 类通过 @Component 注解被 Spring 容器管理,这意呀着当 Spring Boot 应用程序启动时,Spring 会自动找到这个类并调用其 run 方法。CommandLineRunner 提供了在应用启动时执行代码的能力,但过度使用可能会导致应用启动时间变长,从而影响用户体验。原创 2024-08-20 15:40:11 · 358 阅读 · 0 评论 -
springboot 对于@Autowired 注入为null 的介绍与解决方式
(2)你的这个类有被new出来的实例的,new 过的对象不会交给Spring容器管理 所以里面的 service或者dao注入不进来。一般是指引用某些框架,你是继承某个接口,但是这些框架默认new过这个方法,比如MVC拦截的HandlerInterceptor类。(1)比如我想在某个类实现RedisUtils 类的注入,但是用@autowired 会报null。对于(1)其实就加入@Component 就可以了。(1)该类没有托管给spring 管理,一般在类的上面添加@Component。转载 2024-08-16 14:35:36 · 512 阅读 · 0 评论 -
Stream之flatMap
目标:将如下对象中的分类category提取出来,去重。其中如"哲学,爱情",需要解析为两个分类,[“哲学”,“爱情”]flatMap:将小Stream转换为大Stream。转载 2024-08-16 11:18:58 · 217 阅读 · 0 评论 -
Java Stream通过findFirst()查找满足条件的一条数据
findFirst是短路终端操作(short-circuiting terminal operation),流操作是一组中间操作和终端操作,如果中间操作可以为无限输入生成有限流,则它是短路(short-circuiting)。示例2:下面是使用IntStream、LongStream和DoubleStream的findFirst方法的示例。如果findFirst选择的元素为null,它将抛出NullPointerException。回:findFirst方法返回Optional包含流中第一个元素的元素。转载 2024-08-16 11:08:20 · 343 阅读 · 0 评论 -
JSONUtil、JsonArray应用 (全网最全面的解析方式汇总) - 调用第三方接口后,获取的结果如何转化成对象,转化成对象之后又如何解析
其实调用三方接口分为几步1、采用哪种方式调用三方接口,这种依赖于第三方系统是提供了什么样的接口,目前我了解的到的接口有http接口还有dubbo接口等。如果是http接口的话,可以看我的另外一篇文章 ,本篇文章很详细的总结了多种调用三方接口的API方法,并且包含post、get等不同方式的请求;对于dubbo接口如何调用,我初步理解为 我们将提供服务的jar包依赖放到pom.xml中,并在相关类中通过dubbo注解引入即可。如下图对于dubbo接口的调用,我后面也会出一篇博客~原创 2024-08-15 17:46:50 · 1051 阅读 · 0 评论 -
@ResponseBody详解
responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。@ResponseBody是作用在方法上的,@ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中,一般在异步获取数据时使用【也就是AJAX】。@ResponseBody也可以作用在类上,表示这个类所有方法都是返回JSON数据。原创 2024-08-11 12:25:05 · 1054 阅读 · 0 评论 -
【JAVA 常用API】数据库字段存储JSON格式数据,JAVA中如何将List<Entity>或者对象实体转换为字符串
在Java中,可以使用第三方库如Jackson或Gson来进行JSON的转换。这些库提供了将Java对象转换为JSON字符串的方法。在代码中,使用ObjectMapper类的writeValueAsString()方法将List转换为JSON字符串。首先,需要在项目中引入相应的库。转换后的JSON字符串可以直接使用或进行进一步处理,例如存储到数据库、传输到其他系统等。原创 2024-07-18 10:46:52 · 565 阅读 · 0 评论