自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 暴力匹配字符串的升级版算法 —— Kmp算法

例如这里跳过了 2 位,所以子串下标 j = 2 ,指在了【0,1,2】第三号元素进行下一次的重新匹配,完美的跳过了上一次的重复字符,避免了回溯带来的时间损耗,这个就是KMP算法的魅力了。上面说道 KMP 算法主要是通过消除主串指针的回溯来提高匹配的效率的,那么,它是则呢样来消除回溯的呢?​ 其实可以找出不一样的字符的前一位,例如上面的 C与B不相同,那么就找最近的A重新比较,也就是左边字符串的后缀A。所以蓝色箭头的值与黄色箭头的值一样,所以重新有共同的字串,则黄色箭头的值为 2。

2024-05-05 18:00:52 969 1

原创 走进Spring的世界 —— Spring底层核心原理解析(一)

这是学习Spring的hello world。第一行代码,会构造一个ClassPathXmlApplicationContext对象,ClassPathXmlApplicationContext该如何理解,调用该构造方法除开会实例化得到一个对象,还会做哪些事情?第二行代码,会调用ClassPathXmlApplicationContext的getBean方法,会得到一个UserService对象,getBean()是如何实现的?

2023-09-30 19:00:52 744

原创 spring中的@Configuration配置类和@Component

和Full模式的@Configuration不同,Lite模式的@Bean方法不能声明Bean之间的依赖关系。这种模式下的注解不会被Spring所代理,就是一个标准类,如果在这个类中有@Bean标注的方法,那么方法间的相互调用,其实就是普通Java类的方法的调用。中声明的@Bean方法,甚至只是在一个非常普通的类中声明的Bean方法,都被认为是Lite版的配置类。,就相当于调用了代理方法,那么在代理方法中会判断,是否调用getBean方法还是invokeSuper方法,这里就是这两个注解的最根本的区别。

2023-09-09 16:38:17 594

原创 避坑之路 —— 前后端 json 的注意问题

其实这两种都是表示前端希望能收到后端json这样的数据格式,那么我们在后端就需要注意将数据进行转换为json进行返回。这个包下的类,如果你有其他的数据转为json,那么需要注意你用的类不同(类名可能一样)。首先后端返回的数据可能有字符串、集合、对象等的形式,那么我们就需要把它转为json.里面我保存了一些数据,那么我希望返回到前端,我这里用的方法为。这样就可以把一个集合转换为json,我这里用的是。这样就可以保证前后端对接的数据是一致的了。这里我就说一下自己的。1.先说一下前端的,例如我这里有一个集合。

2023-09-06 20:07:15 740

原创 一文带你了解序列化与反序列化基本原理与操作

序列化是指将对象转换为字节序列的过程,以便于存储或传输。在序列化过程中,对象的状态信息将被转换为字节流,可以保存到文件中或通过网络传输给其他计算机。反序列化则是将字节序列恢复为对象的过程。通过反序列化操作,可以从存储的字节流中还原对象的状态。这使得可以在程序重启后,读取保存的字节流并重新构造对象,从而快速恢复对象的状态。在分布式系统中,可以将对象进行序列化,并在不同的计算机之间进行传输。接收方可以通过反序列化操作将字节序列转换为可操作的对象。某些远程通信框架使用序列化和反序列化来实现远程方法调用。

2023-07-06 17:40:08 7405 1

原创 一文带你了解socket网络编程以及详解过程和原理

Socket(套接字)是计算机网络编程中的一种抽象概念,它提供了在网络上进行通信的接口。通过使用 Socket,可以在不同计算机之间建立连接,并进行数据的传输和交换。通过 Socket,客户端可以与服务器建立连接并发送请求,服务器接收请求并返回响应。通过 Socket,可以在多个用户之间实现实时的文字、音频或视频通信。可以使用 Socket 在不同计算机之间传输文件,如上传和下载文件。可通过 Socket 在远程计算机上执行指令或操作。

2023-07-05 01:46:03 12803 1

原创 一文带你了解WebSocket与技术原理

