Java 实际开发中积累的几个小技巧

目录 前言 一、枚举类的注解 二、RESTful 接口 三、类属性转换 四、Stream 流 五、判空和断言 5.1判空部分 5.2断言部分 文章小结 前言笔者目前从事一线 Java 开发今年...

2024-03-11

Java 互联网项目如何防止集合堆内存溢出(一)

目录 前言 一、代码优化 1.1Stream 流自分页 1.2数据库分页 1.3其它思考 二、硬件配置 2.1云服务器配置 三、文章小结 前言OOM 几乎是笔者工作中遇到的线上 bug 中...

2024-03-11

日常工作中关于 JSON 转换的经验大全(Java)

目录 前言 一、JSON 回顾 1.1结构形式 二、其它类型 -> JSON相关 2.1 JavaBean 转 JsonObject 2.2 JavaBean 转 Json 字符串 2.3 List 转 JsonArray 2.4 List 转Jso...

2024-03-11

从零开始学Spring Boot系列-集成mybatis

在Spring Boot的应用开发中,MyBatis是一个非常流行的持久层框架,它支持定制化SQL、存储过程以及高级映射。在本篇文章中,我们将学习如何在Spring Boot项目中集成MyBatis,以便通...

2024-03-11

Jpackage-制作无需预装Java环境的Jar可执行程序

JAR 包要在预装 JRE 环境的系统上执行。如果没有预先安装 JRE 环境,又想直接运行 Java 程序,该怎么办呢?这篇文章我们会先学习如何将 Java 程序打包成一个可执行的 Java JAR 文...

2024-03-08

Java 8 Supplier函数式接口介绍及代码样例

介绍供应商接口(Supplier Interface)是 Java 8 引入的 java.util.function 包的一部分,用于在 Java 中实现函数式编程。它表示一个函数,该函数不接收任何参数,但会产生一个类型为...

2024-03-08

Java核心之细说泛型

泛型是什么?等你使用java逐渐深入以后会了解或逐步使用到Java泛型。Java 中的泛型是 JDK 5 中引入的功能之一。"Java 泛型 "是一个技术术语,表示一组与定义和使用泛型类型和方...

2024-03-08

从零开始搭建Springboot开发环境(Java8+Git+Maven+MySQL+Idea)之一步到位

说明所谓万事开头难,对于初学Java和Springboot框架的小伙伴往往会花不少时间在开发环境搭建上面。究其原因其实还是不熟悉,作为在IT界摸爬滚打数年的老司机,对于各种开发环境搭...

2024-03-07

接口 vs. 抽象类:揭开 Java 世界中的神秘面纱

小编带您揭开Java世界中的神秘面纱:接口与抽象类。面向对象编程中,接口与抽象类是常用的概念,但它们的区别与应用场景常让人困惑。通过本文,您将了解到接口与抽象类的定义、特点...

2024-03-05

解密MyBatis操作过程:深入探讨ORM框架的关键原理

ORM(Object-Relational Mapping)是一种将对象模型和关系数据库之间的映射的技术,它让我们可以通过面向对象的方式操作数据库,避免了繁琐的SQL语句编写,提高了开发效率。MyBatis是...

2024-03-05

Java Lambda 表达式与传统编程范式的比较:函数式编程的优势与劣势

Java Lambda 表达式简介Java Lambda表达式是Java 8引入的函数式编程特性,与传统编程范式相比,具有独特的优势和劣势。通过Lambda表达式,Java可以更简洁地实现函数式编程,提高代...

2024-03-05

Lambda表达式在Java中的奇妙之旅:函数式编程的实践指南!

php小编西瓜带你探索Lambda表达式在Java中的奇妙之旅!本文将为您提供函数式编程的实践指南,深入剖析Lambda表达式在Java中的应用场景和优势,帮助您更好地理解和运用这一强大的...

2024-03-05

Java JNDI 性能优化技巧:如何提高 Java JNDI 的性能和效率

1. 使用连接池Java JNDI(Java Naming and Directory Interface)是Java中用于访问命名和目录服务的API。在实际开发中,优化Java JNDI性能是非常重要的,可以提高系统的效率和响应...

2024-03-05

Java JNDI 与 Spring 集成的秘诀:揭秘 Java JNDI 与 Spring 框架的无缝协作

Java JNDI 与 spring 集成的优势php小编西瓜带你揭秘Java JNDI与Spring框架的无缝协作。Java Naming and Directory Interface(JNDI)是Java平台提供的一种API,可用于访问各种命...

2024-03-05

深度探究MyBatis的一对多查询配置:灵活运用关联查询

MyBatis是一个优秀的持久层框架,它不仅简化了数据库操作,还提供了强大的查询功能。在实际开发中,经常会涉及到多表关联查询的情况,而MyBatis通过配置一对多查询可以轻松实现这种...

2024-03-05

深入解析MyBatis一对多查询配置:提升SQL语句执行效率

MyBatis是一款非常流行的持久层框架,其灵活的SQL映射和强大的查询功能使得开发人员可以轻松地处理复杂的数据操作。在实际开发中,经常会遇到一对多查询的场景,即一个主体对象对...

