Java多线程编程基石ThreadPoolExecutor示例详解

目录前言为什么用线程池参数介绍核心线程数和最大线程数设置使用示例线程池执行任务的流程线程池执行流程图源码解读基础属性和变量execute(Runnable command)addWorker(Run...

2023-05-29

PageHelper引发的幽灵数据问题解析

目录前言大胆猜测PageHelper工作原理Tomcat请求流程总结前言最近测试反馈一个问题,某个查询全量信息的接口,有时候返回全量数据,符合预期,但是偶尔又只返回1条数据,简直就是&ldqu...

2023-05-29

SpringBoot实现加载yml文件中字典数据

将字典数据,配置在 yml 文件中,通过加载yml将数据加载到 Map中Spring Boot 中 yml 配置、引用其它 yml 中的配置。# 在配置文件目录(如:resources)下新建application-xxx必须以ap...

2023-05-29

ThreadLocal导致JVM内存泄漏原因探究

目录为什么要使用ThreadLocal使用ThreadLocal具体实现引发内存泄漏的原因为什么要使用ThreadLocal在一整个业务逻辑流程中,为了在不同的地方或者不同的方法中使用同一个对象,...

2023-05-29

SpringBoot起步依赖和自动配置基本介绍

目录1、起步依赖2、自动配置1、起步依赖概念
起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起支持某一功能。简单...

2023-05-29

如何用Java实现简单聊天机器人

创建数据库和表,准备表数据(MySQL)首先创建一个数据库android
然后创建一个表dictionary,字段:id int
receive varchar(100)
response varchar(100)receive 表示受到的信息
respo...

2023-05-29

java二分查找怎么实现迭代

1.迭代概念对一组指令或一定步骤进行重复执行称为迭代(iterator)。通俗点说,叫一个个数过去。实现这样一个个数过去功能的东西,叫迭代器。2.迭代三要素1.确定变量在可以用迭代...

2023-05-29

SpringBoot中怎么利用AOP和拦截器实现自定义注解

Spring实现自定义注解通过拦截器+AOP实现自定义注解的实现,在这里拦截器充当在指定注解处要执行的方法,aop负责将拦截器的方法和要注解生效的地方做一个织入(通过动态注解生成...

2023-05-29

Nginx+SpringBoot怎么实现负载均衡

负载均衡介绍在介绍nginx的负载均衡实现之前,先简单的说下负载均衡的分类,主要分为硬件负载均衡和软件负载均衡,硬件负载均衡是使用专门的软件和硬件相结合的设备,设备商会提供...

2023-05-29

Springboot+AOP怎么实现返回数据提示语国际化

先看这次示例教学的项目 目录结构:(当然resource里面的i18n文件夹和三个properties文件也是要我们自己建的,但是 那个Resource Bundle 不用管,这个在yml加上对应配置项自动生成...

2023-05-29

Springboot文件上传功能怎么实现

1.新建文件上传页面在static目录中新建upload-test.html,上传页面代码如下所示:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>springboot文件...

2023-05-29

java数组怎么访问和迭代

1、数组的访问数组名称[索引],如a[0]、a[1]注意事项数组索引从0开始。索引的数据类型是整形索引的值和数组长度总是差1。2、数组的迭代(1)for循环int [] b1 = new int []{1,2,3...

2023-05-29

怎么使用Java计算修改文件的MD5值

什么是 MD5 ?MD5(Message Digest Algorithm,信息摘要算法),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。它后面这个数...

2023-05-29

Idea如何启动多个SpringBoot项目

一、准备工作使用Idea构建一个hello world的Spring Boot项目。开发环境说明:(1)Spring Boot 2.7.0(2)Idea:IntelliJ IDEA 2022.2.2(3)OS:Mac OS环境不太一样,有些操作是有些微区别的,但...

2023-05-29

java中kotlin函数如何使用

1、说明(1)Kotlin提供了扩展函数的语言功能,借助于该功能,我们可以为任何对象添加定制方法。(2)编译后,使用javap查看生成SayHelloKt.class文件的字节码。2、实例//SayHello.ktpack...

2023-05-29

Java集合框架的数据结构是什么

1、什么是集合框架?在java中,有一套现成的数据结构,例如顺序表,链表,队列,栈,优先级队列,哈希表等,被封装成了相应的接口/类,供程序员直接使用,只需要创建相关的对象即可以使用,而不需要...

2023-05-29

怎么在springboot中自定义Starter

自定义Starter命名规则注意artifactId的命名规则,Spring官方Starter通常命名为spring-boot-starter-{name}如 spring-boot-starter-web, Spring官方建议非官方Starter命名应遵...

2023-05-29

SpringBoot如何访问jsp页面

1.添加pom依赖首先在原来的pom文件基础上加上这两个配置<!-- tomcat 的支持.--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spr...

2023-05-29

Java基础之volatile应用实例分析

问:请谈谈你对volatile的理解?
答:volatile是Java虚拟机提供的轻量级的同步机制,它有3个特性:
1)保证可见性
2)不保证原子性
3)禁止指令重排刚学完java基础,如果有人问你什么是volatile?它...

2023-05-29

Java并发编程之LongAdder源码分析

前言根据源码来分析一下它的基本实现流程。This class is usually preferable to AtomicLong when multiple threads update a common sum that is used for purposes such...

2023-05-29

Java GUI编程菜单组件怎么用

下表中给出常见的菜单相关组件: 菜单组件名称 功能 MenuBar 菜单条 , 菜单的容器 。 Menu 菜单组件 , 菜单项的容器 。 它也是Menultem的子类 ,所以可作...

2023-05-29

springboot项目启动后的执行方法有哪些

1 方法 ApplicationListener< ContextRefreshedEvent> 不推荐 ApplicationListener 推荐 CommandLineRunner 推荐方法1:spring的ApplicationListener< ContextRefreshedE...

2023-05-29

SpringBoot怎么使用Schedule实现定时任务

0. 开发环境IDE:IntelliJ IDEA 2017.1 x64jdk:1.8.0_91Spring Boot:2.1.1.RELEASE1. 简单定时任务对于一些比较简单的定时任务,比如固定时间间隔执行固定方法,在标准Java方法上注...

2023-05-29

SpringBoot怎么配置和切换Tomcat

1.基本介绍SpringBoot 支持的 webServer: Tomcat, Jetty, or UndertowSpringBoot 应用启动是 Web 应用时。web 场景包-导入 tomcat支持对 Tomcat(也可以是 Jetty 、Undertow...

2023-05-29

springboot怎么更新配置Swagger3

1.引入依赖,版本3.0.0只引入一个即可<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <...

2023-05-29

Java项目如何防止SQL注入

一、什么是SQL注入SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员...

2023-05-29

小程序怎么与后端Java接口交互实现HelloWorld

第一步:后端简单建个SpringBoot项目,提供一个 helloWorld接口;版本选用 2.2.6.RELEASEpackage com.java1234.controller;import org.springframework.web.bind.annotation.GetM...

2023-05-29

Java Hibernate中一对多和多对多关系的映射方式是什么

Hibernate的一对多和多对多Hibernate是一种出色的ORM框架,简化了Java应用程序与关系型数据库之间的数据访问。在Hibernate中,复杂的数据模型可以使用一对多和多对多关系来处理...

2023-05-29

Java如何实现字符串和输入流的相互转换

字符串和输入流的相互转换在读取网络资源时经常要用到字符串和输入流之间的相互转化,找到了些方法,记录一下。将字符串转化为输入流,代码如下:public static InputStream getStr...

2023-05-29

SpringBoot的HTTPS配置如何实现

HTTPS 配置由于HTTPS具有良好的安全性,在开发中得到了越来越广泛的应用,像微信公众号、小程序等的开发都要使用HTTPS来完成。对于个人开发者而言,一个HTTPS 证书的价格还是有点...

2023-05-29

Java实现添加文字水印&图片水印的方法详解

目录为什么要给图片添加水印绘制文字水印动态计算字符串的宽度自适应文字水印位置绘制图片水印提升图片处理速度为什么要给图片添加水印为图片添加水印的主要作用是保护图片...

2023-05-29

java大话之创建型设计模式教程示例

目录前言1. 原型模式2. 建造者模式3. 工厂模式4. 单例模式5. 总结前言本文针对一些基础的知识进行一下总结。创建型模式相对其它两种模式也比较简单,用的地方也会更多,理解起...

2023-05-29

GraalVM系列Native Image Basics静态分析

目录引言Build Time vs Run TimeNative Image Heap静态分析引言native image是GraalVM中提供的一个命令,可以把字节码文件或Jar包编译成为一个二进制可执行文件,同时它自己也...

2023-05-29

SpringBoot注解@ConditionalOnClass底层源码实现

目录@ConditionalOnClass的底层源码实现ConditionOutcome对象ClassNameFilter.MISSING判断某类是否不存在@ConditionalOnClass的底层源码实现在SpringBoot中,支持了很多种条...

2023-05-29

Spring BeanFactory工厂使用教程

首先,我们想要知道一个接口有哪些功能,就必须要看这个接口的源代码,在idea中,选中这个接口Ctrl+F12,来查看这个接口里面有哪些方法:表面上来看,功能其实很少,查看源码及其方法、功能...

2023-05-29

Spring ApplicationContext接口功能详细介绍

第一步,我们先来看这个接口的内部结构,了解别人的内部,知己知彼,百战不殆:这个接口的扩展功能主要体现在它继承的四个接口上:MessageSource:国际化功能ResourcePatternResolver: 资...

2023-05-29

详解在SpringBoot如何优雅的使用多线程

目录快速使用 获取异步方法返回值 注意事项 本文带你快速了解@Async注解的用法,包括异步方法无返回值、有返回值,最后总结了@Async注解失效的几个坑。在 SpringBoot 应用中,经...

2023-05-26

Vue+ElementUI+Springboot的基础知识是什么

一、旧世界的Web后端(1)刚开始,web后端基本都是php写的,脚本化的语言,嵌入到HTML里面很方便。(2)然后Java开始发力,JSP+Servlet成为主流。(3)发现Java又臭又长,开始把一些常用的思路封...

2023-05-26

多方面解读Java中的volatile关键字

目录介绍作用保证变量的可见性:禁止指令重排:不能保证原子性可见性、有序性、原子性不会导致线程阻塞使用场景实现原理happens-before局限性和 synchronized 关键字比较和 Ato...

2023-05-17

使用java.nio.file 库优雅的操作文件详解

目录概述Path 路径Files 文件FileSystems 文件系统WatchService 文件监控PathMatcher 文件匹配读文件内容小文件大文件总结概述在早期的 Java 版本中,文件 IO 操作功能一直相...

2023-05-17

利用Mybatis Plus实现一个SQL拦截器

目录起源实现拦截器接口InnerInterceptor修改sql常用的工具类起源最近公司要做多租户,Mybatis-Plus的多租户插件很好用,但是有一个场景是:字典表或者某些数据表,一些数据需要在...

2023-05-17

关于Java多线程上下文切换的总结

目录什么是上下文切换上下文切换代码测试引起线程上下文切换的原因如何减少上下文切换什么是上下文切换即使是单核CPU也支持多线程执行代码,CPU通过给每个线程分配CPU时间片...

2023-05-17

RocketMQ之Consumer整体介绍启动源码分析

目录前言Consumer整体介绍Consumer实现类Consumer消费类型DefaultMQPushConsumer主要APIDefaultMQPushConsumer关键属性Consumer消费模式Consumer消费策略Consumer使用Defau...

2023-05-17

Java中Object用法详解

目录一. Object简介1. 简介二. 常用方法1. clone()方法1.1 clone方法作用1.2 clone源码分析1.3 Java的浅克隆与深克隆2. hashCode()方法2.1 简介2.2 hash值2.3 案例3. equal...

2023-05-17

RocketMQ消息存储文件的加载与恢复机制源码分析

目录前言StoreCheckPoint介绍StoreCheckPoint时间戳更新时机StoreCheckPoint刷盘源码消息加载源码分析CommitLog加载ConsumeQueue加载IndexFile加载ConsumeQueue与IndexFile...

2023-05-17

分布式消息队列RocketMQ概念详解

目录1.MQ概述1.1 RocketMQ简介1.2 MQ用途1.3 常见MQ产品2.RocketMQ 基本概念2.1 消息2.2 主题2.3 标签2.4 队列2.5 Producer2.6 Consumer2.7 NameServer2.8 Broker2.9 Rocke...

2023-05-17

RocketMQ 源码分析Broker消息刷盘服务

目录前言刷盘服务源码分析CommitRealTimeService刷盘源码分析FlushRealTimeService刷盘源码分析GroupCommitService刷盘源码分析总结前言上篇文章我们介绍了消息刷盘的四种...

2023-05-17

一分钟掌握Java Quartz定时任务

目录前言角色介绍官方例子Quartz如何分布式?跟着官方例子看源码Trigger的处理结合起来总结前言前几篇介绍了单体架构的定时任务解决方式,但是现代软件架构由于业务复杂度高,业...

2023-05-17

Java 在 Array 和 Set 之间进行转换的示例

目录概述从 List 转换为 Set使用原生 Java 代码使用 Guava使用 Apache Commons Collections从 Set 转换为 Array使用原生 Java使用 Guava结论概述在本文章中,我们对如何在 Ja...

2023-05-17

一文带你掌握Java中的HashSet

HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。HashSet 实现了 Set 接口。HashSet 允许有 null 值。HashSet 是无序的,即不会记录插入的顺序。HashSet 不是线...

2023-05-17
返回顶部
顶部