自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 资源 (1)
  • 收藏
  • 关注

原创 MYSQL(五)--权限体系详解与动态权限迁移

MySQL 8.4权限体系深度解析:MySQL 8.4权限体系分为静态和动态权限两大类型,着重强化了安全控制的细粒度。静态权限包括传统的SELECT、INSERT等基础操作,而动态权限如SYSTEM_VARIABLES_ADMIN则提供了更精准的系统管理能力。教程详细对比了二者的差异,并指导如何将弃用的SUPER权限安全迁移为动态权限组合。文章还涵盖了权限分类、授予最佳实践、持久化操作等内容,强调最小权限原则的应用。这些改进显著提升了MySQL的安全管理能力,为DBA提供了更完善的权限控制方案。

2025-06-11 13:04:08 422

原创 MYSQL(四)-- 用户账户与权限管理解析

《MySQL账户与权限管理指南》摘要 本文系统讲解了MySQL 8.4的用户账户与权限管理体系。重点内容包括:1)账户结构采用用户名@主机名的绑定方式;2)多种认证插件支持;3)两阶段权限校验机制(连接认证+请求授权);4)账户创建、授权、撤销等核心命令;5)Windows/Linux系统配置文件路径;6)权限刷新机制及安全实践建议。文章强调最小权限原则,并提供常用命令示例,帮助DBA和开发者构建安全的数据库访问控制体系。(149字)

2025-06-11 13:03:51 243

原创 MYSQL(三)--服务器启动参数与配置

MySQL 服务器 mysqld 提供了丰富的 启动命令选项,用于控制服务器的各种行为,包括 安全性、日志管理、复制、插件管理、SQL 模式、存储引擎等。在 MySQL 8.4 版本中,一些新的选项被引入,一些旧选项被弃用或移除。本篇文章将系统性地介绍 MySQL 服务器启动选项,包括 常见选项、SQL 相关选项、安全性相关选项、日志与调试选项、存储引擎选项、以及新版本的变化,帮助 DBA 及开发者合理优化 MySQL 服务器的运行参数。

2025-06-05 15:42:38 754

原创 Java 9 新特性全整理

✅ Java 9 虽非 LTS,但引入的模块系统、jshell、HTTP Client、Stream 增强等,是 Java 从“平台型语言”向“现代开发平台”转型的关键拐点。🌱 它是 Java 10~21 的基础奠基者,值得深入理解。如需将本文导出为 PDF 或 Markdown 文件,请留言获取!📬。

2025-06-05 15:31:27 996

原创 MYSQL(二) ---MySQL 8.4 新特性与变量变更

MySQL 8.4 版本对数据库管理、性能优化和安全机制进行了 重大改进,包括 新增审计日志、组复制、性能模式、认证安全性 相关变量,同时 弃用 了部分旧变量,并 移除 了一些过时的选项,如部分 SSL 相关变量、旧的认证插件等。本篇文章将详细解析 MySQL 8.4 的更新内容,并提供相应的 使用场景及优化建议,帮助开发者 顺利迁移并利用新特性提升数据库性能与安全性。

2025-06-04 14:14:30 919

原创 MYSQL(一)----什么是mysql

MySQL是一种开源的关系型数据库管理系统,由Oracle公司开发、分发和支持。​它以高性能、可靠性和易用性著称,广泛应用于各种规模的应用程序中。​作为关系型数据库,MySQL将数据存储在独立的表中,而不是将所有数据放在一个大的存储区中。​这种结构提高了数据的组织性和访问效率。​此外,MySQL遵循ANSI/ISO SQL标准,支持多种SQL版本。​MySQL的开源特性使得任何人都可以使用和修改软件。​用户可以免费下载MySQL,并根据需要研究或更改其源代码。

2025-06-04 14:10:32 643

原创 Java 溯本求源之基础(三十六)——String 与 Date 类

