自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

伊甸园的博客

我以梦为现实,以现实为梦,以未来为过去,以过去为,我无所不有,但我很贫乏。

  • 博客(91)
  • 资源 (23)
  • 收藏
  • 关注

原创 ✅MySQL会默认添加主键索引,为啥还会有锁表的情况?

其实,索引,并不只是主键索引,还有很多普通索引呢,我们大多数查询都是基于普通索引的,而数据库在加锁的时候,也会先对普通索引加锁,然后再回表对主键索引加锁。那么,如果一个update语句的where条件中的字段,用不到普通索引,这时候他就没办法对普通索引加行级锁,那么就需要锁表了。虽然这张表可能有主键索引,但是在更新这个过程因为不知道要找哪个索引树(因为没普通索引),那么就干脆锁表了。在MySQL中,主键非常重要,因为Innodb中的主键索引是用来构建聚簇索引的。那同时,我们也知道,

2025-03-15 10:50:16 119

原创 ✅binlog、redolog和undolog区别?

在MySQL数据库中,binlog、redolog和undolog都是日志类型文件,但它们各自的作用和实现方式有所不同。崩溃恢复是指在数据库系统因为某种原因而发生崩溃或非正常关闭后,通过一系列机制和步骤来恢复数据库到一个一致性和可用的状态。崩溃恢复是数据库管理系统的重要功能,它确保数据库在出现异常情况后能够自动恢复,避免数据丢失或数据库状态不一致的问题。binlog是MySQL用于记录数据库中的所有DDL语句和DML语句的一种二进制日志。

2025-01-04 12:01:56 460

原创 记录 Bonobo Git 服务器 SMTP 设置

Bonobo 使用标准的 .NET SMTP 设置,可以在 web.config 中指定这些设置。

2024-06-26 11:01:16 337 1

原创 log4j2日志框架配置+日志记录写入数据库