WebSocket是一种在客户端和服务器之间实现双向通信的协议。传统的HTTP协议是一种无状态的请求-响应协议,每次请求都需要客户端发起并服务器响应,无法实现实时的双向通信。而WebSocket协议则解决了这个问题,使得服务器可以主动向客户端推送消息,实现了实时的双向通信。WebSocket协议基于TCP协议,通过在浏览器和服务器之间建立持久化的连接,使得双方可以在无需频繁建立和关闭连接的情况下实现实时通信。

2023-06-29 22:19:33 347

原创 java之路—— 带你了解Struts与其基本的应用

创作不易,各位亲给个免费的呗文章目录前言一、什么是Struts,可以用来干嘛二、Struts 与 springmvc三、Struts的开发的基本步骤四、Struts的处理流程前言Struts是在2000年由Apache软件基金会首次发布的,自那时以来,它在Java Web开发中扮演着重要的角色,并经历了许多值得注意的发展阶段。Struts 1.x:Struts的最初版本是Struts 1.x系列,它引入了MVC架构模式,提供了基本的控制器(Action)和视图(JSP)的分离。Struts

2023-06-29 21:53:04 1074

原创 java之路——带你了解Hibernate与基本过程

Hibernate框架的发展可以追溯到2001年,它在过去的几年里获得了广泛的应用和持续的发展。Hibernate框架最早由Gavin King创建,目的是为了简化Java应用程序与关系数据库之间的数据交互。在这个阶段,Hibernate开始以一种简单但强大的方式提供对象-关系映射(ORM)的功能,使得开发人员能够通过面向对象的方式进行数据库操作,而不需要编写大量的SQL语句。2006年,Hibernate被红帽公司收购,成为了JBOSS的一部分。

2023-06-29 21:21:02 635

原创 java之路 —— Shiro与Springboot整合开发

在 Spring Boot 中做权限管理,一般来说,主流的方案是 Spring Security ,但是,仅仅从技术角度来说,也可以使用 Shiro。在 Spring Boot 中做权限管理,一般来说,主流的方案是 Spring Security ,但是,仅仅从技术角度来说,也可以使用 Shiro。

2023-06-29 21:07:08 1098

原创 java之路——带你了解springboot框架与其基本使用

Spring Boot是一种用于构建独立的、生产级别的Spring应用程序的框架。它简化了Spring应用程序的开发过程,提供了自动配置和约定优于配置的原则,使得开发者可以更专注于业务逻辑的实现而不必花费太多时间在配置上。使用Spring Boot,您可以快速搭建一个基于Spring的应用程序,而无需手动配置各种繁琐的设置。它提供了一个起步依赖(starter)的概念,您只需添加所需的起步依赖,Spring Boot就会自动为您配置相应的功能。

2023-06-26 22:46:29 411

原创 java之路——带你了解SpringSecurity安全框架与基本应用

*Spring Security是一个功能强大的开源框架,用于在Java应用程序中实现身份验证和授权功能。它提供了一套全面的安全性解决方案,可用于保护Web应用程序、REST API和其他类型的应用程序。**Spring Security提供了多种身份验证机制,包括基于表单、基于HTTP基本身份验证、基于OAuth等。它可以与各种身份验证提供者(如数据库、LDAP、OAuth服务器等)集成,以验证用户的身份。

2023-06-26 22:24:40 892

原创 一文带你走进git的世界

首先,Git是一个非常流行的分布式版本控制系统。它的作用就像是一个代码的时间机器,可以帮助开发者记录、追踪和管理代码的变更。简单来说,Git可以帮助您保存代码的不同版本。每当您对代码进行修改或添加新功能时,Git会记录下这些变更并生成一个称为"提交"的快照。这样,您可以随时回退到之前的版本,或者查看代码的历史记录。使用Git的好处之一是它是分布式的。这意味着每个开发者都可以在自己的本地计算机上拥有完整的代码仓库,并且可以独立地进行开发和修改。这样一来,即使没有网络连接,开发者也可以继续工作。

2023-06-26 22:02:03 65

原创 Java之路—— 一文带你走进MybatisPlus