本文介绍了Java中String和Date两个核心类的特性及使用方法。String类具有不可变性和字符串池优化特点,文章详细讲解了字符串创建、拼接及常用方法,推荐使用StringBuilder进行高效拼接。Date类用于处理日期时间,但建议使用Java8引入的java.time包中的LocalDateTime等类,因其具有更好的API设计和线程安全性。文章还对比了两类的最佳实践:字符串操作应避免频繁拼接,日期处理优先选择新时间API。这些技巧能有效提升代码性能和可维护性。

2025-06-03 10:42:20 346

原创 Java 溯本求源之基础(三十五)——异常与错误

Java异常处理机制概述 Java将程序执行中的问题分为异常(Exception)和错误(Error)两大类。异常是程序可预见处理的问题,分为检查型异常(CheckedException)和非检查型异常(UncheckedException/RuntimeException);错误(Error)则是JVM无法处理的严重问题。异常处理主要通过try-catch-finally块实现:try块包含可能抛出异常的代码,catch块按顺序处理不同类型的异常。检查型异常必须显式处理,而非检查型异常可选择性处理。该机制

2025-06-03 10:29:42 185

原创 Java 溯本求源之基础(三十四)——注解

在 Java 中,注解通过@interface关键字定义,类似于定义一个接口。注解可以定义成员,这些成员可以在使用注解时指定值,也可以有默认值。// 默认值注解的定义格式访问修饰符 @interface 注解名 {// 可选的成员(属性)返回值类型 成员名() default 默认值;注解在 Java 中是一种重要的元数据机制,它提供了一种声明性的方法来为程序元素附加信息。注解本身不会直接改变程序的逻辑,但通过反射、编译时处理器或框架,它们可以影响程序的行为。

2025-01-05 15:42:23 463

原创 Java 溯本求源之基础(三十三)——接口

java接口的定义使用。

2024-12-30 00:27:33 724

原创 Java 溯本求源之基础(三十二)——内部类

内部类是 Java 提供的强大特性,它使得程序设计更加灵活,尤其在处理一些与外部类紧密相关的逻辑时,能够提供更好的封装性和代码结构。理解并掌握内部类的使用,能够让我们在开发中更加高效地组织代码,提升代码的可维护性和可扩展性。通过合理使用成员内部类、局部内部类、匿名内部类和静态内部类,可以让我们的代码更加简洁、灵活、清晰,并能够解决许多复杂的编程问题。在实际开发中,灵活运用内部类,可以使我们写出更优雅的代码。

2024-12-29 23:32:24 765

原创 Java 溯本求源之基础(三十一)——泛型

Java 中的泛型是一个非常强大的特性,它能够帮助我们提高代码的复用性和类型安全性,同时使得代码更加简洁和易读。通过泛型,我们可以在编译时指定类、接口和方法的操作对象的类型,从而提高代码的安全性和复用性。通过泛型,开发者可以编写通用的类、接口和方法,而无需在使用时指定具体的类型,直到编译时才决定具体类型,从而实现代码的类型安全和灵活性。:通过泛型,类、方法和接口可以处理不同类型的数据,避免了重复编写相似代码的需要。是方法级别的泛型,它表示方法的返回类型和参数类型是可以自定义的。泛型还可以应用于接口。

2024-12-28 23:06:01 983

原创 Java 溯本求源之基础(三十)——封装,继承与多态

理解封装、继承和多态,是学习面向对象编程(OOP)的核心。有时在学习这些概念时,可能会因为急于求成而仅仅停留在表面,导致对其内涵和实际应用的理解不够深入。然而,这些特性不仅仅是基础概念,更是开发者理解复杂代码、特别是结合设计模式代码的关键。设计模式的本质正是建立在面向对象三大特性的基础上。通过封装实现模块化,保护对象的状态与行为;通过继承实现代码复用与扩展;通过多态提供灵活的行为替换。它们共同构成了编写高效、可扩展和易维护代码的核心能力。因此,必须深刻理解封装、继承、多态的概念及其在实际开发中的表现。

2024-12-27 09:30:00 1005

