我有一颗五叶草_社区达人页

个人头像照片
我有一颗五叶草
已加入开发者社区367

勋章 更多

个人头像照片
专家博主
专家博主
个人头像照片
星级博主
星级博主
个人头像照片
技术博主
技术博主
个人头像照片
江湖新秀
江湖新秀

成就

已发布274篇文章
5条评论
已回答0个问题
0条评论
已发布0个视频
github地址

技术能力

兴趣领域
擅长领域
技术认证

暂时未有相关云产品技术能力~

暂无个人介绍

暂无精选文章
暂无更多信息

2023年10月

2023年07月

  • 07.04 16:59:10
    发表了文章 2023-07-04 16:59:10

    SpringSecurity-从入门到精通(2)

    2.3.3.2 密码加密存储 ​ 实际项目中我们不会把密码明文存储在数据库中。 ​ 默认使用的PasswordEncoder要求数据库中的密码格式为:{id}password 。它会根据id去判断密码的加密方式。但是我们一般不会采用这种方式。 ​ 所以就需要替换 PasswordEncoder。
  • 07.04 16:49:27
    发表了文章 2023-07-04 16:49:27

    SpringSecurity-从入门到精通(1)

    0. 简介 ​ Spring Security 是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富。 ​ 一般来说中大型的项目都是使用SpringSecurity 来做安全框架。小项目有Shiro的比较多,因为相比与SpringSecurity,Shiro的上手更加的简单。
  • 07.04 16:42:50
    发表了文章 2023-07-04 16:42:50

    SpringBoot 实现合并表头导出数据 - EasyExcel应用

    EasyExcel是一款开源的Java处理Excel文件的工具库,它提供了简单易用的API,可以方便地读取、写入和操作Excel文件。下面是一些常见的EasyExcel应用场景: 读取Excel文件:使用EasyExcel可以轻松地读取Excel文件中的数据,并将其转换为Java对象或集合。你可以指定读取的起始行、列,还可以处理不同Sheet的数据。
  • 07.04 16:41:25
    发表了文章 2023-07-04 16:41:25

    SpringBoot 实现导出数据 - EasyExcel 导出数据

    1. EasyExcel 介绍 EasyExcel 官网介绍 传统操作Excel大多都是利用 Apach POI 进行操作的,但是 POI 框架并不完善,使用过程非常繁琐且有较多的缺陷: 动态操作Excel非常繁琐,对于新手来说,很难在短时间内上手; 读写时需要占用较大的内存,当数据量大时容易发生内存溢出问题(OOM); 基于上述原因,阿里开源出一款易上手,且比较节省内存的Excel操作框架:EasyExcel 注意:easyExcel底层使用POI实现的;
  • 07.04 16:39:43
    发表了文章 2023-07-04 16:39:43

    SpringBoot 实现 elasticsearch 查询操作(RestHighLevelClient 的案例实战)

    上一节讲述了 SpringBoot 实现 elasticsearch 索引操作,这一章节讲述 SpringBoot 实现 elasticsearch 查询操作。 1. 环境准备 案例用到的索引库结构
  • 07.04 16:37:05
    发表了文章 2023-07-04 16:37:05

    【Java】Java核心 86:Git 教程(9)GIT远程仓库操作

    Git提供了一系列命令来进行远程仓库的操作。 下面是一些常用的Git远程仓库操作: 克隆远程仓库到本地:
  • 07.04 16:33:50
    发表了文章 2023-07-04 16:33:50

    【Java】Java核心 85:Git 教程(8)GIT远程仓库介绍与码云仓库注册创建

    Git是一个分布式版本控制系统,它允许多个开发者协同工作并管理代码的版本。远程仓库是存放在网络上的Git仓库,可以用于团队成员之间的代码共享和协作。 常见的远程仓库托管服务提供商有GitHub、GitLab和Bitbucket等。其中,码云(Gitee)是中国领先的代码托管平台,类似于GitHub,提供了在线的Git仓库托管服务。
  • 07.04 16:31:40
    发表了文章 2023-07-04 16:31:40

    【Java】Java核心 84:Git 教程(7)分支创建与切换&合并与删除

    在Git中,你可以使用以下命令来创建、切换、合并和删除分支: 分支创建与切换: 创建新分支:使用以下命令创建一个新的分支:
  • 07.04 16:27:46
    发表了文章 2023-07-04 16:27:46

    【Java】Java核心 83:Git 教程(6)分支介绍

    内容 我们现在使用Git可以简单理解为阶段性的使用Git保存一下自己写的代码,每次提交形成一个版本信息。但是你能想象出当一个团队所有人提交的版本信息汇集到一起后是什么样子吗?那版本的数量是数以千计的。尽管Git提供了一系列的操作帮助我们完成版本的操作,但是最终架不住版本太多看着乱啊。
  • 07.04 16:25:28
    发表了文章 2023-07-04 16:25:28

    【Java】Java核心 81:Git 教程(4)差异比较 & 版本回退

    在Git中,可以使用差异比较命令和版本回退命令来查看文件之间的差异并回退到早期的版本。 以下是对这些操作的简要解释:
  • 07.04 16:20:54
    发表了文章 2023-07-04 16:20:54

    【Java】Java核心 80:Git 教程(3)初始化工作区 & add与commit

    在Git中,初始化工作区并使用add和commit命令是进行版本控制的基本操作。 下面是对这些操作的简要解释: 初始化工作区:在使用Git之前,需要先将项目目录初始化为Git仓库。在项目所在的目录下打开终端或命令行窗口,执行以下命令:
  • 07.04 16:17:08
    发表了文章 2023-07-04 16:17:08

    【Java】Java核心 79:Git 教程(2)Git 安装

    上一篇我们讲到:Git是一个分布式版本控制系统,常用于协同开发和版本管理的工具。它可以跟踪文件的修改、记录历史版本,并支持多人协同工作。通过Git,你可以轻松地创建和切换分支、合并代码、回滚修改等操作。 以下是Git一些常用的命令和功能:
  • 07.04 16:15:00
    发表了文章 2023-07-04 16:15:00

    【Java】Java核心 78:Git 教程(1)Git 概述

    01.GIT概述 Git是一个分布式版本控制系统,常用于协同开发和版本管理的工具。它可以跟踪文件的修改、记录历史版本,并支持多人协同工作。通过Git,你可以轻松地创建和切换分支、合并代码、回滚修改等操作。 以下是Git一些常用的命令和功能:
  • 07.04 16:12:24
    发表了文章 2023-07-04 16:12:24

    【Java】Java核心 77:Dom4j 解析 XML综合案例

    1、需求 需求:自定义dao层jdbc框架 为了方便程序员操作数据库,让程序员更关注于sql代码层面和业务层面
  • 07.04 16:09:34
    发表了文章 2023-07-04 16:09:34

    【Java】Java核心 76:XML解析 Dom4j (下)

    3 使用xpath技术结合DOM4J技术读取xml文件(了解) 1.概念介绍 问题:通过上面的案例我们发现有个小问题.就是获取标签的过程太过繁琐。我们需要一层一层的去获取。假设xml嵌套了50层的话,对于我们开发者来说是非常繁琐的。所以我们希望应该有这样的技术,一下子直接就能获取我们所需要的标签对象。这就是我们接下来需要学习的xpath技术。
  • 07.04 16:07:42
    发表了文章 2023-07-04 16:07:42

    【Java】Java核心 75:XML解析 Dom4j (上)

    1 XML解析 1.1 解析概述 当将数据存储在XML后,我们就希望通过程序获取XML的内容。我们使用Java基础所学的IO知识是可以完成的,不过需要非常繁琐的操作才可以完成,且开发中会遇到不同问题(只读、读写)。 人们为不同问题提供不同的解析方式,使用不同的解析器进行解析,方便开发人员操作XML。
  • 07.04 16:03:41
    发表了文章 2023-07-04 16:03:41

    【Java】Java核心 74:XML (下)

    7 Schema约束(能够看懂即可) 与dtd约束一样,schema它也是用来约束xml文件的。schema约束书写的时候,它遵守xml的语法规则。在书写schema的时候,就和书写xml文件的文档结构一样。 注意:书写schema文件的时候,它的文件扩展名是xsd。 1 书写schema约束
  • 07.04 16:00:46
    发表了文章 2023-07-04 16:00:46

    【Java】Java核心 73:XML (中)

    5 XML的组成:字符区(了解) 当大量的转义字符出现在xml文档中时,会使XML文档的可读性大幅度降低。这时如果使用CDATA段就会好一些。 CDATA (Character Data)字符数据区,格式如下:
  • 07.04 15:57:48
    发表了文章 2023-07-04 15:57:48

    【Java】Java核心 72:XML (上)

    1 XML概述 什么是XML 英文:Xtensible Markup Language 可扩展的标记语言,由各种标记(标签,元素)组成。 可扩展:所有的标签都是自定义的,可以随意扩展的。如:<abc/>,<姓名> 标记语言:整个文档由各种标签组成。清晰,数据结构化!
  • 07.04 15:52:42
    发表了文章 2023-07-04 15:52:42

    【Java】Java核心要点总结 71:ThreadPoolExecutor

    1)为什么需要线程池? 重复利用线程资源,减少创建线程和销毁线程系统所花费的开销,也可以限制请求过多带来的系统压力。在一些场景也可以增加处理的速度。 2)线程池内部怎么保证线程安全? 也就是说一个任务怎么保证不被两个线程都执行? 线程池内部有两部分组成一部分是task任务列表 一部分是线程数组,在处理任务是都要去上锁,这个锁其实就是一个变量。等这个任务拿到后再释放锁。
  • 07.04 15:50:14
    发表了文章 2023-07-04 15:50:14

    SpringBoot 实现 elasticsearch 索引操作(RestHighLevelClient 的应用)

    RestHighLevelClient 是 Elasticsearch 官方提供的Java高级客户端,用于与Elasticsearch集群进行交互和执行各种操作。 主要特点和功能如下: 强类型:RestHighLevelClient 提供了强类型的 API,可以在编码过程中获得更好的类型安全性和 IDE 支持。 兼容性:RestHighLevelClient 是 Elasticsearch 官方推荐的 Java 客户端,在 Elasticsearch 版本升级时会保证与 Elasticsearch 的兼容性。 高级功能:RestHighLevelClient 支持 Elasticsea
  • 07.04 15:48:38
    发表了文章 2023-07-04 15:48:38

    【计算机网络】第二章 物理层(下)

    2.5 信道的极限容量 2.5.1 奈氏准则 理想低通信道的最高码元传输速率 = 2W Baud = 2W 码元 / 秒 理想带通信道的最高码元传输速率 = W Baud = W 码元 / 秒 W : 信道带宽(单位为Hz) Baud:波特,既码元 / 秒
  • 07.04 15:46:40
    发表了文章 2023-07-04 15:46:40

    【计算机网络】第二章 物理层(上)

    2.1 物理层的基本概念 物理层考虑的是怎样在连接各种计算机的传输媒体上传输数据比特流。 物理层为数据链路层屏蔽了各种传输媒体的差异,使数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输媒体是什么。
  • 07.04 15:44:18
    发表了文章 2023-07-04 15:44:18

    【Java】Java核心要点总结70

    1. volatile 如何保证变量的可⻅性? 在Java中,使用volatile关键字可以确保变量的可见性。 当一个线程修改了一个被volatile修饰的变量时,它会立即将该变量的最新值刷新到主内存。而其他线程在读取该变量时,会从主内存中重新获取最新值,而不是使用缓存中的旧值。 这样做的原因是,普通的变量在多线程环境下存在线程间不可见的问题。每个线程都有自己的工作内存,由于运行速度快和编译优化等原因,线程可能会直接读取工作内存中的旧值,而不去主内存中获取最新的值,导致线程之间的数据不一致。
  • 07.04 15:42:41
    发表了文章 2023-07-04 15:42:41

    【Java】Java核心要点总结 69

    1. BIO NIO AIO 在Java中,BIO、NIO和AIO是针对网络编程的不同I/O模型: BIO(Blocking I/O):传统的阻塞式I/O模型,它以阻塞的方式进行数据读写操作。当一个线程执行I/O操作时,会被阻塞,直到数据准备好或者操作完成。这种模型相对简单,但对并发处理能力较弱。 NIO(Non-blocking I/O):非阻塞式I/O模型,引入了选择器(Selector)和通道(Channel)的概念。使用NIO,可以通过一个线程处理多个通道的I/O操作,提升了并发处理能力。但需要手动检查是否有数据可用,必要时才进行读写操作。
  • 07.04 15:40:49
    发表了文章 2023-07-04 15:40:49

    【Java】Java核心要点总结 68

    1. 为什么重写 equals() 时候必须重写 hashCode() 因为两个相等的对象的 hashCode 值必须是相等。也就是说如果 equals 方法判断两个对象是相等的,那这两个对象的 hashCode 值也要相等。 如果重写 equals() 时没有重写 hashCode() 方法的话就可能会导致 equals 方法判断是相等的两个对象,hashCode 值却不相等。
  • 07.04 15:37:37
    发表了文章 2023-07-04 15:37:37

    【SpringCloud】Eureka 案例上手稍微带点原理(2)

    2. Eureka 2.1 Eureka 概述 Eureka 是 Netflix 提供的基于 REST 的服务发现组件,用于帮助开发者管理微服务架构中的服务实例。它提供了一个可伸缩的注册中心,可以让每个微服务都能够找到其他微服务的位置和元数据信息,并对其进行负载均衡、自动故障转移等操作。
  • 07.04 15:34:53
    发表了文章 2023-07-04 15:34:53

    【SpringCloud】Eureka 案例上手稍微带点原理(1)

    1. 前置工作 先准备两个能独立跑起来的微服务(user-server 和 order-server) 将 所需 SQL 导入
  • 07.04 15:30:02
    发表了文章 2023-07-04 15:30:02

    【Java】Java核心要点总结 67

    1. 浮点数运运算会有精度损失 这个和计算机保存浮点数的机制有很大关系。我们知道计算机是二进制的,而且计算机在表示一个数字时,宽度是有限的,无限循环的小数存储在计算机时,只能被截断,所以就会导致小数精度发生损失的情况。这也就是解释了为什么浮点数没有办法用二进制精确表示。
  • 07.04 15:28:35
    发表了文章 2023-07-04 15:28:35

    【Java】Java核心要点总结 66

    1. 成员变量 和 局部变量 的区别 ● 语法形式 :从语法形式上看,成员变量是属于类的,而局部变量是在代码块或方法中定义的变量或是方法的参数;成员变量可以被 public,private,static 等修饰符所修饰,而局部变量不能被访问控制修饰符及 static 所修饰;但是,成员变量和局部变量都能被 final 所修饰。 ● 存储方式 :从变量在内存中的存储方式来看,如果成员变量是使用 static 修饰的,那么这个成员变量是属于类的,如果没有使用 static 修饰,这个成员变量是属于实例的。而对象存在于堆内存,局部变量则存在于栈内存。
  • 07.04 15:26:13
    发表了文章 2023-07-04 15:26:13

    【Java】Java核心要点总结 65:TreeSet 两种排序

    1. Comparable 和 Comparator区别比较 Comparable 是排序接口,若一个类实现了Comparable接口,就意味着“该类支持排序”。Comparator 是比较器,我们若需要控制某个类的次序,可以建立一个“该类的比较器”来进行排序。 Comparable相当于“内部比较器”,而Comparator相当于“外部比较器”。
  • 07.04 15:25:00
    发表了文章 2023-07-04 15:25:00

    【计算机网络】第一章 概述(下)

    第一章 概述 1.5 计算机网络的性能指标 常用的 计算机网络 的性能指标有以下 8 个: 速率、带宽、吞吐量、时延、时延带宽积、往返时间、利用率、丢包率 1.5.1 速率
  • 07.04 15:22:06
    发表了文章 2023-07-04 15:22:06

    【计算机网络】第一章 概述(上)

    第一章 概述 1.2 因特网概述 1.2.1 网络、互连网(互联网)和因特网 网络:网络由若干结点和连接这些结点的链路组成。
  • 07.04 15:13:17
    发表了文章 2023-07-04 15:13:17

    线程池最佳实践

    yml参数配置
  • 07.04 15:10:16
    发表了文章 2023-07-04 15:10:16

    【MySQL】View 视图用法及作用

    1. 视图概述 1.1 为什么使用视图? 视图一方面可以帮我们使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视图。比如,针对一个公司的销售人员,我们只想给他看部分数据,而某些特殊的数据,比如采购的价格,则不会提供给他。再比如,人员薪酬是个敏感的字段,那么只给某个级别以上的人员开放,其他人的查询视图中则不提供这个字段。
  • 07.04 15:06:12
    发表了文章 2023-07-04 15:06:12

    【MySQL】一文搞懂 MySQL 中的事务

    0. 前提概要 谈事务,一般就是说数据库事务。本篇文章以 MySQL 为例谈一谈事务。 MySQL 的 Indndb 引擎和 bdb 引擎支持事务。MySQL 的myisam ,memory 等存储引擎是不支持事务的。
  • 07.04 14:59:44
    发表了文章 2023-07-04 14:59:44

    MySQL 索引的10 个核心要点

    🍉1. 索引底层采用什么数据结构?为什么不用hash 索引底层数据结构是B+树 不使用hash:因为其底层是哈希表实现,等值查询,可以快速定位,一般情况效率很高,不稳定,当出现大量键重复哈希冲突,效率下降,不支持范围查询,无法用于排序分组,无法模糊查询,多列索引的最左前缀匹配原则,总要回表操作等。
  • 07.04 14:55:17
    发表了文章 2023-07-04 14:55:17

    【Java】JavaWEB核心要点总结:64

    1. TCP 和 UDP的异同 TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种常见的传输层协议,用于在网络中进行数据传输。它们之间主要有以下异同: 可靠性:TCP 是一种面向连接的可靠协议,它可以保证数据传输的可靠性,并通过重传机制和流量控制来保证数据的正确到达。而 UDP 则是一种无连接的不可靠协议,不提供确认、重传和流量控制等可靠性保证。 速度:由于 TCP 的可靠机制和复杂的协议头部,它的传输速度相对较慢;而 UDP 虽然不具有可靠性,但协议头部比 TCP 简单,传输速度较快。
  • 07.04 14:53:34
    发表了文章 2023-07-04 14:53:34

    【Java】JavaWEB核心要点总结:63

    1. JSP 和 Servlet 有什么区别 JSP(Java Server Pages)和Servlet 是 Java Web 开发中常用的两种技术。 Servlet 是一种基于 Java编写的服务器端程序,其主要作用是处理HTTP请求、响应、业务逻辑等操作。通过 Servlet,可以在服务器端生成动态内容,并将其传输到客户端浏览器。
  • 07.04 01:00:54
    发表了文章 2023-07-04 01:00:54

    【Java】Java核心要点总结:62

    1. 线程中的线程是怎么创建的,是一开始就随着线程池的启动创建好的吗? 线程中的线程通常是通过在父线程中创建新的Thread对象并将其加入线程池中实现的。当然,这个过程也可以通过一些其他的方式来实现,比如使用ExecutorService.submit()方法提交一个Callable或Runnable任务。
  • 07.04 00:58:14
    发表了文章 2023-07-04 00:58:14

    【Java】Java核心要点总结:61

    1. java中的线程池是如何实现的 Java 中的线程池是通过 ThreadPoolExecutor 类实现的。ThreadPoolExecutor 继承自 AbstractExecutorService,并实现了 Executor、ExecutorService 和 Future 接口,它可以为程序提供管理和控制多个工作者线程的功能,提高线程重用性并避免线程频繁创建销毁的开销。
  • 07.04 00:56:53
    发表了文章 2023-07-04 00:56:53

    【Java】Java核心要点总结:60

    1. 乐观锁一定就是好的吗 乐观锁并不一定好,它有自己的适用场景和局限性。 乐观锁的优点在于在低并发环境下表现良好,操作基本上都能够成功,不会阻塞其他线程的执行。此外,乐观锁没有锁带来的资源竞争和多线程间的上下文切换开销,对于高并发的场景下可以提供更好的性能表现。 但是,在高并发场景下乐观锁的表现往往受到影响,因为多个线程同时执行操作和检查比较,会出现重试次数增加的情况,进而增加了延迟和开销,降低了系统的吞吐量和性能。此时,悲观锁可能比乐观锁更适合解决问题,因为它能够阻塞其他线程,等待当前线程释放锁后再执行。
  • 07.04 00:55:00
    发表了文章 2023-07-04 00:55:00

    【Java】Java核心要点总结:59

    1. 线程的run()和start()有什么区别,为什么不直接调用run() Java中通过继承 Thread 或实现 Runnable 接口来创建线程,线程是通过 start() 方法启动的,而不是直接调用 run() 方法。下面是它们之间的区别: start() 和 run() 的区别 调用 start() 方法会启动一个新线程并执行其中的 run() 方法,而直接调用 run() 方法将在当前线程中执行 run() 方法,并不会创建新的线程。
  • 07.04 00:53:37
    发表了文章 2023-07-04 00:53:37

    【Java】Java核心要点总结:58

    1. java中 怎么确保一个集合不能被修改 Java 中可以使用 Collections 类的 unmodifiableXXX() 方法来确保一个集合不能被修改。其中,XXX 表示需要被转换的集合类型,如 List、Set、Map 等。这些方法都返回指定集合的不可修改视图
  • 07.04 00:50:03
    发表了文章 2023-07-04 00:50:03

    【JavaSE】Java(五十七):核心要点总结

    1. HashMap 的实现原理 HashMap 是一种基于哈希表的数据结构,它的实现原理简单来说就是将键值对存储在一个数组中,并通过哈希算法计算出每个键对应的下标。下面是 HashMap 实现原理的具体步骤: 初始化:创建一个长度为 n 的数组(初始默认长度为 16),该数组每个位置可存放一个链表;以及一个负载因子(load factor),用来表示哈希表允许填充的程度。
  • 07.04 00:45:50
    发表了文章 2023-07-04 00:45:50

    【JavaSE】Java(五十六):核心要点总结

    1. byte 类型 127 + 1等于多少 当byte类型的值超出它的范围时,它会发生溢出并且变为负数。在Java中,byte类型是一个8位有符号整数,取值范围为-128到127。 因此,在进行 byte 类型 127 + 1 的操作时,由于它已经超出范围了,所以结果会发生溢出,并变成 -128 (即计算结果是 (byte) (127 + 1) = -128)
  • 发表了文章 2023-11-06

    详解 SpringMVC 的 HttpMessageConverter

  • 发表了文章 2023-10-16

    我献出这篇 go 精华总结,阁下该如何应对(2)

  • 发表了文章 2023-10-16

    我献出这篇 go 精华总结,阁下该如何应对(1)

  • 发表了文章 2023-10-16

    从0开始学Java:Java基础语法(2)

  • 发表了文章 2023-10-16

    从0开始学Java:Java基础语法(1)

  • 发表了文章 2023-10-16

    CTF/AWD竞赛标准参考书+实战指南:《AWD特训营》

  • 发表了文章 2023-10-16

    从0开始学Java:Java概述

  • 发表了文章 2023-10-16

    AI工程化—— 如何让AI在企业多快好省的落地?

  • 发表了文章 2023-10-16

    SpringMVC的视图

  • 发表了文章 2023-10-16

    MyBatis 执行流程分析

  • 发表了文章 2023-10-16

    客户成功体系如何构建?请看这7步

  • 发表了文章 2023-10-16

    【送书】从不了解用户画像,到用画像数据赋能业务看这一本书就够了丨《用户画像:平台构建与业务实践》

  • 发表了文章 2023-10-16

    【送书】实现可观测性平台的技术要点是什么?

  • 发表了文章 2023-10-16

    【送书活动】大模型赛道如何实现华丽的弯道超车

  • 发表了文章 2023-10-16

    SpringMVC 域对象共享数据

  • 发表了文章 2023-10-16

    MyBatis 框架入门理论与实践

  • 发表了文章 2023-10-16

    Seata 解决分布式事务理论与实践(2)

  • 发表了文章 2023-10-16

    Seata 解决分布式事务理论与实践(1)

  • 发表了文章 2023-10-16

    分布式事务之 Seata 的部署和集成(2)

  • 发表了文章 2023-10-16

    分布式事务之 Seata 的部署和集成(1)

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息