MyBatis-Plus是基于MyBatis的增强工具,可以看作是对MyBatis的功能扩展。MyBatis是一个纯粹的SQL映射框架,需要手动书写SQL语句和Mapper接口,而MyBatis-Plus则封装了大部分常用的增删改查操作,避免了手动编写重复的代码。通过继承BaseMapper,就可以获得基本的CRUD方法。MyBatis-Plus在MyBatis的基础上提供了一系列增强功能,如自动生成代码、分页插件、逻辑删除、多租户支持、动态表名等。这些功能可以减少开发人员的工作量,提高开发效率。

2023-06-25 20:23:48 845

原创 java之路 —— 带你了解安全框架Shiro

在学习之前,让我们先了解一下什么是shiro。Shiro(Apache Shiro)是一个Java安全框架,提供了身份认证、授权、加密和会话管理等功能。它的设计目标是简单、易用和灵活。Shiro提供了多种身份认证方式,包括基于表单、HTTP基本认证、LDAP和OAuth等。开发人员可以根据应用程序需求选择适合的认证方式。通过Shiro的授权机制,开发人员可以定义用户角色和权限,并通过编程方式或配置文件来限制用户对资源的访问。Shiro支持基于角色和权限的细粒度授权管理。

2023-06-24 22:37:11 352

原创 AI+算力=最强龙头”,你如何看待它

首先AI与算力之间存在着密切的关系。算力指的是计算机进行处理和执行任务的能力,而AI则是利用算法和机器学习技术使计算机能够模拟人类智能行为的领域。较高的算力可以为AI提供更大的计算资源和解决复杂问题的能力。对于训练深度神经网络等复杂的机器学习模型,需要大量的计算资源来处理海量的数据和参数优化。较高的算力可以加快训练过程的速度,并且有助于提高AI模型的性能和准确性。近年来,随着计算技术的不断发展和硬件设备的升级,如图形处理器(GPU)和专用AI芯片的出现,计算机的算力得到了显著提升。

2023-06-24 22:10:15 313

原创 如何看待调查称半数年轻人存款不足10万?

最近,有一项关于年轻人存款状况的调查引发了社会的广泛关注。据调查,当前有近一半的年轻人面临存款不足的问题,其中53.7%的年轻人的存款额度不超过10万。这一数据让很多人感到惊讶和担忧,也引发了对年轻人储蓄观念和消费习惯的思考。

2023-06-24 21:57:46 338

原创 java之路 —— SpringBoot整合MyBatis

将 Spring Boot 与数据库整合是非常重要的,因为数据库是大多数应用程序的核心,它存储了应用程序的数据,包括用户信息、订单信息、商品信息等等。通过将 Spring Boot 与数据库整合,我们可以方便地操作数据库,实现数据的持久化和管理。Spring Boot 提供了很多方便的方式来与数据库进行整合,包括使用 JDBC、JPA、Hibernate、MyBatis 等 ORM 框架。我们只需要在项目中添加相应的依赖,然后进行配置,就可以方便地操作数据库了。

2023-06-23 22:07:07 262

原创 java之路—— 带你初步了解mybatis框架

MyBatis是一种优秀的基于Java的持久层框架,它利用了面向对象的编程思想来操作数据库。MyBatis 工作原理 主要是通过 XML 文件或注解配置 SQL 语句,然后运用“对象关系映射(ORM)”技术将数据库中的数据转换为Java对象,方便Java程序的使用。MyBatis 并不会对Java对象进行过多的侵入性操作,仅仅提供了一种便捷的方式来操作数据库,这带来了极为优秀的“扩展性”和“可插拔性”。

2023-06-23 20:39:07 172

原创 java之路—— SpringMVC的常用注解解析以及作用、应用

springmvc的常用注解

2023-06-22 20:53:50 1169

原创 java之路—— SpringMVC的基本详解

Spring MVC是一个用于构建Web应用程序的基于MVC(Model-View-Controller)设计模式的框架。它是Spring Framework的一部分,提供了一种灵活、可扩展且功能强大的方式来开发Java Web应用程序。特点:Spring MVC与具体的视图技术解耦,可以方便地切换不同的视图渲染器,如JSP、Thymeleaf、Freemarker等。通过使用注解,可以简化配置,并提高开发效率。

2023-06-22 18:25:08 309 1

原创 java之路——日期与数字的详解与应用方面

DateTimeFormatter 类还提供了一些预定义的格式器,可以简化日期时间的格式化和解析。