原创 Java 溯本求源之基础(二十九)——Queue 集合详解

这意味着元素的插入总是发生在队列的尾部,而元素的访问和移除总是发生在队列的头部。由于它是基于双向链表的实现,插入和删除操作的时间复杂度为 O(1),非常适合需要频繁修改元素的场景。是一个基于优先级堆的队列实现,元素出队的顺序并不是按照加入的顺序,而是根据优先级排序。是一个线程安全的队列接口,常用于生产者消费者模式中,支持阻塞的队列操作。队列是实现生产者消费者模型的理想选择,生产者将数据放入队列,消费者从队列中取出并处理数据。是一个基于数组的双端队列实现,支持双端插入和删除,具有更高的性能。

2024-12-26 09:30:00 1433

原创 java溯本求源之基础(二十八)--Set集合详解

本文详细介绍了 Java 中 Set 接口及其常见实现类(如 HashSet、LinkedHashSet、TreeSet、CopyOnWriteArraySet 和 ConcurrentSkipListSet)的特点、线程安全性、存储结构及适用场景。通过对各实现类的分析,帮助开发者理解如何根据不同需求选择合适的集合类型。文章还提供了 Set 的常用操作、去重、集合运算等应用场景,最终给出了选择集合类的最佳实践,以帮助开发者在项目中做出合理的设计决策。

2024-12-25 10:00:00 898

原创 技术杂谈|从“卡死5分钟”到“秒级响应”:一次代码优化的惊心动魄之旅

小张尴尬地挠挠头:“昨天客户批量导入了100000个用户,结果系统转啊转,硬生生卡了5分钟才完成。”听完这话,整个会议室都安静了,只有空调的嗡嗡声在作响。那是一个平静的早晨,项目组正在例会,小张突然面露难色地说:“老大,昨天的批量创建用户功能上线后,客户反馈系统几乎卡死了。于是,我提出了优化思路:“我们可以把所有需要的用户一次性查出来,然后在内存中进行处理,尽量减少数据库的查询次数和连接开销。老大拍了拍桌子,语气里有点压抑,“这个性能可不行啊,小张,你写的代码呢?”我一愣,问道,“具体什么情况?

2024-12-23 19:07:32 158

原创 技术小谈|java没用的知识又增长了

大家用Java来做的最多的东西就是算法以及一些业务框架,但其实Java的应用范围远不止于此。一个常被忽视的领域是音频编程,Java不仅可以用来生成和播放音乐,甚至可以用于创建复杂的音乐应用。很多人可能对此并不熟悉,因此我将展示一个简单的Demo,旨在抛砖引玉,希望能激发大家探索这一领域的兴趣。

2024-10-28 23:59:46 256

原创 java溯本求源之基础(二十七)--Map常用子类及源码分析(6000字长文)

Map接口定义了一种映射关系,其中每个键(Key)都映射到一个值(Value)。键唯一:一个键只能对应一个值。不保证顺序:不同实现类对键值对的存储顺序有不同的特性。HashMap:基于哈希表实现,提供快速的插入和查找。TreeMap:基于红黑树实现,支持自然排序或定制排序。:结合了HashMap和LinkedList,维护插入顺序。HashMap是Java中最常用的Map实现,底层使用哈希表存储键值对。它的主要优点是快速的插入和查找,时间复杂度为O(1)。

2024-10-28 19:17:57 715

原创 技术小谈|为什么我本地没有乱码,但是生产上一调用就是乱码!

最近在客户生产环境中,我们遇到了一个问题。由于每个开发人员负责的模块不同,通常处理问题时会找对应的模块负责人。然而,当时负责网关模块的同事已经下班,晚上又突然出现了这个问题,无法联系到他,所以我只能自己解决。问题的具体表现是:在本地开发环境中,远程调用接口时一切正常,没有出现乱码,但部署到客户生产环境后,调用同一个接口时却出现了乱码。如果是经验丰富的开发人员,可能已经猜到问题所在,但我们先不急着揭晓答案,让我继续分析。

