自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(233)
  • 资源 (9)
  • 问答 (1)
  • 收藏
  • 关注

原创 Java8 Optional类使用总结

相信不少小伙伴已经被java的NPE(NullPointer Exception)所谓的空指针异常搞的头昏脑涨, 有大佬说过“防止 NPE,是程序员的基本修养。”但是修养归修养,也是我们程序员最头疼的问题之一,那么我们今天就要尽可能的利用Java8的新特性 Optional来尽量简化代码同时高效处理NPE(NullPointer Exception 空指针异常)。

2024-04-23 18:13:21 556

原创 一键生成数据库文档,从此告别人工整理文档

在我们日常开发过程中,常常遇到项目需要出一个数据库文档,面对数据表众多的场景一个一个写显然不现实,于是 screw工具很好的满足了我们的需求,从此告别人工整理文档; screw工具它可以将整个数据库的表输出为数据库表结构文档,因此后续无论是在做分析或是熟悉表结构都能提升很大效率。

2024-04-20 17:52:38 316

原创 SQL查找是否“存在“,别再count了!

根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢?

2024-04-13 19:46:18 115

原创 基于Redis实现重复提交问题的解决方案【附源码】

参考美团GTIS防重系统实现重复提交问题的解决方案

2024-04-13 19:44:45 314

原创 MySQL常见日期时间函数总结【建议收藏】

FROM_UNIXTIME(timestamp)函数:是将UNIX时间戳转化为日期时间,与UNIX_TIMESTAMP(date)函数互为反函数。注意:在使用STR_TO_DATE函数时,请确保传入的日期字符串和格式字符串的格式匹配,否则可能会得到错误的结果。DATEDIFF(expr1,expr2)函数:返回expr1−expr2,以从一个日期到另一个日期的天数表示。expr1和expr2是日期或日期和时间表达式;NOW()函数用于返回当前日期和时间,包含年、月、日、时、分、秒!为表示日期格式的字符串。

2024-04-12 16:35:41 329

原创 一文掌握线程池实现原理

Java在使用线程执行程序时,需要调用操作系统内核的API创建一个内核线程,操作系统要为线程分配一系列的资源;当该Java线程被终止时,对应的内核线程也会被回收。因此,频繁的创建和销毁线程需要消耗大量资源。此外,由于CPU核数有限,大量的线程上下文切换会增加系统的性能开销,无限制地创建线程还可能导致内存溢出。为此,Java在JDK1.5版本中引入了线程池。

2024-04-05 08:45:22 705

转载 30个业务场景的SQL优化【建议收藏】

30个业务场景的SQL优化,覆盖全部场景!

2024-03-29 21:22:47 32

原创 一文掌握CyclicBarrier实现原理【建议收藏】

CyclicBarrier(循环屏障)是一个同步工具类,通过CyclicBarrier可以实现一组线程等待至某个屏障点之后再全部同时执行(即:线程之间相互等待)。

2024-03-26 20:35:59 745

原创 List与String相互转化的几种方式

List与String相互转化的几种方式归纳

2024-03-24 10:59:17 1514

原创 一文掌握ThreadLocal实现原理【建议收藏】

ThreadLocal是线程本地变量,每个线程私有。ThreadLocal的主要作用是通过拷贝变量的副本到每个线程中,保证多个线程同时访问变量的数据安全性。

2024-03-24 10:56:29 936

原创 项目需求:实现 PDF 添加水印,这五种方案送上!

PDF(Portable Document Format,便携式文档格式)是一种流行的文件格式,它可以在多个操作系统和应用程序中进行查看和打印。在某些情况下,我们需要对 PDF 文件添加水印,以使其更具有辨识度或者保护其版权。本文将介绍如何使用 Spring Boot 来实现 PDF 添加水印的方式。

2024-03-17 10:08:45 934

原创 Spring Boot轻松整合Minio实现文件上传下载功能【建议收藏】

当然,也可以直接访问minio的地址:http://IP地址:9001/xk-admin/1710558001536.jpg。控制台日志重定向到/usr/local/minio/minio.log文件中。测试接口:http://localhost:8099/oss/download。测试接口:http://localhost:8099/oss/upload。测试接口:http://localhost:8099/oss/info。测试接口:http://localhost:8099/oss/url。

