自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 layui数据表格横向滚动条不显示问题

* 设置滚动条轨道背景颜色 */background-color: #888;/* 设置滚动条滑块颜色 */border-radius: 5px;/* 设置滚动条滑块圆角 *///用来指定滚动条的样式,设置滚动条显示为内联元素。/* 设置滚动条滑块的样式 */使用的框架是layuimini,

2024-04-22 16:21:21 238

原创 SpringMVC项目添加日志功能(AOP实现)最简单版

最近项目新增一个功能,需要把用户的操作都记录到数据库,于是在实现功能之后在这里分享大家请根据自己的需求增减字段,然后将你的dao service serviceImpl controller创建好4.编写配置文件5.编写切面实现效果:

2024-02-21 10:59:38 290

原创 Java新特性,从8-最新

Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。示例上面的例子中,我们创建了一个函数式接口,它定义了一个接受两个整数参数并返回他们和的结果的操作。然后,我们使用Lambda表达式实现了该接口,计算两个数的和并输出结果。请注意,Lambda表达式的参数类型可以根据上下文推断,因此不需要显式声明参数类型。

2024-01-25 15:27:52 847 1

原创 IDEA常用快捷键

按一下路径点开:File->Settings->Editor->Live Templates。点击加号选择Live Template。然后就出现了我们的自定义模版。输入完成后点击ok即可。Ctrl + 删除键。Command +键。

2024-01-05 10:34:48 877

原创 实现在线查看pdf word功能记录

在线查看pdf

2024-01-04 15:13:14 377

原创 java实现excel上传功能

最近在开发中,有使用excel上传数据的功能需要实现,在实现过后,再次进行记录并分享。

2024-01-04 15:00:45 904

转载 算法之 贪心算法

贪心算法是一种优化问题的求解方法,其核心思想是在每一步选择中都采取当前状态下的最优策略,而不考虑全局最优解。贪心算法的基本思想是通过一系列局部最优选择,最终达到全局最优。贪心算法的关键在于贪心选择性质,即每一步都选择当前状态下的最优解,而不考虑对后续步骤的影响。这种局部最优的选择最终能够达到全局最优。贪心算法通常做出一次选择后就不再改变,没有回退的过程。因此,一旦做出的选择不符合最优解的性质,整体策略就可能失败。

2024-01-04 10:26:25 64

转载 算法之动态规划

𝑑𝑝。

2024-01-03 16:26:50 452

转载 算法之回溯算法

它的核心思想是从一个初始状态出发,暴力搜索所有可能的解决方案,当遇到正确的解则将其记录,直到找到解或者尝试了所有可能的选择都无法找到解为止。。在二叉树章节中,我们提到前序、中序和后序遍历都属于深度优先搜索。接下来,我们利用前序遍历构造一个回溯问题,逐步了解回溯算法的工作原理。给定一个二叉树,搜索并记录所有值为7的节点,请返回节点列表。对于此题,我们前序遍历这颗树,并判断当前节点的值是否为7,若是则将该节点的值加入到结果列表 res之中。相关过程实现如下图和以下代码所示。。

2024-01-02 17:06:35 34

转载 算法之分治算法

换句话说,将大问题分解为多个子问题、解决子问题、将子问题的解合并为原问题的解,这几步的效率为什么比直接解决原问题的效率更高?:快速排序是选取一个基准值,然后把数组分为两个子数组,一个子数组的元素比基准值小另一子数组的元素比基准值大,然后再对这两部分进行相同的划分操作,直至子数组只剩下一个元素。:桶排序的基本思想是将数据分散到多个桶,然后对每个桶内的元素进行排序,最后将各个桶的元素依次取出,从而得到一个有序数组。:该算法首先将点集分成两部分,然后分别找出两部分中的最近点对,最后再找出跨越两部分的最近点对。

2023-12-28 13:59:59 1935

转载 算法之排序算法

