自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

爱吃鸡腿的明仔

一只2020年大学毕业的java小菜鸟

  • 博客(178)
  • 资源 (11)
  • 收藏
  • 关注

原创 Windows配置SonarQube代码审查工具详细步骤(附带IDEA SonarLint插件使用)

本篇博客主要环境讲述Windows环境下配置SonarQube代码审查工具的项目步骤(附带Idea SonarLint插件的使用),搭建环境为SonarQube 9.8 + JDK 11 + PostgreSql 14.2

2023-09-03 13:32:44 3569 2

原创 Java面试核心知识点梳理(二)——Java集合

什么是集合以及使用的好处?集合是用于存放对象的容器,而集合类是Java 的一种数据结构。需要注意的是,集合类只能存放对象,不能存放基本数据类型,且是对象的引用,而非对象本身。提供高效的的数据结构和算法,提高程序运行效率提供通用 API 能力,降低开发和维护成本集合类存放于Java.utilset(集)、list(列表包含 Queue)和map(映射)。Collection:Collection 是集合 List、Set、Queue 的最基本的接口。

2023-04-17 20:04:56 873 1

原创 Java面试核心知识点梳理(一)——JVM

(1) 基本概念:JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集一组寄存器一个栈一个垃圾回收堆和一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互。(2) 运行过程:我们都知道 Java 源文件,通过编译器,能够生产相应的.Class 文件,也就是字节码文件,而字节码文件又通过Java 虚拟机中的解释器,编译成特定机器上的机器码。① Java 源文件—->编译器—->字节码文件② 字节码文件—->JVM—->机器码。

2023-04-06 20:48:41 848

转载 什么是索引覆盖?什么是索引下推?

什么是索引覆盖?什么是索引下推?

2023-03-27 21:30:56 494

原创 MySQL优化——Explain分析执行计划详解

在应用的的开发过程中,由于初期数据量小,开发人员写 SQL 语句时更重视功能上的实现,但是当应用系统正式上线后,随着生产数据量的急剧增长,很多 SQL 语句开始逐渐显露出性能问题,对生产的影响也越来越大,此时这些有问题的 SQL 语句就成为整个系统性能的瓶颈,因此我们必须要对它们进行优化,本章将详细介绍在 MySQL中优化 SQL 语句的方法。当面对一个有 SQL 性能问题的数据库时,我们应该从何处入手来进行系统的分析,使得能够尽快定位问题 SQL 并尽快解决问题。

2023-03-27 19:30:53 2306 4

转载 数据库事务与锁详解

事务是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性一致性隔离性和持久性)属性。事务是数据库运行中的一个逻辑工作单位,由DBMS中的事务管理子系统负责事务的处理。

2023-03-08 19:54:47 749

转载 为什么 B+ 树比 B 树更适合应用于数据库索引?

加索引是数据库加速查询的一种方式,那么为什么用索引可以加快查询呢?讲到索引,其实我们经常会听到一个图书馆的例子,图书馆里的书目繁杂,我们如何从若干本书里面找到一本我们想要的书呢?我们根据图书馆系统检索,可以找到某本书对应的图书编号。在基于书籍按照一定规则排列的前提下,我们可以根据图书编号找到这本书。例如,假设图书编号根据:第几个书架 - 书架上第几个格子 - 从左到右数第几个位置这样的规则编排,我们就可以轻松的获取到我们想要的书籍。按照一定的规则排列有序。

2023-03-07 20:13:42 382

转载 数据库三大范式(图文详解)

范式是数据库设计时遵循的一种规范,不同的规范要求遵循不同的范式。

2023-03-07 19:46:38 11066 5

原创 TypeScript快速入门———(二)TypeScript常用类型

类型系统所有的 JS 代码都是 TS 代码。JS 有类型(比如,number/string 等),但是JS不会检查变量的类型是否发生变化。而 TS 会检查可以显示标记出代码中的意外行为,从而降低了发生错误的可能性。类型注解常用基础类型可以将 TS 中的常用基础类型细分为两类:1.JS 已有类型, 2.TS 新增类型。JS 已有类型原始类型:number/string/boolean/null/undefined/symbol对象类型:object(包括,数组、对象、函数等对象)