2024-10-15 20:30:00 395

原创 技术小谈|Map还能这么玩

最近,我在协助同事优化一段批处理任务时,偶然发现了一个有趣的问题。我们使用了一个庞大的HashMap,每次获取数据之前都会调用方法。这就像在寻找一把钥匙之前,先要确认这个钥匙是否存在一样。结果,意外地发现这一步骤造成了一定的速度瓶颈。今天,我想借这个机会和大家分享一下这个小小的发现。直接返回:如果哈希表中存在该键且该键是第一个节点,则直接返回对应的值,不涉及循环。链表查找:如果第一个节点不匹配,且存在后续节点,则通过while循环遍历链表查找,性能可能受到影响,特别是在链表较长的情况下。树结构查找。

2024-10-09 21:34:03 983

原创 java溯本求源之基础(二十六)之--List子类源码分析

Java 集合框架(Java Collections Framework)是每个Java开发者必须熟知的基础部分,而List接口是其中最常见的数据结构之一。在实际开发中,List接口的不同实现类被广泛应用于各种场景。本篇文章通过对JDK 1.8版本的List接口源码分析,结合其子类如ArrayListLinkedList等的实现,探讨其内部工作原理、自动扩容机制以及线程安全问题,帮助开发者更好地理解和优化程序。

2024-10-09 15:37:21 1064

原创 技术小谈|反射和类加载的一个简单应用

面对这个任务,小明觉得如果手动维护太麻烦了,既费时间,又废精力,但他突然想起学习时提到的反射机制以及类加载,似乎可以用来动态获取类的信息。当然这里 作者只是抛砖引玉,这个东西实际上确实有这么个活,然后我把想法告诉了chatgpt,让他按照我说的写出了这段代码,加上调试,以及运行一共也就不到一个小时就搞定了,最后输出成了一个txt的文档,然后转换一下 直接复制到了excel,确实比纯手工维护方便很多,当然肯定会有其他问题,只不过在我这边跑通了而已,这个其实像网上的逆向原理也是差不多的。

2024-09-23 20:17:32 294 1

原创 java溯本求源之基础(二十五)之--ArrayList常用方法介绍

ArrayListArrayList是 Java 集合框架中的一个类,位于java.util包中。它实现了List接口,提供了一个动态数组的功能。与普通数组不同,ArrayList可以在需要时自动调整其容量,以容纳更多的元素。这使得它非常适合用于需要频繁增删元素的场景。先上我最爱的妹子图片嘿嘿!!!ArrayList在 Java 中,ArrayList是通过java.util包中的ArrayList类实现的。它提供了一个可以动态调整大小的数组实现,便于在需要时增加或删除元素。

2024-06-19 09:30:00 940

原创 java溯本求源之基础(二十四)之--常见List的实现共同点

兄弟们终于到了上代码讲代码的环节了,之前的一些代码都是小打小闹,现在才是重头戏,今天来简单说说一些集合,首先这些都是基于数组实现的,当然Collections.emptyList不算奥,别犟。剩下的不多墨迹直接上重点,本次主要介绍的是 ArrayList,CopyOnWriteArrayList,LinkedList,UnmodifiableList,Collections.emptyList。既然放在一起,我们怎么能不说共同点呢?

2024-06-17 21:43:11 328

原创 面试Tip--java创建对象的四种方式

java创建对象一共有四种方式,但是我们在写代码的时候用的new 关键字偏多,像一些接口对接则是序列化创建对象偏多,今天我们来简单介绍下使用场景以及各个方式。

2024-06-03 16:55:09 460

原创 java 溯本求源之基础(二十三)之--Java异常处理

在Java编程语言中,异常处理机制是确保程序健壮性和稳定性的重要组成部分。异常处理允许开发者捕获和处理程序中的错误和异常情况,从而防止程序崩溃并提供友好的错误信息。Java语言规范详细定义了异常的种类、产生原因、处理机制和编译时检查等内容,提供了一套完整的异常处理框架。但是当我们自己写代码的时候,尤其是新手的时候很多情况会有无从下手的情况,所以我们今天简单聊聊。