2024-03-05

一文讲明白Java中线程与进程、并发与并行、同步与异步

写在开头ok,everybody,在过去的两周内,我们大体上讲完了Java的集合,在最后我们探讨了关于HashMap线程不安全的原因,又提出了ConcurrentHashMap这个线程安全的集合解决方案,那么在...

2024-03-05

从零开始学Spring Boot系列-前言

在数字化和信息化的时代,Java作为一种成熟、稳定且广泛应用的编程语言,已经成为构建企业级应用的首选。而在Java生态系统中,Spring框架无疑是其中最为耀眼的一颗明星。它提供了...

2024-03-03

在 Spring Boot 3.x 中使用 SpringDoc 2 / Swagger V3

SpringDoc V1 只支持到 Spring Boot 2.xspringdoc-openapi v1.7.0 is the latest Open Source release supporting Spring Boot 2.x and 1.x.Spring Boot 3.x 要用 SpringDo...

2024-03-01

Java HashMap 详解

HashMapHashMap 继承自 AbstractMap,实现了 Map 接口,基于哈希表实现,元素以键值对的方式存储,允许键和值为 null。因为 key 不允许重复,因此只能有一个键为 null。HashMap 不能...

2024-03-01

Java异常处理的20个最佳实践:告别系统崩溃

引言在Java编程中,异常处理是一个至关重要的环节,它不仅涉及到程序的稳定性和安全性,还关系到用户体验和系统资源的合理利用。合理的异常处理能够使得程序在面对不可预知错误时...

2024-02-29

阿里面试:Java开发中,应如何避免OOM

Java内存管理:避免OOM的10个实用小技巧引言在Java开发中,OutOfMemoryError(OOM)错误一直是令开发者头疼的问题,也是Java面试中出现核心频率很高的问题。
那么我们究竟怎么样才能...

2024-02-29

从零开始学Spring Boot系列-返回json数据

欢迎来到从零开始学Spring Boot的旅程!在Spring Boot中,返回JSON数据是很常见的需求,特别是当我们构建RESTful API时。我们对上一篇的Hello World进行简单的修改。 添加依赖...

2024-02-29

Java面向对象之内部类的几类使用场景

介绍Java内部类是一种特殊的类,它定义在另一个类的内部。内部类提供了许多有用的特性,包括访问外部类的私有成员、隐藏实现细节以及实现回调接口等。以下是Java内部类的一些常...

2024-02-28

解析Spring中的循环依赖问题:再探三级缓存(AOP)

前言在之前的内容中,我们简要探讨了循环依赖,并指出仅通过引入二级缓存即可解决此问题。然而,你可能会好奇为何在Spring框架中还需要引入三级缓存singletonFactories。在前述总...

2024-02-28

源码剖析Spring依赖注入:今天你还不会,你就输了

在之前的讲解中,我乐意将源码拿出来并粘贴在文章中,让大家看一下。然而,我最近意识到这样做不仅会占用很多篇幅,而且实际作用很小,因为大部分人不会花太多时间去阅读源码。因此,从...

2024-02-27

Spring源码:Bean生命周期(终章)

前言本系列前面讲解了Spring的bean定义、bean实例化、bean初始化等生命周期。这些步骤使我们能够了解bean从创建到准备好使用所经历的过程。但是,除了这些步骤,bean的销毁也是...

2024-02-27

Spring源码:Bean生命周期(五)

前言在上一篇文章中,我们深入探讨了 Spring 框架中 Bean 的实例化过程,该过程包括从 Bean 定义中加载当前类、寻找所有实现了 InstantiationAwareBeanPostProcessor 接口的类...

2024-02-27

Spring源码:Bean生命周期(四)

前言在之前的文章中,我们介绍了 Bean 的核心概念、Bean 定义的解析过程以及 Bean 创建的准备工作。在今天的文章中,我们将深入探讨 Bean 的创建过程,并主要讲解 createBean 方...

2024-02-27

Spring源码:Bean生命周期(三)

前言在之前的文章中,我们已经对 bean 的准备工作进行了讲解,包括 bean 定义和 FactoryBean 判断等。在这个基础上,我们可以更加深入地理解 getBean 方法的实现逻辑,并在后续的学...

2024-02-27

Spring源码:Bean的生命周期(二)

前言让我们继续讲解Spring的Bean实例化过程。在上一节中,我们已经讲解了Spring是如何将Bean定义加入到IoC容器中,并使用合并的Bean定义来包装原始的Bean定义。接下来,我们将继...

2024-02-27

Spring源码:bean的生命周期(一)

前言本节将正式介绍Spring源码细节,将讲解Bean生命周期。请注意,虽然我们不希望过于繁琐地理解Spring源码,但也不要认为Spring源码很简单。在本节中,我们将主要讲解Spring 5.3.1...

2024-02-27

Spring源码系列(补充):详解ApplicationContext

前言在之前的文章中,我们已经对Spring源码中的一些核心概念进行了分析。由于篇幅限制,我们并没有详细解释ApplicationContext类所继承的父接口及其作用。因此,本文将单独为Appl...

2024-02-27

Spring源码系列:核心概念解析