2023-06-21 22:34:08 1371

原创 java之路—— Spring IOC 的详解与基本应用

首先在了解ioc之前,我们要先了解Spring的基本概念。Spring是一个开源的Java应用程序开发框架,它提供了一套全面的解决方案,用于开发企业级应用程序和Java EE应用程序。Spring框架的目标是简化Java应用程序的开发,并提高代码的可维护性和扩展性。Spring的IOC容器可以管理应用程序中的对象,并负责对象之间的依赖注入。它减少了代码中的硬编码依赖关系,使得对象之间的耦合度降低,便于测试和维护。

2023-06-21 21:36:36 637

原创 java之路——AOP知识详解以及程序中的应用

在学习AOP中,来了解spring的主要内容。Spring 的核心内容包括IOC,AOP等。IOCSpring 的 IOC(Inversion of Control)是指通过容器帮用户管理组件及实现对象之间解耦。Spring 中的 IOC 容器可以自动管理对象之间的依赖关系和生命周期。用户只需要通过配置或者注解的方式告诉 Spring 哪些组件需要注入到哪些对象中,Spring 的 IOC 容器就会自动为用户完成依赖注入。AOPSpring 的 AOP 是指基于切面的编程。

2023-06-18 22:27:03 1723

原创 java之路 —— 连接数据库知识与操作应用

项目很多小伙伴学习后端的时候以及学习数据库的时候,在后端程序中,有很多的数据来自前端的传递或者后端本身创建的,这些数据都是需要的,学过数据库的小伙伴知道,数据存放到数据库里才容易管理以及安全、方便。那么我们就会需要将程序与数据库进行连接并执行相关的操作,这是后端的一项经典又必不可少的技术。

2023-06-18 21:48:50 2929

原创 蚁群算法解决TSP(旅行商)问题

文章目录一、前言蚁群算法的基本原理:其中的基本过程二、状态问题1.城市被选择的概率由距离和信息素浓度共同决定2.信息素更新三、整体实现一、前言蚁群算法(Ant Colony Optimization,ACO)是一种模拟自然界中蚂蚁觅食行为的优化算法。在蚁群算法中,蚂蚁寻找食物的方式被模拟为一种通过信息素通信来协作搜索解空间的算法。蚁群算法要求考虑到多个蚂蚁之间相互交流信息的影响,因此也称作反向分布式系统中的元启发式,并已经成功用于旅行商问题(TSP)、车辆路径规划问题(VRP)等优化领域。它利用蚁群

2023-06-11 21:03:58 1728 3

原创 Java io流 详解

"IO流"(Input/Output stream)指的是Java中用于处理输入输出(I/O)数据的机制。在Java中,所有的输入和输出都被抽象为“流”对象,并通过输入流读取数据、输出流写入数据。Java的I/O包提供了丰富的类和方法来支持不同类型的流,输入流和输出流之间可以自由地进行转换。它们分别主要包括字节流和字符流两种类型。其中,字节流是操作二进制数据的流,可以处理任何类型的数据,常见的例如InputStream和OutputStream;

2023-06-11 20:05:01 4236

原创 六一 特效~ 你也是大小孩

一次朋友去他家做编程作业,作业是利用编程实现一个动画场景:孙小弟在树林中吃到一个水果,发现水果有毒,整个人都变成了蓝色。在大会上,,他不仅独立完成了华为云社区技术闯关活动“代码密室”的三层代码破解,还成功组装了鲲鹏服务器芯片,真是英雄出少年!他喜欢编程,从Scratch学到python,自己做过自动搬运垃圾的智能机械臂,还有一个可以和他聊天的对话机器人,因为编程,学习成绩也蹭蹭往上涨。六一,也可以让我们一起来认识这些小小程序员,看他们用童趣和想象力,coding出一个与众不同的童年。

2023-06-01 17:53:56 73

原创 消息队列详解与应用

概 念。

2023-05-30 23:36:35 616

原创 经典算法之——滑动窗口