2024-05-30 20:23:29 751

原创 Spring从零开始学使用系列(四)之@PostConstruct和@PreDestroy注解的使用

在Spring框架中,@PostConstruct和@PreDestroy注解是用于管理Bean生命周期的重要工具。这些注解提供了一种简洁的方式,在Bean的初始化和销毁阶段执行特定的逻辑,从而增强了应用程序的灵活性和可维护性。@PostConstruct注解用于在Bean初始化完成后立即执行特定的方法。这通常用于在依赖注入完成后进行一些初始化操作,例如分配资源或预填充缓存。@PreDestroy注解用于在Bean销毁之前执行特定的方法。

2024-05-26 22:52:07 1542

原创 Spring从零开始学使用系列(三)--Spring框架中@Value注解和配置管理详解

PropertySourcesPlaceholderConfigurer允许我们自定义占位符的前缀和后缀,以便更灵活地处理不同格式的占位符。例如,我们可以使用自定义的前缀和后缀来定义占位符:@Bean// 自定义前缀// 自定义后缀在这个示例中,占位符将使用的格式,而不是默认的格式。@Component在application.properties文件中定义的值:通过这种方式,我们可以使用自定义的前缀和后缀来解析占位符,使配置文件更加灵活和可读。

2024-05-26 21:42:50 1231

原创 java 溯本求源之基础(二十二)之--加载、链接和初始化详解

Java虚拟机(JVM)在执行Java程序时,涉及加载、链接和初始化三个关键过程。这些步骤确保程序能够正确运行并符合语言规范。加载将类的二进制数据读入内存;链接包括验证、准备和解析;初始化则执行类构造器方法,设置静态变量并执行静态代码块。深入了解这些过程有助于优化Java应用的性能和稳定性。

2024-05-23 01:11:09 1223

原创 java 溯本求源之基础(二十一)--从类文件格式到内存管理

Java虚拟机(JVM)是一个抽象计算机,它提供了执行Java字节码的环境。加载字节码:JVM从类文件中加载字节码。类文件包含了Java编译器生成的Java字节码,这些字节码是JVM能够理解和执行的指令集。验证字节码:在执行字节码之前,JVM会进行字节码验证,以确保字节码不违反Java语言规范。验证过程包括检查类的结构、方法的合法性以及指令的正确性。解释或即时编译字节码:JVM可以通过解释器逐行执行字节码,或者通过即时编译(JIT)将字节码编译为机器码以提高执行效率。内存管理。

2024-05-22 21:22:08 628

原创 杂谈|RestFul和http的区别

今天和我一组的小伙伴,在对接一个接口时,客户将DELETED请求设置了body参数,导致一个功能反复搞了半天,今天就来说下这两者的区别HTTP(HyperText Transfer Protocol)是一种用于从WWW(万维网)服务器传输超文本到本地浏览器的传输协议。它使得浏览器可以更加高效地工作,同时减少网络传输量。HTTP采用了请求/响应模型,客户端向服务器发送一个请求,服务器返回相应的响应。请求消息(Request Message):由请求行、请求头、空行和消息体组成。

2024-05-21 17:24:48 4376

原创 什么是JSON?JSON简述

JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人类阅读和编写,同时也易于机器解析和生成。JSON 基于 JavaScript 语言的一个子集,但独立于编程语言。这意味着它可以在许多编程环境中使用,包括但不限于 JavaScript。其设计目标是为了数据传输而优化,具有简洁和灵活的特点。JSON 作为一种轻量级的数据交换格式,具有简洁、易读和高效的特点。它在 Web 开发中得到了广泛应用,尤其是在前后端数据交换和 RESTful API 中。

2024-05-17 10:30:00 2991

原创 java 溯本求源之基础(二十)工具篇总结

