自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Java后端技术

微信搜索关注:Java后端技术(ID:JavaITWork),和20万人一起学习Java!

  • 博客(1951)
  • 收藏
  • 关注

转载 升级版DeepSeek来了,这次真的香!

这也是我入行前遇到的一件非常折磨的事,我想对很多人们也是非常头疼的,但是现在有了问小白,我们可以直接把我们的问题丢给问小白:怎么修改java.util.Date类。在网页端测试,可以完美的打开并且运行,虽然说符合我的需求,但是有点简陋了。可出看出,最后的效果确实还是很不错的,全程不需要我们自己动手,问小白自己完全可以独立完成编程,从这可以看出,问小白V3在编程上的能力是毋庸置疑的。可以看出,问小白完美的理解了问题,不需要漫长的推理思考,立马就给出了答案,并且给我提出了六个修改方法,简直就是我的编程救星!

2025-04-03 09:19:16 5

转载 用泛型实现优雅:Spring 框架事件监听详解

前面我们在实现 ResolvableTypeProvider 的时候,就重写了 getResolvableType 方法,调用了 ResolvableType.forClassWithGenerics,然后用 data 对应的真正的 T 对象实例的类型,作为返回值,这样泛型对应的真正的对象类型,就在运行期被动态的获取到了,从而解决了编译阶段泛型擦除的问题。当你一个类中注入了大量的 Service 的时候,你就要考虑考虑,是不是有什么做的不合适的地方了,是不是有些 Service 其实不应该注入进来的。

2025-04-02 09:19:56 5

转载 别等到被AI淘汰,才后悔没有学大模型

现如今大模型岗位需求越来越大,但是相关岗位人才难求,薪资持续走高,AI运营薪资平均值约18457元,AI工程师薪资平均值约37336元,大模型算法薪资平均值约39607元。大模型正在以惊人的速度改变着各行各业。正如移动互联网时代造就了无数成功的开发者,今天的大模型技术也为我们带来了前所未有的机遇。第一批被优化的,不是初级程序员,而是“拒绝学习AI的中级工程——他们的产出效率已被AI+新人组合碾压。那么在大模型时代,我们如何有效的去学习大模型?不会用大模型的程序员,就像“拒绝IDE,坚持用记事本写Java”

2025-04-01 09:01:39 10

转载 用 Spring AOP 优化 IN 查询,效率提升巨大!

这个功能是我在之前公司写的,效果不错,然后在新公司又改良了,经过实践很有用!因为用的地方多,每次都要写很麻烦,所以结合SpringAOP写了一个基于注解优化方案,只需要打上注解就可以提升性能了。handlerReturnClass:返回值回调函数,对应不同返回值处理逻辑:可能是合并可能取前十条可能求和。setThreadPool:线程池,可能阻塞比较大,不要用公共的线程池最好自己定义一个。加在需要拆分的参数上,只支持一个。这里的加可以是:合并运算,SUM,COUNT以及求TOPN(合并后再取TOPN)

2025-03-31 09:19:17 15

转载 为什么 SpringBoot 宁可挨骂也要干掉 spring.factories ?

并引入新的imports文件机制,SpringBoot 3.0显著改善了与GraalVM的集成体验,让开发者能够更容易地构建高性能、低延迟的云原生应用。这个文件的主要功能是允许开发者声明接口的实现类,从而实现SpringBoot的自动装配和扩展点注册。为了更好地支持GraalVM,SpringBoot需要一种在构建时就能确定的静态配置方式,而不是运行时的动态扫描。依赖于反射加载类,而GraalVM需要预先知道所有使用反射的类,这需要额外的配置和处理。文件,读取配置信息并加载对应的类。

2025-03-28 09:20:07 44

转载 用雪花ID和UUID做 MySQL主键,被领导怼了!

本篇博客首先从开篇的提出问题,建表到使用jdbcTemplate去测试不同id的生成策略在大数据量的数据插入表现,然后分析了id的机制不同在mysql的索引结构以及优缺点,深入的解释了为何uuid和随机不重复id在数据插入中的性能损耗,详细的解释了这个问题。本篇博客我们就来分析这个问题,探讨一下内部的原因。因为uuid相对顺序的自增id来说是毫无规律可言的,新行的值不一定要比之前的主键的值要大,所以innodb无法做到总是把新行插入到索引的最后,而是需要为新行寻找新的合适的位置从而来分配新的空间。

