自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux常用命令总结

1切换目录命令使用cd app, 切换到app目录cdcd … 切换到上一层目录cd / 切换到系统根目录cd ~ 切换到系统用户主目录cd - 切换到上一个所在目录2 列出文件列表就是 list 的缩写,通过 ls 命令不仅可以查看 linux 文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。格式: ls(参数) [路径或文件名]ls -a 显示所有文件或目录(包含隐藏的文件)ls -l 缩写成 ll3 创建目录和移除目录mkdir d

2020-09-30 21:23:47 873

原创 javascript学习总结(二)

1 DOM1.1 DOM简介DOM:Document Object Model. 文档对象模型功能:通过HTML DOM,Javascript能够访问和改变HTML文档的所有元素,将标记语言文档的各个组成部分,封装为对象。可以使用这些对象,对标记语言文档进行CRUD的动态操作。W3C DOM 标准被分为 3 个不同的部分:核心 DOM - 针对任何结构化文档的标准模型Document:文档对象Element:元素对象Attribute:属性对象Text:文本对象

2020-08-12 11:45:33 305

原创 javascript学习总结(一)

1 概念javascript:一门客户端脚本语言(1)运行在客户端浏览器中的,每一个浏览器都有javascript的解析引擎(2)脚本语言:不需要编译,直接就可以被浏览器解析执行功能:可以用来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户体验。JavaScript = ECMAScript + JavaScript自己特有的东西(BOM+DOM)2 ECMAscrpipt语法2.1 与html结合方式1.内部js定义<script>,

2020-07-25 17:30:22 1165

原创 css学习总结

1. 概念css:Casading Style Sheets 层叠样式表层叠:多个样式可以作用在同一个html的元素上,同时生效。好处:1.功能强大2.将内容展示和样式控制分离,降低耦合度,让分工协作更容易,提高开发效率2 css与html的结合方式1.内联样式在标签内使用style属性指定css代码代码如下:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"&gt

2020-07-24 22:54:24 226

原创 html学习总结

1 概念html: Hyper Text Markup Language 超文本标记语言超文本:超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本。标记语言:由标签构成的语言。<标签名称> 如 html ,xml,标记语言不是编程语言。1.1 语法1.html文档后缀名为.html或者.htm2.标签分为(1) 围堵标签:又开始标签和结束标签。如<html> </html>。(2) 自闭标签:开始标签和结束标签在一起。如<br/&g

2020-07-24 18:58:35 236

原创 MySql之约束与设计总结

1 数据库表的约束约束的作用:对表中的数据进行限制,保证数据的争取性、有效性和完整性。一个表如果添加 了约束,不正确的数据将无法插入到表中。约束在创建表的时候添加比较合适。约束种类:约束名关键字说明主键primary key非空且唯一唯一unique这一列不能有重复值非空not null这一列必须有值外键foreign key主表中主键列,在从表中外键列默认default如果一列没有值,使用默认值检查约束checkmysql不

2020-07-11 19:29:58 582

原创 MySql之基础总结

1 基本概念数据库: 用于存储和管理数据的仓库。卸载mysql:去mysql的安装目录找到my.ini文件复制 datadir=“C:/ProgramData/MySQL/MySQL Server 5.5/Data/”卸载MySQL删除C:/ProgramData目录下的MySQL文件夹。配置mysql:(1)MySQL服务启动1. 手动。2. cmd–> services.msc 打开服务的窗口3. 使用管理员打开cmdnet start mysql :

2020-07-06 11:24:45 219

原创 java之Junit单元测试、反射和注解总结

1 Junit单元测试测试分类:黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。白盒测试:需要写代码的。关注程序具体的执行流程。Junit使用:白盒测试定义一个测试类(测试用例) 测试类名:被测试的类名Test Demo02Calculator 包名:xxx.xxx.xx.test package Demo01定义测试方法:可以独立运行 * 方法名:test测试的方法名 testAdd() * 返回值:void *

2020-07-05 21:47:04 715 1

原创 java之网络编程总结

1 基本概念1.1 软件结构C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一定的协议下,实现两台计算机的通信的程序。1.2 网络通信协议网络通信协议相当于规定,在同一个计算机网络中的计算机遵守这个规则可以进行数据传输、信息分享。TCP/IP协议: 传输控制协议/因

2020-07-02 23:20:24 314

原创 java之IO流总结

1 字节流2 字符流

2020-07-01 21:30:55 230

原创 java之lambda、File类和递归总结