2024-03-16 18:00:54 1101

原创 10个高级的 SQL 查询技巧

如果您注意到,CTE很有用,因为您可以将代码分解为较小的块,但它们也很有用,因为它允许您为每个CTE分配变量名称(即。递归CTE尤其有用,它涉及查询组织结构图,文件系统,网页之间的链接图等的分层数据,尤其有用。示例问题:给定下面的员工表,写出一个SQL查询,了解员工的工资,这些员工比其管理人员工资更多。例如,如果您有一个月列,并且您希望为每个月创建一个单个列,则可以使用语句追溯数据的情况。示例问题:给定天气表,写一个SQL查询,以查找与其上一个(昨天)日期相比的温度较高的所有日期的ID。

2024-03-10 20:37:41 842

原创 CountDownLatch实现原理全面解析

CountDownLatch是一个同步工具类,用来协调多个线程之间的同步(即:用于线程之间的通信而不是互斥)。它允许一个或多个线程进入等待状态,直到其他线程执行完毕后,这些等待的线程才继续执行。

2024-03-07 20:43:12 1016

原创 多人同时导出 Excel 干崩服务器?怎样实现一个简单排队导出功能!

业务诉求:考虑到数据库数据日渐增多,导出会有全量数据的导出,多人同时导出可以会对服务性能造成影响,导出涉及到mysql查询的io操作,还涉及文件输入、输出流的io操作,所以对服务器的性能会影响的比较大;结合以上原因,对导出操作进行排队;

2024-03-03 10:08:56 379

原创 Semaphore实现原理全面解析

Semaphore(信号量)是一个同步工具类,通过Semaphore可以控制同时访问共享资源的线程个数。

2024-02-25 14:28:29 895

原创 全面探索Spring框架中的事件处理机制

在现代应用程序中,各个组件之间的通信是至关重要的。想象一下,你的应用程序中的各个模块像是一个巨大的交响乐团,每个模块都是一位音乐家,而Spring事件机制就像是指挥家,将所有音乐家协调得天衣无缝。这种松耦合的通信方式使你的应用程序更加灵活、可维护,而且能够轻松应对变化。现在,让我们进入这个令人兴奋的音乐厅,探索Spring事件的世界。在Spring框架中,事件(Events)是一种基本概念,用于实现松耦合的通信方式,允许不同组件之间进行相互通知和协作。

2024-02-21 19:25:56 857

原创 CopyOnWriteArrayList底层原理全面解析【建议收藏】

CopyOnWriteArrayList是Java中的一个线程安全的集合类,是ArrayList线程安全版本,主要通过Copy-On-Write(写时复制,简称COW)机制来保证线程安全。Copy-On-Write机制核心思想:向一个数组中添加数据时,不直接操作原始数组,而是拷贝原始数组生成一份原始数组副本,将需要添加的数据添加到原始数组副本中,操作完成后再用原始数组副本直接替换原始数组,从而保证多个线程同时操作原始数组时的线程安全。

2024-02-07 18:41:23 1215

原创 原理+实战全面探索分布式锁之强大的Redisson【建议收藏】

Redission是一个基于Redis实现的Java分布式对象存储和缓存框架。它提供了丰富的分布式数据结构和服务。例如:分布式锁、分布式队列、分布式Rate Limiter等。

2024-01-26 21:27:12 1012

原创 Java调用shell脚本实现数据库备份功能

# Java调用shell脚本实现数据库备份功能

2024-01-07 12:20:03 445

原创 分布式锁框架Lock4j简单使用

Lock4j是一个分布式锁组件,它提供了多种不同的支持以满足不同性能和环境的需求;它基于Spring AOP,支持RedisTemplate、Redisson、Zookeeper作为底层。

2023-12-03 20:26:59 2045

原创 HashMap源码全面解析

HashMap 是基于哈希表的 `Map接口`的实现,是以 `key-value` 存储形式存在,即主要用来存储键值对。

2023-12-02 21:26:59 889

原创 ArrayList源码全面解析

ArrayList 是 java 集合框架中比较常用的数据结构,继承自 AbstractList,实现了 List 接口。底层采用数组来实现。ArrayList 实现了java.io.Serializable接口,这意味着ArrayList支持序列化,能通过序列化去传输。

2023-11-28 20:12:46 986

原创 学习分布式事务Seata看这一篇就够了,建议收藏

Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。

2023-11-25 18:18:32 917

原创 Spring Boot 整合xxl-job实现分布式定时任务

Spring Boot 整合xxl-job实现分布式定时任务【详细教程】XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

2023-11-12 18:02:34 1469 3

原创 一个轻量级 Java 权限认证框架——Sa-Token

Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权 等一系列权限相关问题。

2023-11-11 20:10:26 412

原创 【日常记录】关于LinkedHashMap中key为数字字符串根据compareTo排序的问题

关于LinkedHashMap中key 转化为字符串根据compareTo排序的问题

2023-11-04 17:35:03 337

原创 IDEA集成Docker插件打包服务镜像与运行【附Docker命令汇总】

IDEA集成Docker插件打包服务镜像与运行【附Docker命令汇总】

2023-11-04 08:53:54 2063

原创 MySQL InnoDB数据存储结构

MySQL InnoDB数据存储结构

2023-11-04 08:50:55 234

原创 Mybatis-Flex框架初体验

MyBatis-Flex 是一个优雅的 MyBatis 增强框架,它非常轻量、同时拥有极高的性能与灵活性。我们可以轻松的使用 Mybaits-Flex 链接任何数据库,其内置的 QueryWrapper亮点 帮助我们极大的减少了 SQL 编写的工作的同时,减少出错的可能性。

2023-09-23 15:40:43 1065 1

原创 【踩坑篇】代码中使用 Long 作为 Map的Key存在的问题

发现转化成的Map的key变为String类型的了,此时get Long类型返回为null。为了由于类型不一致导致的取值问题,现在统一把Map中的key使用string类型。Map 的数据格式。然后,根据业务keyId,去上面接口返回的map取值,发现一直为null。本周的工作结束,详述一些在项目代码中实际遇到的一些坑。

2023-09-17 11:26:51 1001 1

原创 Mysql的逻辑架构、存储引擎

MySQL的逻辑架构、存储引擎

2023-09-16 20:48:20 412

原创 使用HashMap的values()方法返回的值转换为List时遇到错误

使用HashMap的values()方法返回的值转化为List遇到的问题

2023-09-04 21:05:36 452

原创 MySQL怎样删除重复数据,只保留一条?

在实际工作开发过程中,常常会遇到数据库表中存在多条数据重复了,此时我们需要删除重复数据,只保留其中一条有效的数据;导致这一原因的问题是:不能在同一表中查询的数据作为同一表的更新数据。针对这种场景,我们用SQL语句该怎么实现呢?对于重复数据,保留一条数据筛选。使用having语句进行筛选。

2023-08-29 21:45:57 2693

原创 Java开发面试题 | 2023

Java基础接口和抽象类的区别?Java动态代理HashMap 底层实现及put元素的具体过程currenthashmap底层实现原理?map可以放null值吗,currenthashmap为什么不能放null值synchronze和reetrantlock区别?怎样停止一个运行中的线程?什么是悲观锁、乐观锁、公平锁、非公平锁String、StringBuffer、StringBuilder的区别Set是如何保证元素不重复的ArrayList与LinkedList哪个更占空间?为什么

2023-08-20 22:23:26 275

原创 Linux服务器软件安装教程及项目部署【建议收藏】

进入Oracle数据库官网http://www.oracle.com/ 下载相应的版本,下载完成后将两个压缩包解压到同一个目录下面!这个关键字的作用是编译的时候用于指定程序存放的路径,假设不添加该关键字Linux会将可执行文件存放在。链接:https://pan.baidu.com/s/11m4dRSfbRpb_pQFDPbUzDw。注意:tar.xz的文件,是两层压缩,外面是xz压缩,里层是tar压缩,因此分两步实现解压。在这里为了方便,和前端项目放在同一个目录下面!这里我放在了下面的这个路径下面!

2023-04-28 14:12:39 3013 1

原创 如何使用Stream流将List转换为Map

【代码】如何使用Stream流将List转换为Map。

2023-03-19 10:33:03 2867

原创 Oracle中merge Into的用法

Oracle中merge Into的用法:在操作数据库时,数据存在的情况下,进行update操作;不存在的情况下,进行insert操作;在Oracle数据库中,能够使用merge into来实现。

2023-03-05 10:15:58 2149

原创 【问题解决】nested exception is org.apache.ibatis.exceptions.TooManyResultException:Expected one result

今天在调试项目的时候,控制台出现了如下的报错信息,从下面报错信息可以明白大致的意思是:出现了过多的结果返回值,只希望得到一个值,但是现在返回了2个。

2023-02-26 10:27:21 1885

原创 SpringCloud Alibaba集成Dubbo实现远程服务间调用

SpringCloud Alibaba集成Dubbo实现远程服务调用

2023-02-19 10:19:18 975

【安卓项目】——新闻资讯类项目

该项目附有详细的教程:https://blog.csdn.net/weixin_43759352/article/details/106447410 Android学习笔记(一)——创建第一个Android项目 Android学习笔记(二)android studio基本控件及布局(实现图片查看器) Android学习笔记(三)android studio中CheckBox自定义样式(更换复选框左侧的勾选图像) Android学习笔记(四)Android 中Activity页面的跳转及传值 Android学习笔记(五)——Toast提示、Dialog对话框、Menu菜单 Android学习笔记(六)——自定义ListView布局+AsyncTask异步任务 Android学习笔记(七)——数据存储(共享参数SharedPreferences) Android学习笔记(八)——数据存储(SD卡文件操作) Android学习笔记(九)——网络技术 Android学习笔记(十)——实现新闻列表案例 Android学习笔记(十一)——一些高级控件的使用 Android学习笔记(十二)——数据存储(SQLite数据库) Android学习笔记(十三)——数据存储(LitePal操作数据库) Android学习笔记(十四)——内容提供器 Android学习笔记(十五)——侧滑容器(ViewPager) ......

2021-10-23

vs 2010 +sql server 2017.rar

ASP.NET 员工管理、供应商管理、客户管理、商品入库、商品出库、统计图设计、货架管理等,下载报表等功能。mvc 设计模式,ajax传值统计。

2021-05-28

Android漂亮的UI界面.rar

本资源是Android的一些漂亮UI界面,包括:对话框、菜单、漂亮弹出框、下拉刷新、跳转动画等等。适合在项目中直接使用。

2020-07-09

初学Android小项目.rar

Android的一些基础的小项目,从第一课到第九课,其中包括几个典型的案例:音乐播放器、数据存储、访问网络实现新闻列表、水果列表等等。适合初学者学习、研究。每一课的项目分别附有运行的项目效果。如有疑问:可以进行后台留言哦。

2020-07-06

Unity3D小游戏(雪地战斗)

用unity做的小游戏,使用的版本是2019.1.1;雪地战斗;包含游戏完整项目;适合新手学习;雪地场景;包含人物的各种动作;

2020-07-04

Android——LitePal操作数据库的案例.rar

该案例涉及到了许多知识点的综合,LitePal操作数据库实现增删改查功能、城市选择的三级联动、自定义适配器、跑马灯等。本案例适合学习Android的初学者使用学习、容易上手。

2020-05-03

图书管理系统小程序.rar

该项目主要实现了,通过扫码借书、还书功能、浏览书籍、查看书籍的相关信息、收藏功能、数据的更新显示、权限设置、更改个人信息等功能。小程序端通过发送请求给服务器,服务器端进行相关请求的处理。处理请求端使用的idea创建的Mavan项目。该项目资料齐全,包含数据库文件,适合初学者使用!

2020-03-20

vue+springboot实现登录功能.rar

该项目结构完整,代码齐全,配有运行说明文档,前后端分离,主要用到了vue、springboot与Mybatis整合,Mysql数据库,适合初学者使用,通过一个简单的登录实例,了解运行原理。

2020-03-16

java将字符串反转几种方法总结.rar

提供详细的解释过程、附有源代码测试程序、方便初学者使用、并有解释文档。对每一种方法都有详细的说明。对各个方法都能理解。

2020-02-05

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除