工具篇差不多就介绍完了,大约二十篇文章, 也是断断续续更新了大概小半年,下面的图是我整体介绍的一个java工具学习路线。有些内容起到抛砖引玉的作用,有些文章还加了一些我平常遇到问题的时候使用的场景。总的来说我们还是要熟练使用一些东西才能在日常工作中游刃有余。希望各位开发同事能够在工具篇中得到些启发。最后溯本求源栏准备开始更新API类型,以及jdk代码的介绍。

2024-05-16 15:26:57 273

原创 java 溯本求源之基础(十九)之Monitoring--jconsole

本文介绍了Java管理工具JConsole的主要功能和应用场景。JConsole能够实时监控Java应用的关键性能指标,如内存使用、CPU负载和线程状态,帮助开发者及时发现并解决性能问题,优化应用性能。文章通过具体实例展示了如何使用JConsole监控和诊断Java应用,突出了其在性能调优和系统健康监控中的重要作用。JConsole作为一个不可或缺的工具,对提升Java应用的稳定性和效率具有重要意义。

2024-05-16 14:00:00 1548

原创 从日常开发到生涯思考:我的程序员之路(一)

最后,关于我更新博客的频率和内容,我希望能开启新的思路,帮助我们在实际工作中更好地解决问题。虽然有些内容看似不起眼,但正是这些细节构成了我们能力的全貌。

2024-05-11 19:39:15 438 1

原创 Spring从零开始学使用系列(五)--Bean定义继承与容器扩展点

Bean定义继承允许开发者通过“模板”Bean简化共同配置,从而提高配置的复用性和可维护性。这类似于面向对象编程中的类继承,但专注于配置而非行为。掌握Spring的这些高级功能将使您能够构建更加健壮、可维护和灵活的企业级应用。随着对这些功能的深入理解和实践。

2024-05-07 17:43:59 475

原创 Spring从零开始学使用系列(四)--Spring框架中的Bean作用域:Singleton与Prototype详解

在这篇详尽的博客中,我们将深入了解Spring框架中Bean的生命周期管理和不同的作用域。从默认的Singleton到复杂的自定义作用域,我们将探讨如何有效利用这些作用域来优化你的Java应用。无论你是Spring新手还是经验丰富的开发者,这篇文章都将为你提供宝贵的洞察和实用的配置指南。

2024-05-04 21:36:28 1272

原创 Spring从零开始学使用系列(三)--依赖注入(DI)

依赖注入是Spring框架中一个核心的功能,它不仅提高了代码的可维护性和灵活性,还极大地简化了企业级应用的开发。理解和正确使用DI可以帮助开发者构建出更加健壮、可测试且易于维护的Java应用程序。

2024-04-25 20:43:01 1223 1

原创 Spring从零开始学使用系列(二)--控制反转(IoC),Spring容器与国际化

控制反转(IoC)是一种设计原则,用于减少计算机代码之间的耦合。在Spring框架中,IoC通过一个称为IoC容器的强大机制实现,该容器负责实例化、配置和组装应用中的对象。Spring IoC容器主要通过以下方式提高应用的模块性、灵活性和可维护性:解耦组件:组件不再直接负责创建它们所需的依赖项,而是由IoC容器动态提供。灵活的依赖管理:通过外部配置而非硬编码方式管理依赖关系,易于调整和替换组件。易于测试:由于依赖项可以被插拔,测试变得更加简单,可以在不同的环境下用模拟或存根替换真实组件。主要使用

2024-04-24 17:58:50 873 1

原创 Spring系列--Spring从零开始学使用(一)

公众号:程序员LSP自定义Bean:开发者可以定义自己的Bean来替换或补充默认的Bean,增加应用的功能。集成外部库:Spring可以轻松地与其他库和框架集成,如缓存、消息队列和数据访问技术等。

2024-04-22 21:59:02 1106 1

ghelper zip包

ghelper zip包

2024-10-24

mysql5.7安装,离线安装

mysql5.7安装,离线安装

2022-03-11

空空如也

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

TA关注的人

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