2025-03-26 09:20:04 18

转载 DeepSeek 被放弃了,阿里牛逼!

公司老板、持续创业者、投资人、科研人员、公务员、医生、讲师等等,好多兄弟都在问我用DeepSeek怎么搞钱,我专门搞了 “0基础小白15天成长计划”,拉了一个DeepSeek 赚钱信息差群,还拉了DeepSeek 搞钱的实战群,让英伟达股价暴跌 6.5万亿人民币!原计划每满100人 价格上涨 50,很多个人用户也已经开始行动起来了,“话也不敢说,电也不敢冲,呼呼抢”给大家拆解别人是怎么用这个搞钱的,其实这次价格应该上调 500块钱,有人脉好办事,这已经大家的共识了~原计划每满10人 价格上涨 50,

2025-03-20 09:16:53 26

转载 高并发下的计数器,为什么阿里不推荐使用 AtomicLong?

LongAdder 是 JDK1.8 由 Doug Lea 大神新增的原子操作类,位于 java.util.concurrent.atomic 包下,LongAdder 在高并发的场景下会比 AtomicLong 具有更好的性能,代价是消耗更多的内存空间。图里可以看出在高并发情况下,当有大量线程同时去更新一个变量,任意一个时间点只有一个线程能够成功,绝大部分的线程在尝试更新失败后,会通过自旋的方式再次进行尝试,这样严重占用了 CPU 的时间片,进而导致系统性能问题。在分布式系统中,高并发性能是非常重要的。

2025-03-19 09:19:59 15

转载 超越 AOP:搜集业务操作日志的 3 个新探索

基于以上的窗口机制,我们就可以对数据先进行范围的框定,通过窗口的滑动机制和补偿机制对窗口中的数据进行关联处理。通过以上的业务背景及实现落地过程,我感受到其实在日常业务需求对接和实现过程中,会伴随着各种各样的问题出现,会有很多因素让你对某技术方案进行舍弃,但是舍弃了A可能单来了B C D等一连串的问题,我们在做系统架构时,其实也是一个慢慢演进的过程,对技术实现的思路和方案要拥抱变化,摒弃自己的一些“技术极致”追求,做好兜底方案,完美的方案可能是少数,努力适配自己的技术架构和方案才是我们长期要做的。

2025-03-17 09:19:36 23

转载 取代程序员岗,中国又一相关高薪岗位在崛起!这才是程序员未来5年最好的就业方向!

中国工商联人才交流服务中心和中国科技金融促进会于去年正式推出了国内的ESG证书,也是中文版的ESG证书,即。最新的ESG资讯、上市公司ESG报告、ESG行业大咖直播课。最新的ESG资讯、上市公司ESG报告、ESG行业大咖直播课。最新的ESG资讯、上市公司ESG报告、ESG行业大咖直播课。今天想跟大家说几句心里话,希望大家看完后都能重视起来。金融、互联网、新能源、智能汽车、咨询行业、建筑、环保等。金融、互联网、新能源、智能汽车、咨询行业、建筑、环保等。金融、互联网、新能源、智能汽车、咨询行业、建筑、环保。

2025-03-16 09:20:57 36

转载 SpringBoot AOP + Redis 延时双删功能实战

如果我们没有第二次删除操作,此时有请求访问数据,有可能是访问的之前未做修改的Redis数据,删除操作执行后,Redis为空,有请求进来时,便会去访问数据库,此时数据库中的数据已是更新后的数据,保证了数据的一致性。注意:要知道经常修改的数据表不适合使用Redis,因为双删策略执行的结果是把Redis中保存的那条数据删除了,以后的查询就都会去查询数据库。在多线程并发情况下,假设有两个数据库修改请求,为保证数据库与redis的数据一致性,修改请求的实现中需要修改数据库后,级联修改Redis中的数据。

2025-03-15 09:19:53 56

转载 一行日志引起的线上事故!惊呆了!