假设我们先“从左往右查找”,那么如果找不到比基准数更小的元素,

2023-12-27 15:49:10 29

转载 算法之搜索算法

二分查找 binary search」是一种的高效搜索算法。它,每轮减少一半搜索范围,直至找到目标元素或搜索区间为空为止。给定一个长度为𝑛的数组nums,元素按从小到大的顺序排列,数组不包含重复元素。请查找 并返回元素 target在该数组中的索引。若数组不包含该元素,则返回−1。如下图所示,我们先初始化指针𝑖 = 0和𝑗 = 𝑛 − 1,分别指向数组首元素和尾元素,代表搜索区间[0, 𝑛 − 1]。请注意,中括号表示闭区间,其包含边界值本身。接下来,循环执行以下两步。

2023-12-25 16:09:15 33

原创 从通信协议到Netty RPC框架

在互联网技术里,有两件事最为重要,一个是TCP/IP协议,它是万物互联的事实标准;另一个是Linux操作系统,它是推动互联网技术走向繁荣的基石。在网络编程中最重要的模型便是OSI七层网络模型和TCP/IP四层网络模型。

2023-12-25 10:29:09 830

转载 数据结构-图

图 graph」是一种非线性数据结构,由「顶点 vertex」和「边 edge」组成。我们可以将图𝐺 抽象地表示为一组顶点 𝑉 和一组边𝐸的集合。以下示例展示了一个包含 5 个顶点和 7 条边的图。如果将顶点看作节点,将边看作连接各个节点的引用(指针),我们就可以将图看作是一种从链表拓展而来的数据结构。如下图所示,,从而更为复杂。,可分为下图所示的「无向图 undirected graph」和「有向图 directed graph」。

2023-12-15 09:37:33 363

转载 堆:学习笔记

1. 重点回顾‧ 堆是一棵完全二叉树,根据成立条件可分为大顶堆和小顶堆。大(小)顶堆的堆顶元素是最大(小)的。‧ 优先队列的定义是具有出队优先级的队列,通常使用堆来实现。‧ 堆的常用操作及其对应的时间复杂度包括:元素入堆 𝑂(log𝑛)、堆顶元素出堆𝑂(log𝑛)和访问堆顶元素O(1)‧ 完全二叉树非常适合用数组表示,因此我们通常使用数组来存储堆。‧ 堆化操作用于维护堆的性质,在入堆和出堆操作中都会用到。‧ 输入𝑛 个元素并建堆的时间复杂度可以优化至𝑂(𝑛),非常高效。

2023-12-12 16:44:55 32

转载 树:二叉树、AVL树

二叉树 binary tree」是一种非线性数据结构,代表着祖先与后代之间的派生关系,体现着“一分为二”的 分治逻辑。与链表类似,二叉树的基本单元是节点,每个节点包含:值、左子节点引用、右子节点引用。每个节点都有两个引用(指针),分别指向「左子节点 left‑child node」和「右子节点 right‑child node」,该节点被称为这两个子节点的「父节点 parent node」。

2023-12-07 16:46:58 34

转载 哈希表Hash

哈希表 hash table」,又称「散列表」,其通过建立键key与值value之间的映射,实现高效的元素查询。具 体而言,我们向哈希表输入一个键 key,则可以在𝑂(1)时间内获取对应的值value。如图 所示,给定𝑛个学生,每个学生都有“姓名”和“学号”两项数据。假如我们希望实现“输入一个学号,返回对应的姓名”的查询功能,则可以采用图 6‑1 所示的哈希表来实现。除哈希表外,数组和链表也可以实现查询功能,它们的效率对比如图所示。观察发现,𝑂(1),非常高效。

2023-11-29 16:02:54 62

转载 数据结构-栈与队列