1 Lambda表达式1.1 函数式编程思想概述在数学中,函数就是有输入量、输出量的一套计算方案,也就是“拿什么东西做什么事情”。相对而言,面向对象过分强调“必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法——强调做什么,而不是以什么形式做。面向对象的思想:​ 做一件事情,找一个能解决这个事情的对象,调用对象的方法,完成事情.函数式编程思想:​ 只要能获取到结果,谁去做的,怎么做的都不重要,重视的是结果,不重视过程1.2 LambdaLambda省去面向对象的条条框框,

2020-06-30 23:25:19 424

原创 java之多线程总结

1 概念操作系统的基本特征包括并发、共享、虚拟和异步。1.并发操作系统的并发性是指计算机系统中同时存在多个运行着的程序,因此它具有处理和调度多个程序同时执行的能力,引入进程的目的是使程序能并发执行。并发:指两个事件或多个事件在同一个时间段内发生。并行:指两个或多个事件在同一时刻发生(同时发生)。2.共享资源共享即共享,是指系统中的资源可供内存中多个并发执行的进程共同使用,共享可分为以下两种资源共享方式。(1)互斥共享方式当进程A访问某资源时,必须先提出请求,如果此时资源空闲,系统便可以将之

2020-06-28 22:20:13 306

原创 idea对CPU的占用率过大问题的解决

背景:昨晚有一次敲完代码运行完程序后,idea非常卡顿,连输入代码都不能进行,因为有点晚并且累了,所有就关了电脑,今天早上再次打开idea,还是一样卡顿,因为idea的试用期明天就到期了,所有就先破解了idea,破解完之后,还是非常流畅的,但是一运行程序就拉胯了,就先百度看一下解决方案,以下几个解决方案试了,基本问题还是没有解决,就在群里问了几个大佬,方案不是重装系统就是换电脑,同时开始了电脑的配置讨论,重装系统和换电脑的什么是不可能的,所有只有自己慢慢摸索了。1 修改idea配置文件安装目录下的bin

2020-06-24 13:40:36 23587 16

原创 java之异常总结

异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。**注意:**异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行.1 异常体系异常机制其实是帮助我们找到程序中的问题,异常的根类是java.lang.Throwable,其下有两个子类:java.lang.Error与java.lang.Exception.

2020-06-23 16:29:40 568

原创 java之Map集合总结

Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。Map中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。Collection中的集合称为单列集合,Map中的集合称为双列集合。需要注意的是,Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。1 Map常用子类Map常用子类有:HashMap<K,V>:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保.

2020-06-22 20:35:41 2751 6

原创 java之List、Set和Collections总结

1 List1.1 List接口介绍java.util.List接口继承自collection接口,是单列集合的一个重要分支,习惯地会将实现了List接口的对象成为List集合。在List集合中允许出现重复的元素,所有元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。另外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。List接口特点:它是一个元素存取有序的集合。例如,存元素的顺序是11、22、33。那么集合中,元素的存储就是按照11、22、33的

2020-06-22 17:11:21 765

原创 java之Collection、泛型总结

1 Collection集合1.1 集合概述集合:集合是java中提供的一种容器,可以存储多个数据,和数组的区别如下:数组的长度是固定的,集合的长度是可变的。数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象,而且对象的类型可以不一致,在开发中一般当对象多的时候,使用集合进行存储。1.2 集合框架集合按照其存储结构可以分为两大类,分别是单列集合java.util.Collection和双列集合java.util.Map。Collection:单列集合类的根接口,用于存

2020-06-22 11:45:32 855

原创 java之常用Object、System类、StringBuilder类和包装类

1 Object类类是java语言中的根类,即所有类的父类。它描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object。如果没有一个类没有特别指定父类,那么默认继承自Object类。Object类中常用的两个类为:public String toString():返回该对象的字符串表示。public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。1.1 toString方法public String toString():返回

2020-06-22 00:08:39 521

原创 java日期日历类总结

1. Date类概述:java.util.Date类表示特定的瞬间,精确到毫秒。Date的无参构造函数public Date(): 分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)public Date(long date): 分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。注意:由于我们处在东八区,所以我们的基准时间为1970年1月1日8时0分0秒。常用方法:publi

2020-06-21 21:42:09 581

原创 java关键字之——static和final

1 staticstatic关键字的使用,可以用来修饰成员变量和成员方法,被修饰的成员是属于类的,而不是单单属于某个对象的,也就是说,既然属于类,就可以不靠创建对象来调用。1.1 类变量当static修饰成员变量时,该变量称为类变量。该类的每个对象都共享同一个类变量的值。任何对象都可以改变该类变量的值,但也可以在不创建该类的对象的情况下对类变量进行操作。定义格式:static 数据类型 变量名;1.2 静态方法当static修饰成员方法时,该方法称为类方法。静态方法在声明中有static,