往期热门文章:1、性能优化的十种手段,不服来辩!2、公司新来一个技术总监:谁再在 SQL 中写 in 和 not in,直接走人!3、SpringBoot如何动态加载jar包,操作惊呆了?4、项目自从用了接口请求合并,效率直接加倍!5、新来个技术总监:谁再在业务代码里使用多线程,以后就不用来了!线上事故回顾前段时间新增一个特别简单的功能,晚上上线前 Review 代码时想到公司拼搏进取的价值观临时...

2025-03-13 09:19:50 44

转载 性能优化的十种手段,不服来辩!

往期热门文章:1、公司新来一个技术总监:谁再在 SQL 中写 in 和 not in,直接走人!2、SpringBoot如何动态加载jar包,操作惊呆了?3、项目自从用了接口请求合并,效率直接加倍!4、新来个技术总监:谁再在业务代码里使用多线程,以后就不用来了!5、项目终于用上了 Spring 状态机,太优雅了!上篇引言:取与舍软件设计开发某种意义上是“取”与“舍”的艺术。关于性能方面,就像建筑设...

2025-03-12 09:20:11 75

转载 公司新来一个技术总监:谁再在 SQL 中写 in 和 not in,直接走人!

往期热门文章:1、SpringBoot如何动态加载jar包,操作惊呆了?2、项目自从用了接口请求合并,效率直接加倍!3、新来个技术总监:谁再在业务代码里使用多线程,以后就不用来了!4、项目终于用上了 Spring 状态机,太优雅了!5、分层设计:Service 层真的需要实现接口吗?来源:cnblogs.com/hydor/p/5391556.html# WHY?IN 和 NOT IN 是比较常用...

2025-03-11 09:20:12 31

转载 SpringBoot如何动态加载jar包,操作惊呆了?

往期热门文章:1、项目自从用了接口请求合并,效率直接加倍!2、新来个技术总监:谁再在业务代码里使用多线程,以后就不用来了!3、项目终于用上了 Spring 状态机,太优雅了!4、分层设计:Service 层真的需要实现接口吗?5、在银行做开发半年,已经丧失跳槽能力。。。目前数据治理服务中有众多治理任务,当其中任一治理任务有改动需要升级或新增一个治理任务时,都需要将数据治理服务重启,会影响其他治理任...

2025-03-10 09:20:11 85

转载 重磅利好!强烈建议立刻拿下软考!

25年软考政策福利真的超前利好,是非常适合IT人简历镀金、升职加薪、以考代评职称、积分落户、领现金补贴????、争取国家项目的黄金必考证书!2025年软考官宣3月10日报名开始,备考时间仅剩2个月,现在正是备考黄金期,错过后悔一整年。在职人如何击破通关难题,一次拿证?????分享一个免费,且有超多备考干货的——2025软考通关VIP学习群(3月冲刺计划)入群即享2h技术大佬软考2025通关技巧直播课完课免费领...

2025-03-09 09:30:26 35

转载 新来个技术总监:谁再在业务代码里使用多线程,以后就不用来了!

往期热门文章:1、项目终于用上了 Spring 状态机,太优雅了!2、分层设计:Service 层真的需要实现接口吗?2、在银行做开发半年,已经丧失跳槽能力。。。4、Controller层代码这么写,任督二脉全打通5、深拷贝、浅拷贝和clone、new方法到底哪个效率更高?前几天我在网上冲浪,看到一个哥们在吐槽,说他工作三年多了,没使用过多线程。虽然八股文背的滚瓜烂熟,但是没有在实际开发...

2025-03-07 09:19:21 56

转载 3月准备跳槽的兄弟注意了。。。

上周,我从字节后端面试官那里要了几套Java内部学习资料。回家一看,这份资料确实有点东西。不仅包含大量的高频面试题,今年最新面试真题也都整理在里面了!还系统梳理了后端工程师必备的核心技能点:Spring、Spring Boot、Dubbo、JVM、JPA、MyBatis、如何应对HR面、如何应对项目面......即便最近不打算跳槽,也可以通过这些知识点查漏补缺、提升自己,进阶高级后端工程师!????????扫...

2025-03-06 09:19:39 59

转载 项目终于用上了 Spring 状态机,太优雅了!