栈遵循先入后出的原则,因此我们只能在栈顶添加或删除元素。然而,数组和链表都可以在任意位置添加和 删除元素,因此栈可以被视为一种受限制的数组或链表。换句话说,我们可以“屏蔽”数组或链表的部分无 关操作,使其对外表现的逻辑符合栈的特性。为了实现队列,我们需要一种数据结构,可以在一端添加元素,并在另一端删除元素。因此,链表和数组都 可以用来实现队列。

2023-11-23 13:54:29 31

转载 数据结构--数组、链表

数组 array」是一种线性数据结构,其将存储在中。我们将元素在数组中的位 置称为该元素的「索引 index」。问题:为什么数组的下标是从0开始,为什么只能存储相同类型的元素先看一张图片:在计算机存储中,数据是按照一定的地址存储的,而数组是一种线性结构,其元素在内存中是依次排列的(在内存中,线性结构通常以连续的一段地址存储)。使用从0开始的下标,有助于简化对数组元素在内存中的计算,避免了每次计算时都需要将索引值-1。

2023-11-22 15:59:40 105

原创 org.springframework.beans.factory.UnsatisfiedDependencyException

指定自己dao的包路径即可。没有找到dao层的类,

2023-11-07 11:16:05 210

原创 BIO、NIO详解

Java BIO就是传统的java io 编程,其相关的类和接口在java.ioBIO(blocking l/0):同步阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,可以通过线程池机制改善(实现多个客户连接服务器).

2023-08-27 18:56:23 75

原创 Nginx

启动:3.拷贝容器里面的nginx配置文件 我们需要的配置文件已经全部准备好了,原先启动的nginx容器,没有进行挂载,可以删除了!4.重新运行nginx容器,并进行数据挂载:所在位置:因为我们进行了数据挂载,所以可以直接查看我们拷贝出来的:/mydata/nginx/nginx.conf主要可以分为三块:1.全局块2.events块(事件块)3.HTTP 块:一个server块示例:四、Nginx实现自定义域名以及反向代理最终要实现的结果:通过访问www.syc.com访问到我的云服务器的

2023-08-24 16:14:38 51

原创 ElasticSearch服务器安装以及springboot集成详解

查看mapping信息补充:Es7及以上移除了type的概念。关系型数据库中两个数据表示是独立的,即使他们里面有相同名称的列也不影响使用,但ES中不是这样的。是基于Lucene开发的搜索引擎,而ES中不同type下名称相同的filed最终在Lucene中的处理方式是一样的。两个不同type下的两个user_name,在ES同一个索引下其实被认为是同一个filed你必须在两个不同的type中定义相同的filed映射。否则,不同type。

2023-08-22 17:30:36 287

原创 JUC并发编程详解

completion stage:代表异步计算过程中的某个阶段一个阶段完成以后可能会触发另一个阶段在Java8中,CompletableFuture提供了非常强大的Future的扩展功能,可以帮助我们简化异步编程的复杂性,并且提供了函数式编程的能力,可以通过回调的方式处理计算结果,也提供了转换和组completableFuture 的方法。它可能代表一个明确完成的Future,也有可能代表一个完成阶段〈CompletionStage ),它支持在计算完成以后触发一些函数或执行某些动作。

2023-08-03 11:20:10 263

原创 异步与线程池-异步编排详解

异步 线程池 异步编排真实案例

2023-08-02 14:44:59 324

原创 实现在线查看pdf文件(Java前后端代码)

java在线查看pdf文件

2023-04-24 11:18:18 893

原创 JSON字符串转为Java对象

JSON字符串转为Java对象的方法记录。

2023-03-24 16:40:14 570

原创 前后端字段一致 后端取值为null问题解决方案

前后端字段一致 后端取值为null问题解决方案

2023-03-06 11:51:02 1164

原创 前端横向时间轴制作

横向时间轴

2022-12-30 16:26:04 3305

原创 Element穿梭框的基本使用

element穿梭框的基本使用

2022-08-17 22:05:36 2296 6

从通信协议到Netty RPC框架

从通信协议到Netty RPC框架

2024-01-21

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

TA关注的人

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