2020-06-17 23:24:26 330

原创 java常用类总结

1 内部类定义: 将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。1.1 成员内部类成员内部类 :定义在类中方法外的类。如果一个事物的内部包含另一个事物,那么这就是一个类内部包含另一个类。例如:身体和心脏的关系。又如:汽车和发动机的关系。分类:成员内部类局部内部类(包含匿名内部类)成员内部类的定义格式:修饰符 class 外部类名称 { 修饰符 class 内部类名称 { // ... } // ...}

2020-06-17 18:17:02 267

转载 idea光标变黑,不能敲代码

1.– 首先排查Insert键的问题,按一下insert键,恢复正常。2.如果不行,继续– 操作步骤:File—>settings…—>Editor—>General—>Appearance参考文章

2020-06-13 19:15:34 2842

原创 java面向对象的总结

1.面向对象面向过程:当需要实现一个功能时,每个具体的步骤都要亲力亲为,详细处理每个细节。(强调过程)面向对象:当需要实现一个功能时,不关心具体的步骤,而是找一个已经具有该功能的的人或物体,通过该人或物体来实现这个功能。(强调对象)面向对象编程(Object Oriented Programing,OOP)的本质:以类的方式组织代码,以对象的组织(封装)数据。面向对象的三大基本特征:封装、继承和多态。类:是一组相关属性和行为的集合,可以看成是一类事务的模板,使用事物的属性特征和行为特征来描述该类事

2020-06-12 22:30:14 3457 2

原创 数据结构和算法的区别

1.数据结构数据结构是相互之间存在一种或多种特定关系的数据元素的集合。数据结构包括三方面的内容:逻辑结构、存储结构和数据的运算。1.数据的逻辑结构数据的逻辑结构分类图如下:2.数据的存储结构存储结构是指数据结构在计算机中的表示(又称映象)。也称物理结构。它包括数据元素的表示和关系的表示。数据的存储结构是逻辑结构用计算机语言的实现,它依赖于计算机语言。数据结构的存储结构主要有:顺序存储、链式存储、索引存储和散列存储。(1)顺序存储:把逻辑上相邻的元素存储在物理位置上也相邻的存储单元里,元素之

2020-06-08 17:25:03 2615 1

原创 数据结构之——关键路径

1.AOE网边活动(Activity On Edge, AOE)网是指用带权的边集表示活动,用顶点表示事件的有向图,而用边权表示活动完成需要的时间。如下图所示,边a1 -a6表示需要学习的课程,也就是“活动”,边权表示课程学习需要的时间;顶点V1-V6表示到此刻为止前面的课程已经学完,后面的课程可以开始学习,也就是“事件”,显然“事件”仅代表一个中介状态。AOE网具有以下两种性质:(1)只有在某顶点所代表的事件发生后,从该顶点出发的各有向边所代表的活动才能开始,;(2)只有在进入某一顶点的各有向边所代

2020-06-06 23:07:57 8564 2

原创 数据结构之——拓补排序和并查集

1.拓补排序1.有向无环图如果一个有向图的任意顶点都无法通过一些有向边回到自身,那么称这个有向图为有向无环图(Airected Acyclic Graph,ADG)。2.拓补排序拓补排序是将有向无环图G的所有顶点排成一个线性序列,使得对图G中的任意两个顶点u、v,如果存在边u->v,那么在序列中u一定在v前面。这个序列称为拓补排序。以下图数学专业的某几门课程学习先后顺序为例,可以获知, “数学分析”是“复变函数”、“常微分方程”、“计算方法”的先导课程,“复变函数”是“实变函数”和“泛函函数

2020-06-06 16:05:40 846

原创 数据结构之——最小生成树(prim算法和kruskal算法)

1.最小生成树及其性质最小生成树(Minimum Spanning Tree, MST)是在一个给定的无向图G(V,E)中求一棵树T,使得这棵树拥有图G中的所有顶点,且所有边都是来自图G中的边,并且满足整棵树的边权之和最小。最小生成树的3个性质:(1)最小生成树是树,因此其边数等于顶点数减1,且树内一定不会有环。(2)对给定的图G(V, E),其最小生成树可以不唯一,但其边权之和一定是唯一的。(3)由于最小生成树是在无向图上生成的,因此其根节点可以是在这棵树上的任意一个结点。求解最小生成树一般有

2020-06-05 22:49:27 3996

原创 数据结构之——最短路径(Dijkstra算法和Floyd算法)

最短路径是图论中一个很经典的问题:给定图G(V,E),求一条从起点到终点的路径,使的这条路径上经过的所有边的边权之和最小。1.Dijkstra算法Dijkstra算法(迪杰斯特拉)用来解决单源最短路径问题,即给定图G和起点s,通过算法得到s到达其他顶点的最短距离。Dijkstra的基本思想是对图G(V,E)设置集合S,存放已被访问的顶点,然后每次从集合V-S中选择与起点s的最短距离最小的一个顶点(记为u),访问并加入集合S,之后,令顶点u为中介点,优化起点s与所有从u能到达的顶点v之间的最短距离,这样的

2020-06-04 22:51:34 3391

原创 数据结构之——图的遍历

1.定义图由顶点(Vertex)和边(Edge)组成,每条边的两端都必须是图的两个顶点,记号G(V,E)表示图G的顶点集为V,边集为E。图可以分为有向图和无向图,有向图的所有边都有方向,即确定了顶点到顶点的一个指向;无向图的所有边都是双向的,即无向边所连接的两个顶点可以互相到达。顶点的度是指和该顶点相连的边的条数,对有向图来说,顶点的出边条数称为该顶点的出度,顶点的入边条数称为该顶点的入度。顶点和边都可以有一定属性,而量化的属性称为权值,顶点的权值和边的权值分别称为点权和边权。2.存储图的存储方

2020-06-04 15:09:12 3595

原创 数据结构之——排序二叉树、平衡二叉树和线索二叉树

1.排序二叉树排序二叉树(BST)也称二叉查找树,排序二叉树或者是一棵空树,或者是一棵具有下列特性的非空二叉树:(1)若左子树非空,则左子树上所有结点关键字值小于根节点的关键字值.(2)若右子树非空,则右子树上所有结点关键字值大于根节点的关键字值.(3)左、右子树本身分别是一棵排序二叉树。根据排序二叉树的定义,左子树结点值<根节点值<右子树结点值,对排序二叉树进行中序遍历,可以得到一个递增的序列。(1)查找操作代码如下://search函数查找二叉查找树中数据域为x的结点void

2020-05-29 22:28:02 2011

原创 线性结构之——二叉树的遍历

1.遍历所谓二叉树的遍历,是指按某条搜索路径访问树中的每个结点,使得每个结点均被访问一次,而且仅被访问一次。由二叉树的递归定义可知,遍历一棵二叉树便要决定对根结点N、左子树L和右子树R的访问顺序。按照先遍历左子树再遍历右子树的原则,常见的遍历次序有先序(NLR)、中序(LNR)和后序(LRN)三种遍历算法,其中,序指的是根节点在何时被访问。除了上述三种遍历,还有层次遍历,前三种一般使用深度优先搜索(DFS)实现,而层次遍历一般用广度优先搜索(BFS)实现。2.先序遍历二叉树的递归定义中的递归边界是二

2020-05-29 15:33:49 987

原创 线性结构之——二叉树

1.定义二叉树的每个结点至多只有两棵子树(即二叉树中不存在度大于2的结点),并且二叉树的子树有左右之分,其次序不能颠倒. 二叉树以递归的形式定义,二叉树是n(n>=0)个结点的有限集合:或者为空二叉树,即n=0,或者由一个根节点和两个互不相交的被称为根的左子树和右子树组成,左子树和右子树分别是一棵二叉树.二叉树和度为2的有序树的区别:(1)度为2的树至少有3个结点,而二叉树可以为空(2)度为2的有序树的孩子节点的左右次序是相对于另一孩子结点而言的,如果某个结点只有一个孩子结点,这个孩子

2020-05-28 22:10:18 3019

原创 数据结构之——线性表

1.线性表定义线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列,其中n为表长,当n为0时,该线性表是一个空表。除第一个元素外,每个元素有且仅有一个直接前驱,除最后一个元素外,每个元素有且仅有一个直接后继。线性表的特点:1.表中元素的个数有限2.表中元素具有逻辑上的顺序性,在序列中各元素排序有其先后次序3.表中元素都是数据元素,每一个元素都是单个元素4.表中元素的数据类型都相同,这意味着每一个元素都占有相同大小的存储空间5.表中元素具有抽象性,即仅讨论元素间的逻辑关系,不考虑元

2020-05-26 22:56:58 755

原创 数据结构之——队列

1.定义:是一种先进先出(FIFO)的数据结构,是只允许在线性表的一端插入,在另一端删除的线性表。队头(Front):允许删除的一端,又称为队首。队尾(Rear):允许插入的一端。空队列:不含有任何元素的空表。队列的顺序存储:指分配一块连续的存储单元存放队列中的元素,并附设两个指针front和rear分别指示队头元素和队尾元素的位置。设队头指针指向队头元素的上一个位置,队尾指针指向队尾元素(也可以让front指向队首元素,rear指向队尾元素的下一个位置)。队列的链式存储:队列的链式存储也称为链队

2020-05-25 21:21:38 359

原创 数据结构之——栈

1.定义 : 栈(stack)是一种后进先出(LIFO)的数据结构,是只允许在一端进行操作或删除操作的线性表。栈顶(Top):线性表允许进行插入和删除的那一端。栈底(Bottom):固定的,不允许进行插入和删除的另一端。空栈:不含任何元素的空表。顺序栈:栈的顺序存储成为顺序栈,它是利用一组连续的存储单元存放自栈底到栈顶的数据元素,同时附设一个指针指示当前栈顶的位置。链栈:采用链式存储的栈成为链栈,链栈的优点是便于多个共享存储空间和提高效率,且不存在栈满上溢的情况。顺序栈的基本运算如下所示:1.

2020-05-25 15:58:46 224

原创 查找算法之顺序查找和二分查找

1.顺序查找代码如下:#include<cstdio>#include<iostream>using namespace std;const int maxn = 110; int arr[maxn];int SequenceSearch(int arr[],int key, int n);int main(){ int n,key; printf("请输入元素的个数:\n"); scanf("%d",&n); printf("请输入数组

2020-05-24 23:30:24 8813

原创 归并排序和基数排序

1.归并排序“归并”的含义就是将两个或两个以上的有序表组合成一个新的有序表,假定待排序表含有n个记录,则可以看成是n个有序的子表,每个字表长度为1,然后两两合并,得到[n/2]个长度为2或1的有序表,再两两归并,如此重复,直到合并成一个长度为n的有序表为止,这种排序方法称之为2-路归并排序。递归形式的2-路规定排序算法是基于分治的,过程如下:分解:将含有n个元素的待排序表分成各含n/2各元素的字表,采用2-路归并排序算法对两个字表递归地进行排序。合并:合并两个已排序的字表得到排序结果。代码如下:#

2020-05-23 23:07:35 485

原创 选择排序(简单选择排序和堆排序)

选择排序的基本思想:每一趟(例如第i趟)在后面n-i+1(i=1,2,…n-1)个待排序元素中选取关键字最小的元素,作为有序子序列的第i个元素,直到第n-1趟做完,待排序元素只剩下了1个,就不用再选了。1.简单选择排序简单排序算法思想:假设排序表为L[1…n],第i趟排序即从L[i…n]中选择关键字最小的元素与L(i)交换,每一趟排序可以确定一个元素的最终位置,这样经过n-1趟排序就可以使得整个排序表有序。代码如下:#include<cstdio>#include<iostream

2020-05-23 21:26:46 873

原创 插入排序(直接插入排序、折半插入排序和希尔排序)

所谓插入排序就是将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中,直到全部记录插入完成。1.直接插入排序假设在排序过程中,待排序表L[1…n]在某次排序过程中的某一时刻状态如下:为了实现将元素L[i]插入到已有序列的子序列L[1…i-1]中,需要执行以下操作:(1)查找L(i)在L[1…i-1]中的插入位置。注意是从1到n !!!(2) 将L[k…i-1]中所有元素全部后移一个位置。(3)将L(i)复制到L(k)。为了实现对L[1…n]的排序,可以将L(2)~L(n)依次插

2020-05-22 23:30:28 990

原创 交换排序(冒泡排序和快速排序)

排序算法所谓交换,就是根据序列中两个元素关键字的比较结果来对换这两个记录在序列中的位置。1.冒泡排序冒泡排序算法的基本思想:假设表长为n,从前往后(从后往前)两两比较相邻元素的值,若为逆序(A[I+1]<A[[I]),则交换它们,直到序列比较完,最小的元素交换到待排序列的最终位置,称之为一趟冒泡排序,进行n-1趟冒泡排序,使所有元素按从小到大的顺序排好序。代码如下:在这里插入代码片...

2020-05-22 11:54:58 395

空空如也

空空如也

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

TA关注的人

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