滑动窗口算法是较为入门题目的经典算法之一,一般是一些有规律数组问题的最优解,如果一个数组的问题可以用动态规划解,但又可以使用滑动窗口解决,那么往往滑动窗口的效率更高。而关于双指针的算法中,它的左右指针则是形成了一个窗口双指针也并不局限在数组问题,像链表场景的 “快慢指针” 也属于双指针的场景,其快慢指针滑动过程中本身就会产生一个窗口,而这样的话就很容易形成一种变化的滑动窗口,当然也会有定向窗口大小。该协议是 TCP协议 的一种应用,用于网络数据传输时的流量控制,以避免拥塞的发生。

2023-05-28 22:39:52 8148 2

原创 带你走进MySQL

*如果你想从事数据分析师或者数据库管理员或者自己学习开发的时候,数据库是不可避免要接触的。像我们在网站上看到一些图文或者数据,都来自服务器发送的内容,而这些内容就来自数据库里当你在淘宝或者京东商城购物时,那些菜单、商品的数据基本来自与数据库里听歌APP里的歌曲,也是从数据库里读取出来的又或者你在注册自己的账号或者登录的时候,也是将这个信息存放到数据库和验证取出的可见数据库无论在web端还是开发或者其他中,地位都是很重要的数据库。

2023-05-24 19:25:23 101 4

原创 AI歌手会成为发展的主流吗

AI音乐,简单理解就是人工智能创作音乐;AI 音乐创作领域可以做包括词曲写作、伴奏生成、歌声合成等。1、曲谱生成,包括词曲和伴奏编曲的生成;2、演奏生成,曲谱到声音需要经过演奏的过程,相同的曲谱经过不同的演奏技巧演奏可以有非常大的差别,所以我们要基于曲谱生成演奏技巧;3、声音合成,根据曲谱和演奏技巧合成音乐声音,包括人声和乐器声音的合成。

2023-05-23 21:48:27 136 1

原创 经典算法之——递归

说明而单单的说递归话,就是函数调用自身那么简单,但是在真正的实现过程或者解决实际问题中,并没有那么简单,所设计的范围与应用的场景还是比较广的。介绍其实斐波那契数列算法也可以更好的说明简单的递归形式。这里介绍几个属于递归的几种形式算法。

2023-05-22 01:54:38 1196 1

原创 经典算法之——解决全排列问题以及详解

回溯”指的是“状态重置”,可以理解为“恢复现场”,是在编码的过程中,是为了节约空间而使用的,而在递归或者深度优先中根据需要的场合来配合回溯法可以进一步对自己的代码进行优化。, n-1, n},方向都为向左。邻位对换法是全排列生成算法中的其中一种,它的换位是双向的,通过保存数字的“方向性”来快速得到下一个排列。最后以 3 开头的全排列为[3, 1, 2], [3, 2, 1];以 1 开头的全排列为[1, 2, 3], [1, 3, 2];以 2 开头的全排列为[2, 1, 3], [2, 3, 1];

2023-05-19 01:46:57 3987 6

原创 登录和注册的基本实现,超简单!

**相信有很多的人在刚刚做项目的实现,登录与注册功能的实现是基本的要求,要是刚刚开始写的小伙伴肯定会有很多的困惑,这里我介绍一下自己的写法,希望能帮到你,也希望能免费点个小**首先是登录操作我这里为之前写的一个抗疫的网站弄的功能,大家可以根据自己的规则来更改登录的 html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http

2023-05-16 11:23:41 3448 2

原创 springMVC自定义的消息转换器解决格式转化

这样就可以将后端的含有中文的数据传至 前端展示。这里记录一下学习MVC的过程。做自定义的类型转换器。

2023-05-13 21:36:23 351

原创 后端处理图片的上传和下载

在做该功能的时候,无论的是前端实现还是后端实现,应该是要根据自己项目的情况来定,当然我们得首先要学会这两种的实现方式。目前还在学习阶段,有什么问题可以提出,一起学习!

2023-05-07 15:36:06 193 1

原创 前端html,js实现图片的上传与下载

【代码】前端html,js实现图片的上传与下载。

2023-05-06 22:29:16 772 1

原创 前端分页小组件的实现,可分页前端数据

这样就可以实现基本的一个分页功能。

2023-05-04 15:24:33 156 1

原创 数据库信息返回前端展示

这里我写项目需要展示的部分。Controller层。

2023-05-03 22:04:22 919

空空如也

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

TA关注的人

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