前言本文旨在为读者解析Spring源码中的关键类,以便读者在深入阅读源码时,能够了解关键类的作用和用途。在阅读Spring源码时,经常会遇到一些不熟悉的概念,了解关键类的作用可以帮...

2024-02-27

Spring源码系列:初探底层,手写Spring

前言在学习Spring框架源码时,记住一句话:源码并不难,只需要给你各种业务场景或者项目经理,你也能实现自己的Spring。虽然你的实现可能无法与开源团队相媲美,但是你肯定可以实现一...

2024-02-27

Spring入门系列:浅析知识点

前言讲解Spring之前,我们首先梳理下Spring有哪些知识点可以进行入手源码分析,比如: Spring IOC依赖注入 Spring AOP切面编程 Spring Bean的声明周期底层原理 Spring 初始化底层...

2024-02-27

如何创建自己的Spring Boot Starter并为其编写单元测试

当我们想要封装一些自定义功能给别人使用的时候,创建Spring Boot Starter的形式是最好的实现方式。如果您还不会构建自己的Spring Boot Starter的话,本文将带你一起创建一个自...

2024-02-27

简单看下最近的Spring Secrurity、Spring漏洞(CVE-2024-22234、CVE-2024-22243)

最近的这两个cve我看国内很多情报将其评为高危,所以想着去看看原理,看完发现都比较简单,利用要求的场景也相对有限(特别是第一个),所以就随便看下就行了Spring Security 用户认...

2024-02-27

java类初始化及代码块加载顺序连根拔起

说明相信很多人对于java中父子继承关系中,子类实例化调用过程中,代码块的执行顺序都容易忘记或搞混,尤其是java初级笔试题或面试题最容易出这类题目,让人恨得牙痒痒!!!本文就一次性...

2024-02-27

Java面向对象之接口和抽象类的区别一目了然

介绍相信对于Java面向对象部分,很多人很长一段时间对于接口和抽象类的区别,使用场景都不是很熟悉,同是作为抽象层重要的对象,工作中到底什么情况下使用抽象类,不是很清楚。本文就...

2024-02-27

Spring Security权限控制框架使用指南

在常用的后台管理系统中,通常都会有访问权限控制的需求,用于限制不同人员对于接口的访问能力,如果用户不具备指定的权限,则不能访问某些接口。本文将用 waynboot-mall 项目举例...

2024-02-27

解析Spring中的循环依赖问题:初探三级缓存

什么是循环依赖?这个情况很简单,即A对象依赖B对象,同时B对象也依赖A对象,让我们来简单看一下。// A依赖了Bclass A{ public B b;}// B依赖了Aclass B{ public A a;}这种循环依赖...

2024-02-27

从零开始学Spring Boot系列-Hello World

欢迎来到从零开始学Spring Boot的旅程!在这个系列的第二篇文章中,我们将从一个非常基础但重要的示例开始:创建一个简单的Spring Boot应用程序,并输出“Hello World”...

2024-02-26

教你如何判断Java代码中异步操作是否完成

本文分享自华为云社区《java代码实现异步返回结果如何判断异步执行完成》,作者: 皮牙子抓饭。在许多应用程序中,我们经常使用异步操作来提高性能和响应度。在Java中,我们可以使...

2024-02-26

玩转SpringBoot:动态排除Starter配置,轻松部署

引言在软件开发中,进行本地单元测试是一项常规且必要的任务。然而,在进行单元测试时,有时需要启动一些中间件服务,如Kafka、Elasticjob等。举例来说,我曾经遇到过一个问题:项目中...

2024-02-25

【libGDX】使用Mesh绘制三角形

1 Mesh 和 ShaderProgram 简介1.1 创建 Mesh​ 1)Mesh 的构造方法public Mesh(boolean isStatic, int maxVertices, int maxIndices, VertexAttribute... attributes)public...

2024-02-25

java面向对象之封装-抽象-继承-组合-多态五种概念一网打尽

说明曾经在学习java面向对象时,你是否会为面向对象的封装-继承-抽象-多态-组合等各种概念搞得稀里糊涂,乃至反复阅读,背诵其相关概念,结果一段时间过后又还给了时间。。。
这种...

2024-02-25

原来你是这样的JAVA--[07]聊聊Integer和BigDecimal

今天来聊聊Java中跟数值处理相关的两个类型Integer和BigDecimal。 说起这两个类型,我们肯定都不陌生,但是其中有些容易踩到的坑需要注意避让。Integer整型我们应该每天都会用...

2024-02-25

责任链模式与spring容器的搭配应用

背景有个需求,原先只涉及到一种A情况设备的筛选,每次筛选会经过多个流程,比如先a功能,a功能通过再筛选b功能,然后再筛选c功能,以此类推。现在新增了另外一种B情况的筛选,B情况同样...

2024-02-22

Java里使用AspectJ实现AOP

已经正式从NET转型JAVA。今后开始多写一点JAVA相关的文章。因为已经正式转Java了,所以,对于Java的一些判断,应该就比以前更准确了。总得来说,java有好的东西,有不好的东西,就语言...

2024-02-22
返回顶部
顶部