2023-02-16 20:04:11 548 3

原创 快速查找前端页面元素的对象类型

当我们开发时会遇到需要取出某个控件属性的需求,那么如何能知道某个控件的对象是什么呢?比如说我们常用的标签,标签,他它们分别对应的对象又是什么呢?

2023-02-14 19:51:22 528

原创 TypeScript快速入门———(一)TypeScript 介绍以及初体验

TypeScript(简称:TS)是 JavaScript 的超集(JS 有的 TS 都有)TypeScript = Type +JavaScript(在 JS 基础之上,为 JS 添加了类型支持TypeScript是微软开发的开源编程语言,可以在任何运行 JavaScript 的地方运行。

2023-02-13 16:55:41 455 2

原创 SpringBoot中使用Redis实现分布式锁

SpringBoot中使用Redis实现分布式锁

2022-11-16 20:22:39 4993 9

原创 使用RedisTemplate踩坑记录-> com.fasterxml.jackson.core.JsonParseException: Unrecognized token ‘XXX‘

使用RedisTemplate踩坑记录-> com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'XXX'

2022-11-14 20:48:30 1161 3

原创 IDEA连接DB2数据库自动生成Entity实体类(SpringBoot + Spring JPA + Lombok + DB2)

IDEA连接DB2数据库自动生成Entity实体类(SpringBoot + Spring JPA + Lombok + DB2)

2022-11-10 19:47:45 2953 4

转载 解决Spring JPA自动更新数据库的问题

解决Spring JPA自动更新数据库的问题

2022-10-23 17:50:10 2786 3

原创 使用liquibase进行数据库迁移(Postgresql/Mysql)——springboot整合Liquibase以及使用maven命令执行Liquibase同步更新数据

文章目录一。什么是Liquibase?1.liquibase的优点2.liquibase的基本概念3.官网地址二。SpringBoot整合Liquibase1.简介2.项目结构3.测试结果4.特别注意5.扩展6.项目地址三。使用Maven命令来执行Liquibase同步更新数据1.简介2.项目结构3.测试结果4.项目地址:一。什么是Liquibase?liquibase是一个数据库变更的版本控制工具。项目中通过liquibase解析用户编写的liquibase的配置文件,生成sql语句,并执行和记录。

2022-05-05 22:55:29 2841

原创 使用指定jdk运行java -jar命令

将指定的jdk路径替换“java”即可:E:\jdk-11.0.1\bin\java.exe -jar demo-0.0.1-SNAPSHOT.jar

2022-04-21 21:21:53 9757

原创 DB2 SQL Error: SQLCODE=-407,SQLSTATE=23502,SQLERRMC=TBSPACED=2,TABLEID=-16895,COLNO=7,DRIVER=4.26.14

解决思路:首先出现SQLCODE=-407,SQLSTATE=23502应该是更新Table的时候某个字段为NULL,但是Table那个表字段约束是不为NULL,导致出现的问题。步骤:1.通过错误信息的“TBSPACED=2,TABLEID=-16895”,你可以通过查询SYSCAT.TABLES获取Table的信息:SELECT * FROM SYSCAT.TABLES WHERE TBSPACED = 2 AND TABLEID = -16895;2.然后再根据刚刚查出来的TABNAME和错

2022-03-09 17:52:40 5563

原创 四种方式--解决org.hibernate.lazyInitializationException: could not initalize proxy [XXX] - no session的问题

造成的原因:其实这个是JPA Session的问题,说白了就是有一些程序使用了JPA懒加载机制,也就是说某些ASSOCIATION,是GET方法被调用才会把数据加载回来。但问题是当那个GET METHOD被调用时,对应的JPA Session就已经关闭了,所以根本没有办法加载。解决办法有四种:在报错信息里面的实体类(也就是中括号[]里面的实体类)中加上@Proxy(lazy=false)。取消LAZY LOAD,可以通过将@OneToMany,@ManyToOne,@OneToOne注解中的属性f

2022-03-04 18:46:52 1593

原创 黑马Drools学习笔记(三)——Drools规则属性

文章目录规则属性 attributes1 enabled属性2 dialect属性3 salience属性4 no-loop属性5 activation-group属性6 agenda-group属性7 auto-focus属性8 timer属性9 date-effective属性10 date-expires属性规则属性 attributes前面我们已经知道了规则体的构成如下:rule "ruleName" attributes when LHS the

2021-11-30 10:57:19 533

原创 Spring JPA中实体类使用@EmbeddedId注解之后,如何根据主键进行条件查询?

1.Student实体类如下:@Builder@NoArgsConstructor@AllArgsConstructor@Data@Entity@Table(name = "student", schema = "FOS")public class Student implements Serializable { @EmbeddedId private StudentKey id; @Column(name = "SEX") private String

2021-11-17 19:36:20 1005 2

原创 黑马Drools学习笔记(二)——Drools基础语法

文章目录1 规则文件构成2 规则体语法结构3 注释4 Pattern模式匹配5 比较操作符5.1 语法5.2 操作步骤6 执行指定规则7 关键字8 Drools内置方法8.1 update方法8.2 insert方法8.3 retract方法1 规则文件构成在使用Drools时非常重要的一个工作就是编写规则文件,通常规则文件的后缀为.drl。drl是Drools Rule Language的缩写。在规则文件中编写具体的规则内容。一套完整的规则文件内容构成如下:关键字描述pac

2021-11-15 20:37:41 799

原创 DB2使用CASE WHEN做条件判断示例

示例SQL:当SEX=man时,MAN_FLAG=1当SEX=woman时,MAN_FLAG=0SELECT * FROM student.CHOOSE_CLASS_INFO WHERE MAN_FLAG = CASE WHEN ((SELECT SEX FROM student.STUDENT_INFO WHERE STUDENT_NUMBER='001') = 'man') THEN '1' WHEN ((SELECT SEX FROM student.STUDENT_INFO WH

2021-10-28 18:09:43 2579 1

原创 黑马Drools学习笔记(一)——Drools规则引擎示例概述以及SpringBoot整合示例

文章目录1. 问题引出2. 规则引擎概述2.1 什么是规则引擎2.2 使用规则引擎的优势2.3 规则引擎应用场景2.4 Drools介绍3. Drools入门案例3.1 业务场景说明3.2 开发实现3.3 小结3.3.1 规则引擎构成3.3.2 相关概念说明3.3.3 规则引擎执行过程3.3.4 KIE介绍1. 问题引出现有一个在线申请信用卡的业务场景,用户需要录入个人信息,如下图所示:通过上图可以看到,用户录入的个人信息包括姓名、性别、年龄、学历、电话、所在公司、职位、月收入、是否有房、是否有车

2021-10-14 18:10:03 3279 1

原创 SpringBoot项目将数据源变成Json文件(Jackson2RepositoryPopulatorFactoryBean实现)

一。项目情景有时在我们项目当中需要存储一些固定值时,会使用一些配置文件来存储,例如最常见的.json文件。它可以用来存储相应的属性以及属性值,当你需要的时候进行提取,甚至还可以基于这个.json文件写一些条件查询的语句来获得自己需要的值。本篇博客的示例项目就是将角色权限控制的信息存入到.json文件中,再使用Jackson2RepositoryPopulatorFactoryBean更换.json文件为数据源,在根据需求条件查询获取某个特定用户角色的权限控制关系。二。项目搭建说明:该项目角色有三种

2021-09-15 17:38:03 1400

原创 Jenkins的安装与配置(包含各个插件的安装、用户权限的管理以及凭证管理)

一。Jenkins的安装此安装是基于linux系统上安装Jenkins示例:1)安装JDKJenkins需要依赖JDK,所以先安装JDK1.8:yum install java-1.8.0-openjdk* -y安装目录为:/usr/lib/jvm2)获取jenkins安装包下载页面:https://jenkins.io/zh/download/,我下载的是2.19版本的,已上传至百度网盘,需要的小伙伴可自行下载。链接:https://pan.baidu.com/s/1Qn_X2hTI

2021-09-13 16:52:48 1168

原创 Idea将当前分支修改提交到另一个分支上(将develop分支修改同步到master分支上)

一。应用场景:develop和master分支的区别,除了develop分支中含有MessageInfo这个类,其他代码完全一致:那我们如何将develop新增并且已经commit的代码提交到master分支呢?二。解决方案1.首先切换到develop分支,点击master分支,再点击Compare with Current:2.比较develop分支与master分支的区别:就如场景描述里面说的,区别就是develop多commit了一个MessageInfo类。3.找到该commi

2021-09-08 19:36:37 7706 2

原创 SpringBoot整合Kafka消息队列(@KafkaListener实现)

一。环境准备windows下安装kafka可以参考这一篇博客:https://blog.csdn.net/w546097639/article/details/88578635二。项目搭建1.在pom.xml文件中引入以下依赖: <!--kafka依赖 --> <dependency> <groupId>org.springframework.kafka</groupId> <artifactI

2021-09-06 17:39:49 1903

原创 gitlab-ctl reconfigure报错“Error executing action `run` on resource ‘execute[semodule -i /opt/gitlab/”

一。问题场景在linux安装gitlab时,修改配置文件完成后,执行命令gitlab-ctl reconfigure时报错:“Error executing action run on resource 'execute[semodule -i /opt/gitlab/”Recipe: gitlab::selinux * execute[semodule -i /opt/gitlab/embedded/selinux/rhel/7/gitlab-7.2.0-ssh-keygen.pp] actio

2021-09-01 11:21:04 8029 1

原创 解决Linux系统下“connect:network is unreachable”的问题

一。问题场景当你ping某个IP地址时,发现出现“connect:network is unreachable”问题:二。解决办法1.运行命令ip addr,找到如下图所示的文件名称:2. 运行命令cd /etc/sysconfig/network-scripts进入/etc/sysconfig/network-scripts/目录下,并找到ifcfg-eno1677736文件:3.使用命令vi ifcfg-eno16777736修改该文件,将ONBOOT改为yes:4.最后执行命令se

2021-09-01 10:43:41 74182 5

原创 Idea中如何快速删除未使用的引用(一键删除未使用的import)

一.问题场景如下所示,当我们进行编码时,常常会出现一些未被使用的引用,它们会降低代码的可读性,因为它们的存在可能会使人感到困惑:二.解决方法1.选中需要进行删除的项目,按快捷键Ctrl+Alt+o,出现优化引用提示,点击Run:2.等运行完成后,未被使用的import就全部被自动删除了:...

2021-08-27 11:25:04 9111 1

原创 有关于集合编码需要注意的一些问题

一。关于hashCode和equals的处理,需要遵循以下规则:1.只要重写了equals,就必须重写hashCode。2.因为Set存储的是不重复的对象,依据hashCode和equals进行判断,所以Set存储的对象必须重写这两个方法。3.如果自定义对象作为Map的键,那么必须重写hashCode和equals。说明:String因为重写了hashCode和equals方法,所以我们可以愉快的使用String对象作为key来使用。二。判断所有集合内部的元素是否为空,使用isEmpty()方

2021-08-23 19:24:37 516

原创 SpringBoot项目整合Mockito单元测试框架

一。简介Mockito是什么?MOCK意思是模拟的意思,主要被用来进行数据的人工组织,不会真正地调用第三方服务器,类似redis,mysql等都不会调用,也不用关心数据底层是如何进行处理的,我们要做的只是将本单元的逻辑进行单元测试,验证数据的逻辑处理性,而其中mock较好的框架就是Mockito。Mockito是mocking框架,它让你用简洁的API做测试。而且Mockito简单易学,它可读性强和验证语法简洁。二。测试Demo1.首先创建springboot项目,并在pom文件引入Mockito

2021-07-22 18:16:35 3129 1

原创 解决DB2 SQL Error:SQLCODE = -302,SQLSTATE = 22001,SQLERRMC = null,DRIVER = 4.26.14

一。问题描述向db2数据库中添加数据时报错:DB2 SQL Error:SQLCODE = -302,SQLSTATE = 22001,SQLERRMC = null,DRIVER = 4.26.14二。造成原因造成这个问题出现的原因主要是:插入的数据时的长度和数据库中自定义的长度不匹配或超出限制三。举例说明在db2数据库中有一张数据表,表中有一个字段为SUB_ACCOUNT_NUMBER,其限制大小为8:2.将SUB_ACCOUNT_NUMBER赋值为‘测试添加’,调用接口添加数据后报以

2021-07-16 17:19:02 18687

原创 解决Error running ‘XXX‘:command line is too long.Shorten command line for ‘XXX‘ or also for Junit

一。问题描述:打开Idea运行java项目时出现以下错误:Error running ‘XXX’:command line is too long.Shorten command line for ‘XXX’ or also for Junit default configuration二。解决办法:1.打开Idea,在右上角项目启动栏找到Edit Configuration:2.点击Modify options:3.再点击Shorten command line:4.更换Short

2021-07-13 18:14:40 10803 4

转载 java中的.builder()方法实现详解

文章目录一。简介二。场景模拟三。java实现四。使用lombok插件进行优化一。简介1.我们在构建对象的时候,如果对象属性比较多,我们可以使用一个构造器;一个空的构造器,然后使用setter方法进行设置。使用这些方法时会有冗长的构造函数或者setter方法,有不同参数默认值的构造函数需要多次定义,因此我们可以使用builder来简化代码的简介性。2.那么什么是Builder呢?它其实是一种设计模式,叫做建造者模式,它的含义是将一个复杂的对象的构建与它的表示分离,同样的构建过程可以创建不同

2021-07-06 18:39:26 36389 7

原创 带头节点单链表(Linked List)底层增删改查原理

文章目录一。简介二。应用实例1.初始化英雄节点以及单链表2.无序添加3.有序添加4.修改5.删除三。完整代码一。简介链表是有序的列表,它在内存中的存储方式如下:链表是一节点的方式来存储,是链式存储每个节点包含data域,next域:指向下一个节点,当`next==null时表示该节点为最后一个节点链表的各个节点不一定是连续存储,而是通过类似于指针的方式,让本身的next域指向下一个节点,从而做到链表读取链表分带头节点的链表和没有带头节点的链表,根据实际的需求来确定单链表逻辑结构示意图如

2021-07-03 10:11:20 287

原创 二维数组与稀疏数组

一。简介1.介绍大家都清楚,数组的初始化时是需要有固定长度的,这样内存才会开辟一段单独连续的存储空间给数组使用。在我们在使用数组的过程中,往往数组的大小定义是不能做到很精准的,这样就导致了数组中出现了大量的未使用的空间,造成空间的浪费,数据量大时还会影响其性能。而稀疏数组的出现就是为了解决二维数组大量空间浪费的问题,将一个大而繁杂的、大量空间未使用的二维数组转换成一个小型的、没有造成空间浪费的二维数组,这样的数组就叫做稀疏数组。2.定义稀疏数组的列数是确定的,但是行数是可变的,其变化是根据原二维数

2021-06-28 20:55:12 174 1

原创 SpringBoot整合Mybatis-Plus(包含逆向自动生成代码)

文章目录一。简介二。数据库准备三。项目搭建四。项目运行五。总结一。简介MyBatis-Plus(opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。特性:无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Serv

2021-06-23 18:46:50 729 1

原创 老程序员撕心呐喊:请不要再使用float和double两种数据类型来进行数据的精确计算!!!

一。介绍float和double类型主要是为了科学计算和工程计算而设计的。它们执行二进制浮点运算(binary floating-point arithmetic),这是为了在广泛的数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们并没有提供完全精确的结果,所以不应该被用于需要精确结果的场合。float和double类型尤其不适合于货币计算,因为要让一个float或者double精确的表示0.1(或者10的任何其他负数次方值)是不可能的。二。实例1.例如,假设你的口袋有1.03元,花掉0

2021-06-16 21:28:16 1471

gpg4win.bkill.com.rar

这是一款简单好用的文件加密传输软件,通过生成的公钥以及私钥进行解密加密操作

2021-04-27

CryptBox.rar

Abelssoft公司开发的一款电脑文件加密软件,能够帮助用户很好的管理各个文件的安全性问题,它支持接受不同类型的密码,甚至可以将您的个人iPhone、iPod、USB用作打开保险箱的钥匙。在加密方式上,软件采用是AES-256算法对您的数据进行加密,该算法已被批准用于美国的最高机密信息,因此权威性特别的高。 该加密软件通过创建加密磁盘的方式,来实现文件夹以及文件的加密,访问加密磁盘需要输入加密密码,加密解密速度快,可自由分配加密磁盘空间,简单实用!

2021-04-01

springcloud_demo.zip

eureka集群示例项目构成 1. springcloud_demo:项目名称 2. eureka-server-7001:7001端口启动的eureka 3. eureka-server-7002:7002端口启动的eureka 4. eureka-server-7003:7003端口启动的eureka 5. provider-8001:8001端口启动的服务提供者 6. provider-8002:8002端口启动的服务提供者 7. provider-8003:8003端口启动的服务提供者 8. consumer:服务消费者

2020-09-28

springcloud_demo.zip

该项目为一个简单的Springcloud微服务中多模块重复代码重构成公共模块项目demo,开发工具为Idea,项目结构如下: springcloud_demo:项目名称 common-api:公共模块 eureka-server:服务注册与发现子模块 provider:服务提供子模块 consumer:服务消费子模块

2020-09-11

springcloud_demo.zip

该项目为一个简单的SpringCloud项目demo,开发工具为Idea,项目结构如下: springcloud_demo:项目名称 eureka-server:服务注册与发现子模块 provider:服务提供子模块 consumer:服务消费子模块

2020-09-11

jdk1.8以及tomcat8安装压缩包.zip

该资源包含了jdk 1.8以及tomcat 8两个版本,可用于windows系统或者liunx系统下开发环境的搭建。

2020-05-13

百度离线地图实现(可完全实现断网访问)

该示例为百度离线地图的一些实现,根据经纬度对离线地图实现标点,从后台返回数据,页面用ajax调用接口获取json数据,用OpenLayers实现离线地图的发布,里面包含了示例区域的离线地图瓦片以及网页Demo

2020-04-20

根据经纬度对离线地图进行标点示例(用Ajax调用后台接口返回Json数据)

该示例为根据经纬度对离线地图实现标点,从后台返回数据,页面用ajax调用接口获取json数据,用OpenLayers实现离线地图的发布,里面包含了示例区域的离线地图瓦片以及网页Demo。

2020-04-16

根据经纬度对离线地图进行标点示例(未从后台返回数据)

该示例为根据经纬度对离线地图实现标点,未从后台返回数据,直接是在页面中固定经纬度,用OpenLayers实现离线地图的发布,里面包含了示例区域的离线地图瓦片以及网页Demo。

2020-04-15

离线地图实现示例(可完全实现断网访问)

该示例为离线地图的实现,可完全在没有连接外网的情况下进行访问,用OpenLayers实现离线地图的发布,里面包含了示例区域的离线地图瓦片以及网页Demo。

2020-04-15

图书馆资料管理系统.rar

该系统由原生态jdbc+servlet+jsp+HUI前端框架来进行实现,是在大学期间写的一个课程设计项目,今天分享出来以供参考,对于正在学习 servlet的同学或者是要完成课程设计的同学,是一个不错的参考案例。

2020-04-11

空空如也

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

TA关注的人

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