往期热门文章:1、分层设计:Service 层真的需要实现接口吗?2、在银行做开发半年,已经丧失跳槽能力。。。3、Controller层代码这么写,任督二脉全打通4、深拷贝、浅拷贝和clone、new方法到底哪个效率更高?5、别再踩坑!电话号码,用 int 还是用 String 存储?状态模式在生活场景中也是比较常见的。比如我们平时网购的订单状态变化,还有平时坐电梯,电梯状态的变化。在...

2025-03-05 09:19:23 33

转载 分层设计:Service 层真的需要实现接口吗?

往期热门文章:1、在银行做开发半年,已经丧失跳槽能力。。。2、Controller层代码这么写,任督二脉全打通3、深拷贝、浅拷贝和clone、new方法到底哪个效率更高?4、别再踩坑!电话号码,用 int 还是用 String 存储?5、告别类型错误:Java泛型上下界,这些坑你千万别踩!前几天看技术交流群的话题,又刷到了Service 层和 Dao 层真的有必要每个类都加上接口吗?这...

2025-03-04 09:19:22 29

转载 在银行做开发半年,已经丧失跳槽能力。。。

往期热门文章:1、Controller层代码这么写,任督二脉全打通2、深拷贝、浅拷贝和clone、new方法到底哪个效率更高?3、别再踩坑!电话号码,用 int 还是用 String 存储?4、告别类型错误:Java泛型上下界,这些坑你千万别踩!5、IDEA 接入 DeepSeek,辅助编程非常丝滑!最近就有很多优秀的读者找我咨询 offer 选择的问题,其中银行/国企和大厂是大多数人...

2025-03-03 09:19:31 59

转载 Controller层代码这么写,任督二脉全打通

往期热门文章:1、深拷贝、浅拷贝和clone、new方法到底哪个效率更高?2、别再踩坑!电话号码,用 int 还是用 String 存储?3、告别类型错误:Java泛型上下界,这些坑你千万别踩!4、IDEA 接入 DeepSeek,辅助编程非常丝滑!5、在 SpringBoot 项目中如何动态切换数据源、数据库?作者丨gelald来源丨juejin.cn/post/712309104...

2025-02-28 09:20:09 30

转载 深拷贝、浅拷贝和clone、new方法到底哪个效率更高?

往期热门文章:1、别再踩坑!电话号码,用 int 还是用 String 存储?2、告别类型错误:Java泛型上下界,这些坑你千万别踩!3、IDEA 接入 DeepSeek,辅助编程非常丝滑!4、在 SpringBoot 项目中如何动态切换数据源、数据库?5、DeepSeek4J 发布!Java 项目一行代码集成 DeepSeek !!来源:juejin.cn/post/71033855...

2025-02-27 09:19:52 25

转载 务必立即拿下软考证(政策红利)

重大利好!今年80%程序员都在冲软考证书:国家认证、政策福利更好、企业认可度更高!是非常适合IT人升职加薪、扩宽职业道路,享受落户/购房、评职称、投标评标、涨退休费、现金补贴等政策福利的高性价比科目!???? 3月报名正式开始,距离5月考期仅剩3个月,如何一次过关拿证?如果还没有明确的冲刺规划,分享一个免费,且有超多干货的-软考通关冲刺课包(25冲刺版)????????????免费听:3个月备考冲刺规划+问题诊断;????全程...

2025-02-26 14:00:28 26

转载 别再踩坑!电话号码,用 int 还是用 String 存储?

往期热门文章:1、告别类型错误:Java泛型上下界,这些坑你千万别踩!2、IDEA 接入 DeepSeek,辅助编程非常丝滑!3、在 SpringBoot 项目中如何动态切换数据源、数据库?4、DeepSeek4J 发布!Java 项目一行代码集成 DeepSeek !!5、Java反射不再慢!掌握这些技巧,性能提升10倍!原文:https://juejin.cn/post/74554...

2025-02-25 09:19:26 32

转载 IDEA 接入 DeepSeek,辅助编程非常丝滑!