import com/*** @description: TODO 单例模式数据库连接工厂方法static {// 验证数据源配置是否正确,尝试获取连接 try(Connection testConnection = druidDataSource . getConnection()) {= null) {} else {} } /*** 获取数据库连接。* @return 数据库连接对象。

2024-05-17 23:42:20 2081

原创 用hMailServer+roundcubemail+宝塔安装配置一个自己的邮箱服务

# 用hMailServer+roundcubemail安装配置一个自己的邮箱服务## 1、准备工具与资料:- 云服务器一台 基础配置就行 2核4G。- 域名一个 以下用lizipro.cn示例。

2024-05-12 13:03:13 1628

原创 使用JXLS+Excel模板制作灵活的excel导出

前期一直卡在模板的批注上,改了很多遍的模板批注最终才成功导入,记录下方便以后寻找。

2024-04-22 21:43:09 1230 3

原创 CodeMirror使用: 编写一个在线编辑HTML、JS、CSS文件,网页的模板页面-初实现

CodeMirror 是一个强大的基于浏览器的文本编辑器组件,主要用于网页中创建可编辑的源代码区域,特别适用于编写和展示程序代码。它支持多种编程语言的语法高亮、代码折叠、自动补全、查找替换等多种高级编辑特性。

2024-04-09 22:19:36 5339

原创 前端-layui动态渲染表格行列与复杂表头合并

cols中传入[ [ ],[ ] ]这种数组类型的格式;拿到id 渲染位置表格。

2023-09-15 15:55:05 3376

原创 使用python做了一个pdf转word的小工具

写在前面:近来工作上一直在处理word excel等文档的处理;于是利用新学的python写了一个小工具。1、其实实现起来很简单,主要是利用了pdf2docx这个库来实现。首先安装导入pdf2docx库。

2023-09-15 14:59:28 594

原创 关于谷歌云计算进行Python yolov5的使用操作(简略版)

关于谷歌云计算的使用操作(简略版)谷歌云盘:https://drive.google.com/谷歌云盘创建操作:123.添加Colaboratory关联设置免费的GPU它是很容易更换默认的硬件(None,GPU,TPU),通过 修改->笔记本设置或者代码执行程序->更改运行时类型来选择GPU,作为硬件加速.Colaboratory命令:查看GPU:2 测试torch:下载我们需要的一些包requirements.txt文件:!解压zip:!

2023-05-29 15:36:32 1314

原创 【使用java ssm Excel解析创建数据库批量导入数据库】

最近属实忙的很,也很久没有写blog,既然有点时间就整理一下吧。使用java ssm Excel解析 创建数据库批量导入。这个代码是自己记录回忆使用,板书格式很随意。until 数据库工具实现创建插入数据库。controller 调用一下就好了。没时间直接贴代码吧!

2023-05-10 15:10:10 245

原创 Java面试题全面总结

Java面试试题

2023-03-10 19:33:47 126

原创 Java基础常见面试题-异常-泛型-反射-注解-SPI-序列化-IO流

Java泛型是JDK5中引入的一个新特性。使用泛型参数可以增强代码的可读性以及稳定性。泛型就是参数化类型或类型参数化反射是指能访问、检测、修改其本身状态的能力;SPI=Service Provider Interface,字面意思服务提供者的接口序列化:就是将数据结构或者对象转化为二进制字节流的过程。反序列化:将在序列化中产生的二进制字节流转换成数据结构或者对象。序列化和反序列化常见应用场景:对象在进行网络传输;将对象储存到文件前需要进行序列化,将对象从文件中读取出来需要进行反序列化。

2023-02-25 17:21:29 528

原创 java基础-面向对象

1操作少量的数据: 适用 String2单线程操作字符串缓冲区下操作大量数据: 适用 StringBuilder3多线程操作字符串缓冲区下操作大量数据: 适用 StringBuffer。

2023-02-23 22:26:05 231

原创 Java基础概念与常识的面试题-1

在Java语言中,jvm可以理解的代码就叫字节码(扩展名为.class的文件)。它不面向任何特定的处理器,只面向虚拟机。​ 优点:1 解决了传统解释型语言执行效率低的问题 ​ 2 同时保留了解释型语言可移植性的特点;Java程序运行相对来说是高效的方法的返回值是指我们获取到某个方法体中的代码执行后产生的结果!返回值的作用是接收结果,使得它可以用于其他的操作. ​ 1 无参数返回值方法//......// 下面这个方法也没有返回值,虽然用到了 returnif (...) {

2023-02-23 10:59:42 179

原创 jvm知识与面试题

jvm面试相关

2023-02-22 19:54:23 115

原创 jvm知识点与面试题

定义:Java虚拟机(Java virtual machine),一种能够运行Java字节码的虚拟机。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。第五块:运行时常量池(Runtime Constant Pool)方法区、堆、java栈、PC寄存器、本地方法栈。3 执行引擎:执行字节码,或者执行本地方法。第四块:方法区域(Method Area)3 Java中垃圾收集的方法有哪些?2 运行时数据区(内存结构)用来装载.class文件。第三块:堆(Heap)

2023-02-22 17:00:45 891

原创 通配符的匹配很全面, 但无法找到元素 ‘context:component-scan‘ 的声明。

【代码】通配符的匹配很全面, 但无法找到元素 'context:component-scan' 的声明。

2023-02-17 14:48:05 181

原创 mybatis之自动映射与自定义映射与级联查询

# 自动映射【resultType】 自定义映射【resultMap】-- 定义主键字段与属性关联关系 -- > < id column = "id" property = "id" > < / id >

2023-02-15 00:06:19 269

原创 java开发-用户注册-MD5工具加密密码

封装执行加密的工具类(MD5Util.java)可以直接在addUSer()方法运行前进行加密。MD5加密是一种常见的加密方式,我们经常用在保存用户密码和关键信息上。

2023-02-10 13:21:26 1602

原创 08-Ajax核心函数和json格式参数

使用jQuery提供的函数实现Ajax请求处理,代替直接使用XMLHttpRequest,但是jQuery实际使用的是异步对象。

2023-01-30 18:21:18 479

原创 07-jQuery事件

就是js中的去掉on部分。例如点击事件onlick,这里的事件名称就是click。语法:$(“选择器”).on(事件名称.function(){事件处理函数}我认为用第一种还是第二种绑定方式根据习惯来用,并不会有太大影响。$(“选择器”):选择0或多个dom对象,并绑定事件。:$(“选择器”).事件名称(事件的处理函数):函数定义,当事件发生时,执行这个函数。事件:就是js中去掉on那部分。function:事件处理函数。

2023-01-28 10:26:20 129

原创 06-jquery函数

html(参数):给dom’数组中所有成员设置新的文本内容。html():获取dom数组中第一个dom对象的文本值(html()返回结果相当于innertHtml):没有参数,获取dom数组中第一个dom对象的value值。:有参数,给dom数组中所有dom对象的value属性赋值。3append():给dom对象在他后面增加新的dom对象。1 remove():删除选择的dom对象和他的子对象。语法: $(“选择器”).append(子dom对象)2 empty():删除dom对象的子对象。

2023-01-23 15:56:00 1576

原创 05-jquery基本过滤器

$(“选择器”).事件名称(事件的处理函数)$(“选择器”): 选择0或多个dom对象,并绑定事件。语法:$(:“选择器>option:selected”)语法: $ (“:checkbox:checked”)语法:$ (“:text:disabled”)语法:$ (“:text:enabled”)语法:$(“选择器:eq(下标)”)语法:$(“选择器:gt(下标)”)语法:$(“选择器:lt(下标)”)语法:$(“选择器:first”)语法:$(“选择器:last”)

2023-01-20 20:52:06 985

原创 04-jquery表单选择器

表单悬着去使用dom对象的type属性值定位dom对象,和from标签无关。如下代码有文本框,radio,checkbox选项。//使用表单选择器,获取dom对象。语法:$(".type属性值)

2023-01-20 09:31:31 531

原创 03-jquery基本选择器

什么是选择器:选择器就是一个字符串,是一个定位dom对象的字符串,使用这个字符串作为条件定位dom对象,可以使用id,class样式名称,标签名称作为选择器使用,定位dom对象。组合选择器使用id或者class名称或者标签名称定位dom对象,id,class,标签名称可以任意组合。使用dom对象的id,class名称,标签名称等作为定位dom对象。语法:$("#id,.class,标签名称)

2023-01-19 11:19:31 117

原创 02-jQuery的对象分类

语法:$(dom对象)得到的是一个jquery对象,可以调用jquery中提供的函数。语法:jquery对象是一个数组,数组成员是dom对象。使用[下标]或get(下标)需要dom对象的函数或者属性,以及使用jquery中提供的函数和属性。:使用js代码获取,创建对象。html中的对象都是dom对象。dom对象和jquery对象可以相互转换。:使用jQuery获取的对象。

2023-01-19 10:10:21 164

原创 jQuery学习-01jQuery下载安装

jQuery就是js函数库,里面有大量的js函数库,使用这些函数操作dom对象,做事件,动画,ajax处理;

2023-01-18 09:58:19 826

原创 普利姆(Prim)算法与克鲁斯卡尔(Kruskal)算法

用Prim算法从p城出发 求出生成树;

2022-10-10 15:25:54 208

原创 第三章-内存管理

将空间分为大小相等的分区;每个分区就是一个“页框”(=页帧=内存块=物理块=物理页面);每个页框有一个页框号(=页帧号=内存块号=物理块号=物理页面号)从0 开始页表页号不占存储空间(类比数组)如何实现地址转换步骤:Eg:在某计算机系统中,页面大小是50B。某进程逻辑地址空间大小为200B,则逻辑地址 110 对应的页号、页内偏移量是多少?逻辑地址结构问题一:页表必须连续存放,因此当页表很大时,需要占用多个连续的页框。

2022-09-30 20:06:44 613 1

原创 死锁(死锁的发生条件、预防死锁、避免死锁)

请求和保持条件:进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源又被其他进程占有,此时请求进程被阻塞,但又对自己已有的资源保持不放。指系统按照这种序列分配资源,则每个进程都能顺利完成。只要能找出一个安全序列系统就是安全状态。当然,安全序列可能有多个。2 提供一种算法,利用上述信息来检测系统是否进入死锁状态。1 用某种数据结构保存资源的请求和分配信息。可以采用静态分配方法。

2022-09-27 09:21:45 995

原创 第二章-进程同步与互斥

管程是一种特殊的软件模块,有以下部分组成1 局部于管程的共享数据结构说明;2 对该数据结构进行操作的一组过程‘3 对局部于管程的共享数据设置初始值的语句;4 管程有一个名字;基本特征1 局部于管程的数据只能被局部于管程的过程所访问2 一个进程只有通过调用管程的过程才能进入管程访问共享数据;3 每次仅允许一个进程在管程内执行某个内部过程;

2022-09-27 09:13:45 1311

原创 第三章-存储系统-Cache和页式存储、虚拟存储

2 直接映射:如果对应位置非空,则毫无选择的替换,无需算法选择;3 组相联映射:分组内满了才需要替换,需要在分组内选择替换哪一块;全写法写回法把逻辑页号映射到主存块号页表:逻辑页→主存块号CPU执行的机器指令中,使用的是“逻辑地址”,因此需要通过“页表”将逻辑地址转为物理地址。页表的作用;记录了每个逻辑页面放在哪个主存块中;引入快表(TLB)

2022-09-25 22:43:36 1484

原创 第三章-存储系统

DRAM动态存储刷新刷新周期:一般为2ms(一般默认)2 每次刷新多少存储单元?以行为单位,每次刷新一行存储单元为什么采用行列地址?采用二维排列减轻选通线压力3 如何刷新?有硬件支持,读出一行的信息后重新写入,占用1 个读/写周期4 在什么时候刷新?思路一:每次读完都刷新一行→分散刷新思路二:2ms内集中安排时间全部刷新 →集中刷新思路三:2ms内每行刷新一次即可 →异步刷新ROM 只读存储器(选择题高频)磁盘的组成优缺点:磁盘的性能指标磁盘容量记录密度。

2022-09-25 22:35:46 1448

原创 操作系统-第二章-调度与调度算法

先来先到服务,时间片轮转,短作业优先等调度算法

2022-09-23 15:11:22 473

原创 数据的表示和运算2(定点数的移位、原码反码补码的移位运算、原码乘法运算、原码出发运算、浮点数的运算)

C语言中的强制类型转换在计算机中的解释、原码反码补码的乘除法运算、浮点数的运算

2022-09-22 22:28:48 307

原创 操作系统-第二章-进程与线程

引入线程机制后,有什么变化?

2022-09-22 15:12:37 559

原创 第二章-数据的表示和运算

反码补码 加法运算器

2022-09-22 09:42:45 215

原创 计算机概述

第一代:电子管时代;速度:几千-几万第二代:晶体管时代;速度:几万-几十万第三代:中小规模集成电路时代;速度:几十万-几百万第四代:大规模、超大规模集成电路时代;速度:上千万-万亿

2022-09-20 22:04:23 138

原创 第一章 操作系统概述

程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务*

2022-09-20 16:51:29 296

使用JXLS+Excel模板制作灵活的excel导出

使用JXLS+Excel模板制作灵活的excel导出

2024-04-22

pdf转docx小工具

pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具pdf转docx小工具

2023-07-12

Java面试.xmind

Redis 介绍一下Redis Redis是一个开源的保存键值对、基于内存、支持多种数据结构的存储系统,可以作为数据库、缓存。 Redis支持哪些数据类型? 支持五种数据类型 hash string list set sorted set Redis有哪些优缺点? 1 性能极高,能到10万次/s的读写速度 2 支持数据的持久化,对数据的更新采用Copy-on-write技术,可以异步地保存到磁盘上 3 支持丰富的数据类型 4 支持数据的备份,快速的主从复制 Redis使用单线程模型为什么性能依然很好? 1 基于内存的,数据读写快 2 避免线程切换浪费资源 3 基于非阻塞IO,多路复用 4 使用了高性能数据结构,如 Hash Redis各数据类型最大容量是多少? Strings:一个 String 类型的 value 最大可以存储512MLists:元素个数最多为 2^32-1 个,即 4294967295 个Sets:元素个数最多为 2^32-1 个,即 4294967295 个Hashes:键值对个

2023-03-10

2012年英语一真题解析.pdf

2012年英语一真题解析.pdf

2022-10-28

第一章 操作系统概述.png

操作系统四大特征 并发 并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。常考易混概念——并行:指两个或多个事件在同一时刻同时发生。 共享 共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。 在这里插入图片描述 在这里插入图片描述 虚拟 虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。

2022-09-20

计算机网络第二章 物理层.xmind

第二章 物理层 1. 物理层基本概念 2. 数据通信基础知识 3. 物理层下面的传输媒体 4. 信道复用技术:复用即为共享信道 本章最重要的内容是: 1:物理层的任务 2:几种常用的信道复用 3:几种常用的宽带接入技术,主要是ADSL和FTTx 信道极限容量讨论: 在通信领域许多学者都在努力的寻找一种提高数据传输效率的途径。然而实际情况很复杂。我们都知道数字通信优点在于:在信道传输中都或多或少有失真,但在接收中依然能识别出原来的信号这也不影响我们进行发送消息。如果失真过大就会在接收端无法识别。对信号的干扰有如下因素:速率、传输距离、噪声、媒体质量。

2022-04-14

计算机网络第一章概述.bmp

计算机网络第一章概述思维导图: 本章节重点: 互联网边缘部分和核心部分的作用 计算机网络的性能指标 计算机网络的分层次的体系结构 目录 21世纪是以网络为核心的信息时代 互联网:(Internet):超级多的各种计算机网络互连起来。 互联网两个重要基本特点:连通性、共享。 计算机网络是由若干个结点和连接这些结点的链路组成 互连网:网络的网络 网络把许多计算机连接在一起,而互连网则把许多网络通过路由器连接在一起。与网络相连的计算机称为主机。 互联网基础结构的三个阶段: 第一阶段 第二阶段 第三阶段 互联网的标准化工作 1.3互联网的组成 1.4 计算机网络的类别 1.5计算机网络的性能 7利用率 1.6计算机网络体系结构 协议与划分层次 分层的好处

2022-04-13

软件工程思维导图 (2).pdf

软件工程思维导图

2021-12-14

软件项目管理知识点.png

软件项目管理知识点

2021-07-04

spring-mybatis-ssm框架的商城网站ssm-schema.rar

ssm框架的商城网站

2021-07-04

第四章--需求获取.bmp

需求工程思维导图

2021-07-04

第二章 需求基础.bmp

问题域 软件系统只需要现实中需要改变的部分称为【问题的发生地】也就是问题解决的基本范围-----解决问题必须涉及的事件与事物称为【问题域】。 问题域是需求的背景 问题域的背景信息又称为问题域特性。 解系统 软件系统通过影响问题域能过帮助人们解决问题----【解系统】 解系统是解决问题的解决手段-解系统与问题域之间存在可以互相影响的接口可以实现交互活动 用户关注---问题域 开发人员关注--解系统 需求工程师---做好桥梁 ———————————————— 版权声明:本文为优快云博主「kokotao」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.youkuaiyun.com/weixin_44698624/article/details/118433549

2021-07-03

第七章 EL表达式思维导图.png

第七章 EL表达式思维导图.png

2021-05-29

第六章 JSP技术思维导图.png

第六章 JSP技术思维导图.png

2021-05-29

第五章 cookie与session会话技术思维导图.png

第五章 cookie与session会话技术思维导图.png

2021-05-29

第四章 servlet思维导图.png

第四章 servlet思维导图.png

2021-05-29

第三章 http协议.png

第三章 http协议.png

2021-05-29

第二章 Java web开发环境搭建 .png

第二章 Java web开发环境搭建 .png

2021-05-29

软件工程导论思维导图.pdf

可行性研究 需求分析 总体设计 详细设计 实现 面向对象技术 面向对象设计

2020-12-31

可行性研究3.pdf

软件工程导论思维导图第二章 可行性研究 一,可行性研究过程 1,复查系统规模和目标 2,研究目前正在使用的系统 3,导出新系统目前正在使用的高层逻辑模型 4,进一步定义问题 5,导出和评价供选择的解法 7,草拟开发计划 8,书写文档提交审查 等。。。。。。。。。

2020-12-29

操作系统——死锁流程图.png

死锁流程图 复习画流程图一目了然 操作系统——死锁流程图

2020-06-16

计算机组成原理-存储器思维导图.png

4.1.1存储器分类 按存储介质分类 半导体存储器 磁表面存储器 磁芯存储器 光盘存储器 按存取方式分类 随机存取器 只读存储器 串行访问存储器 按在计算机的作用分类 主存储器、辅助存储器、缓冲存储器。 等等,详细请下载查看

2020-06-13

MOOCPPT -CRC循环冗余检验-2-5(华中科大).pdf

循环冗余校验码(CRC),简称循环码,是一种常用的、具有检错、纠错能力的校验码,在早期的通信中运用广泛。循环冗余校验码常用于外存储器和计算机同步通信的数据校验。奇偶校验码和海明校验码都是采用奇偶检测为手段检错和纠错的(奇偶校验码不具有纠错能力),而循环冗余校验则是通过某种数学运算来建立数据位和校验位的约定关系的。

2020-06-13

MOOCPPT 汉明码详解-2-6(华中科大).pdf

汉明码详解 汉明码(Hamming Code),是在电信领域的一种线性调试码,以发明者理查德·卫斯里·汉明的名字命名。汉明码在传输的消息流中插入验证码,当计算机存储或移动数据时,可能会产生数据位错误,以侦测并更正单一比特错误。由于汉明编码简单,它们被广泛应用于内存(RAM)。

2020-06-13

计算机系统概论.png

计算机组成原理-第一章-概论导图 计算机系统简介 计算机的软硬件概念 硬件:指计算机实体部分 软件:指人们事先编制好的具有各类特殊功能的程序组成 计算机系统的层次结构 计算机组成和体系结构 计算机的基本组成 冯诺依曼计算机的特点 等等。。。。

2020-06-10

第三章—系统总线.png

计算机组成原理-第三章—系统总线——思维导图。 第三章—系统总线 3.1系统总线概念 3.2.1片内总线 3.2.2系统总线 3.2.3通信总线 3.3总线特性及性能指标 3.3.1总线特性 3.3.2总线性能指标 。 3.3.3总线标准 3.4总线结构 3.4.1单总线结构 3.4.2多总线结构 3.4.3总线结构举例 3.5总线控制 3.5.1总线判优控制 3.5.2总线通信控制 一、 同步通信 异步通信 分离式通信 复习整理,谢谢大家支持!!

2020-06-10

spring文件上传.pdf

spring文件上传,文件上传 传统方式 借助第三方组件实现文件上传: UserController.java编写:

2020-05-03

空空如也

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

TA关注的人

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