往期热门文章:1、在 SpringBoot 项目中如何动态切换数据源、数据库?2、DeepSeek4J 发布!Java 项目一行代码集成 DeepSeek !!3、Java反射不再慢!掌握这些技巧,性能提升10倍!4、SpringBoot一个接口实现任意表的 Excel 导入导出5、100 行代码搞定了 RPC 原理,大家随便问!引言2025年的春节可以说是人工智能在中国史上飘红的一段...

2025-02-20 09:19:35 57

转载 在 SpringBoot 项目中如何动态切换数据源、数据库?

往期热门文章:1、DeepSeek4J 发布!Java 项目一行代码集成 DeepSeek !!2、Java反射不再慢!掌握这些技巧,性能提升10倍!3、SpringBoot一个接口实现任意表的 Excel 导入导出4、100 行代码搞定了 RPC 原理,大家随便问!5、新一代搜索引擎,据说是 ES 的15倍?前言本文介绍了如何在SpringBoot项目中使用AOP和自定义注解实现My...

2025-02-19 09:19:52 62

转载 DeepSeek4J 发布!Java 项目一行代码集成 DeepSeek !!

往期热门文章:1、Java反射不再慢!掌握这些技巧,性能提升10倍!2、SpringBoot一个接口实现任意表的 Excel 导入导出3、100 行代码搞定了 RPC 原理,大家随便问!4、新一代搜索引擎,据说是 ES 的15倍?5、简化Maven项目依赖:优雅去除未使用Jar包!DeepSeek R1 凭借其强大的 思维链 能力在开发者中广受欢迎,但 Spring AI 等主流框架对...

2025-02-18 09:19:38 70

转载 Java反射不再慢!掌握这些技巧,性能提升10倍!

往期热门文章:1、SpringBoot一个接口实现任意表的 Excel 导入导出2、100 行代码搞定了 RPC 原理,大家随便问!3、新一代搜索引擎,据说是 ES 的15倍?4、简化Maven项目依赖:优雅去除未使用Jar包!5、Redis Plus 来了,性能炸裂!来源:pebble-skateboard-d46.notion.site有网友评论留言提到了反射性能问题,今天,我们就...

2025-02-17 09:20:00 55

转载 最近,程序员的薪资又爆了。。。

DeepSeek爆火,正在重塑AI圈!新开源模型DeepSeek-R1仅用OpenAI十分之一的成本,就达到顶尖大模型的性能,高性能低成本让企业接入AI成为必然趋势,到2030年AI人才缺口将有400万!稀缺也意味着高薪资。DeepSeek最近热招的大模型全栈工程师等AI核心岗位,年薪高达154W !大模型实习生日薪也有500-1000元,直接拉高技术行业薪资标准!但也别高兴太早,DeepSeek...

2025-02-15 09:30:54 21

转载 SpringBoot一个接口实现任意表的 Excel 导入导出

往期热门文章:1、100 行代码搞定了 RPC 原理,大家随便问!2、新一代搜索引擎,据说是 ES 的15倍?3、简化Maven项目依赖:优雅去除未使用Jar包!4、Redis Plus 来了,性能炸裂!5、如何设计一个支持三千万用户同时在线的短视频系统?原文:juejin.cn/post/7356508172419481663Java的web开发需要excel的导入导出工具,所以需...

2025-02-14 09:19:57 46

转载 100 行代码搞定了 RPC 原理,大家随便问!

往期热门文章:1、新一代搜索引擎,据说是 ES 的15倍?2、简化Maven项目依赖:优雅去除未使用Jar包!3、Redis Plus 来了,性能炸裂!4、如何设计一个支持三千万用户同时在线的短视频系统?5、改变习惯性 !=null 的判断,只需一秒!来源:xiaomi-info.github.io/2020/03/02/rpc-achieve引言本文主要论述的是“RPC 实现原理”,那么首先明确...

2025-02-12 09:19:51 27

转载 新一代搜索引擎,据说是 ES 的15倍?

往期热门文章:1、简化Maven项目依赖:优雅去除未使用Jar包!2、Redis Plus 来了,性能炸裂!3、如何设计一个支持三千万用户同时在线的短视频系统?4、改变习惯性 !=null 的判断,只需一秒!5、记一次Redis过期key事件监控导致消息延迟、丢失与改进来源:github.com/manticoresoftware/manticoresearchManticore Search介绍...

2025-02-11 09:19:50 21

转载 简化Maven项目依赖:优雅去除未使用Jar包!

往期热门文章:1、Redis Plus 来了,性能炸裂!2、如何设计一个支持三千万用户同时在线的短视频系统?3、改变习惯性 !=null 的判断,只需一秒!4、记一次Redis过期key事件监控导致消息延迟、丢失与改进5、程序员裸辞全职接单一个月的感触!一、为什么要做这件事?自从我踏入职场,便历经了技术革新的数次浪潮。从最初的.Net Framework、Winform、WPF,到Asp.Net ...

2025-02-08 09:19:33 79

转载 Redis Plus 来了,性能炸裂!

往期热门文章:1、如何设计一个支持三千万用户同时在线的短视频系统?2、改变习惯性 !=null 的判断,只需一秒!3、记一次Redis过期key事件监控导致消息延迟、丢失与改进4、程序员裸辞全职接单一个月的感触!5、SpringBoot + Tika 实现数据泄露防护、检测敏感信息KeyDB项目是从redis fork出来的分支。众所周知redis是一个单线程的kv内存存储系统,而KeyDB在10...

2025-02-07 09:19:41 62

转载 如何设计一个支持三千万用户同时在线的短视频系统?

往期热门文章:1、改变习惯性 !=null 的判断,只需一秒!2、记一次Redis过期key事件监控导致消息延迟、丢失与改进3、程序员裸辞全职接单一个月的感触!4、SpringBoot + Tika 实现数据泄露防护、检测敏感信息5、震惊!大数组差异比较时,这个方法竟比removeAll快60倍!来源:疯狂打码中一、前言这个业务不熟悉。但是抖音的崛起,短视频场景也会是面试的考点。希望能够属性一下相...

2025-02-06 09:19:39 44

转载 记一次Redis过期key事件监控导致消息延迟、丢失与改进

往期热门文章:1、程序员裸辞全职接单一个月的感触!2、SpringBoot + Tika 实现数据泄露防护、检测敏感信息3、震惊!大数组差异比较时,这个方法竟比removeAll快60倍!4、MapStruct 超神进阶用法,让你的代码效率提升十倍!5、面试问我SQL回表?我瞬间蒙了来源:juejin.cn/post/7402776273166991397需求背景项目进行过程中,接到一个新需求:工...

2025-02-04 09:20:04 45

转载 程序员裸辞全职接单一个月的感触!

往期热门文章:1、SpringBoot + Tika 实现数据泄露防护、检测敏感信息2、震惊!大数组差异比较时,这个方法竟比removeAll快60倍!3、MapStruct 超神进阶用法,让你的代码效率提升十倍!4、面试问我SQL回表?我瞬间蒙了5、SpringBoot控制层中,@Service可以完全替代@Controller吗?作者:Rust来源:juejin.cn/post/7032317...

2025-02-03 09:19:48 32

转载 奉劝大家立即拿下软考证(2025特大红利)

紧急❗紧急❗紧急❗软考25年政策超前利好技术人才,错过真的后悔一整年!推荐一个@知乎知学堂技术大佬发起免费且高质量的:【25软考VIP通关学习群】1️⃣2h技术大佬软考通关技巧直播课2️⃣25最新考情揭秘+圈中备考重点3️⃣ 1v1通关问题诊断+备考计划制定4️⃣ 完课领5G软考必备备考工具+通关秘籍(考试大纲、高频考点、易错点、论文模版...)????????今年软考技术类考试频次增加、考察更偏...

2025-02-02 09:20:11 42

转载 SpringBoot + Tika 实现数据泄露防护、检测敏感信息

往期热门文章:1、震惊!大数组差异比较时,这个方法竟比removeAll快60倍!2、MapStruct 超神进阶用法,让你的代码效率提升十倍!3、面试问我SQL回表?我瞬间蒙了4、SpringBoot控制层中,@Service可以完全替代@Controller吗?5、一键生成Java重复代码,摸鱼学新知识!来源:juejin.cn/post/7462172001165295625Tika 主要特...

2025-02-01 09:19:30 84

空空如也

空空如也

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

TA关注的人

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