自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(129)
  • 资源 (92)
  • 收藏
  • 关注

原创 IntelliJ IDEA集成git配置账号密码

由于使用git bash,已经如果有权限,那么是有提示输入账号和密码的,输入验证过一次成功后,在idea勾选use credential helper 再拉取和提交代码就不会出现需要输入token。

2024-03-24 11:45:32 830

原创 chrome调试必知必会

学习掌握chrome调试,对于分析前端问题,以及分析后端接口返回内容,都极有帮助。熟练掌握和应用快捷键,可以提升研发效率。

2024-02-19 21:23:01 744

原创 使用Nginx或者Fiddler快速代理调试

fiddler比较轻量,对于简单的前端js,推荐使用该方式,但是有多个文件要替换时候,需要逐一新增规则,比较累。nginx代理替换比较强大,但需要本地起个nginx,并且要懂得编写匹配规则。nginx不仅可以代理前端,还可以代理后端。而且对于压缩打包的js,可以代理为源代码模式,优势大。

2024-02-19 13:11:44 255

原创 SWT集成chromium

1 参考官方文档https://www.eclipse.org/swt/faq.php#howusechromiumQ: How do I explicitly use Chromium as the Browser’s underlying renderer?A: To specify that a Chromium renderer be used by a Browser instance, create it with style SWT.CHROMIUM (@since 4.17) or s

2020-08-30 21:42:57 1391

原创 嵌入式mysql

1 潜入式mysql1.1 引入包<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-mxj</artifactId> <version>5.0.12</version> </dependency> <dependency> <groupId>mysql</groupI

2020-08-17 08:04:34 1206

原创 puppeteer在linux使用

1 chrome下载https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpmyum localinstall2 puppeteer 配置puppeteer 是可以使用 chrome 的, 需要指定路径 ; args 参数是传递给浏览器 。 在root用户下需要指定 --no-sandbox...

2020-04-07 23:28:36 1701

原创 Linux远程linux 安装mysql

1 目标 在一台linux应用服务器上,远程连接到另一台linux数据库服务器,安装mysql。 应用服务器是开通了外部网络,外部可以访问,而数据库是在内部网里面,外部无法访问,只能通过应用服务器远程访问数据库服务器。2 操作2.1 linux远程linux ssh -l root 192.168.0.1...

2019-12-14 21:38:40 118

原创 高效书页滚动切换 “图形”

1 描述在项目中,需要把很多的图,像Word一样支持一页一页滚动显示,并且页数很多。而显示图的组件相对比较重,不利于一页一个组件,否则将加载缓慢,甚至因内存消耗巨大而崩溃。2 思路只需使用三到四个图形组件,可以理解为一个组件池,池中没有资源时创建。图形滚动消失时,图形组件归还给组件池,留给下次使用。每次从组件池获取未使用的组件,然后移动显示在指定位置。3 代码实现片段处理哪个区域需要显...

2019-11-13 21:31:33 165

原创 nodejs ( vue) 远程下载js

1 问题描述使用 nodejs + vue 开发前端应用时,期望可以动态加载远程服务端js。2 修改 requirejs引入requirejs, 转换为 export 导出。window.define = define;window.requirejs = requirejs;export { requirejs}3 应用 requirejs.config({ ...

2019-11-09 21:33:56 258

原创 打印html页面或者截图

1 总体1.1 问题描述通过 html 和 svg 构建的页面或图形,需要下载或者导出。html转打印不易处理,伴随出现一些问题,如模糊,不一致,错乱等。急需有一个方案解决,可以清晰的打印html。1.2 截图使用截图转换为图片,然后再打印,可以很清晰。目前的截图都需要人工敲击快捷键,才执行截图操作,无法自动执行。1.3 引入开源组件通过分析研究,可以引入开源组件puppeteer,...

2019-10-27 14:00:46 662

原创 css交叉圆

1 说明使用交叉圆来表达两个表的连接关系:左连接,右连接,内连接,全连接。并且可以点击图形切换连接方式。2 html<div class="imgDiv"> <div class="leftCircle" :class="{'select':leftSelect}" :style="leftStyle" v-on:click="selectLeft"> &l...

2019-09-26 04:15:29 1115

原创 vue拖动事件简单绑定

1 完整div<div v-bind:class="{'selected': col.selected}" :draggable="data.enabled" @dragstart="drag($event,data,col)" @dragover.prevent @drop="drop($event,data,col)">{{col.name}}</div>2 ...

2019-09-26 04:01:20 6828

原创 hibernate创建时间和修改时间注解

1 创建时间 /** * 创建时间 */ @Column(updatable = false) @Temporal(TemporalType.TIMESTAMP) @org.hibernate.annotations.CreationTimestamp private Date createDate;2 修改时间 /** * 最后时间 */ @Temporal...

2019-09-26 03:49:52 665

原创 vue-devtools浏览器插件安装

1 下载使用git 下载 vue-devtoolsgit clone https://github.com/vuejs/vue-devtools.git

2019-08-11 20:51:28 4201

原创 spring boot 集成 alibaba nacos

1 nacos服务1.1 下载下载地址 https://github.com/alibaba/nacos/releases, 下载1.1.3版本1.2 启动cmd startup.cmd -m standalonestandalone 表明非集群模式。

2019-08-10 15:10:07 2907

原创 vue和vue-element-admin开发

1 安装环境1.1 安装nodejs下载地址 https://nodejs.org/en/, nodejs比较容易安装,下载后按安装步骤安装。查看版本: node --version1.2 安装 Vue CLIVue CLI 是Vue.js 开发的标准工具。地址为 https://cli.vuejs.org/zh/在命令行输入命名:npm install -g @vue/cli...

2019-08-10 09:02:26 1847

原创 DDD应用于微服务划分

1 介绍引入随着互联网应用的发展,在敏捷快速迭代、高可用、高性能、高并发等方面要求越来越高,传统的SOA分布式架构并不适合这种场景,互联网最新流行且最佳的实践方式就是微服务化。而微服务的首要问题是微服务如何拆分。现在很多的微服务开发团队在设计和实现微服务的时候觉得只要把原来的单体拆小,就是微服务了。但是这不一定是正确的微服务,可能只是一个拆小的小单体。而这种拆分真的能够给我们带来微服务架构的那...

2019-08-10 07:17:46 1423

原创 如何在虚拟机上安装CentOS(7.6)

安装过程

2019-08-05 19:27:57 501

原创 oracle11在linux(centos)下安装

1 操作

2019-08-05 19:22:11 117

原创 oracle19c在centos7.6上安装

1 准备1.1 下载oracle和预安装https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle19c-linux-5462157.htmlhttp://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-d...

2019-08-04 11:29:10 6815 1

原创 Centos7上安装docker

1 前提条件Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。使用 uname -r 查看

2019-07-21 10:17:19 106

原创 Linux安装JDK

1 下载JDK2 查看JDK版本java -version

2019-07-20 14:29:43 158

原创 spring boot 项目打成启动 jar

1 加入构建脚本在pom.xml 加入如下代码 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId&g...

2019-07-15 18:40:42 103

原创 gradle下载jar

apply plugin: 'java' sourceCompatibility = 1.8 repositories { maven { url "http://maven.xx" }} dependencies { compile 'io.spring.gradle:dependency-management-plugin:0.6.1.RELEASE' ...

2019-07-04 22:27:35 1318

原创 selenium 切换窗口页签

面对有一些点击,弹出新页签窗口, 那么可以通过 driver.switchTo().window(string) 切换页签,而后处理完毕, 再切回来,如下: String windowHandle = driver.getWindowHandle(); switchWindow(driver, windowHandle); // doDetail(item, driver);...

2019-06-17 07:04:59 929

原创 spring 服务注册中心

1 服务注册中心在微应用模式下,服务和服务的地址和ip端口不能强耦合,应通过注册名访问,那么服务可以集群化,分布化,也可以部分停机维修。spring cloud 提供 eureka 注册服务中心。1.1 gradle 配置plugins { id 'org.springframework.boot' version '2.1.3.RELEASE' id 'java'}...

2019-03-29 07:04:32 717

原创 MxGraph上下文按钮实现

1 介绍mxGraph是一个强大的JavaScript流程图前端库,可以快速创建交互式图表和图表应用程序,国内外著名的ProcessOne和draw.io都是使用该库创建的强大的在线流程图绘制网站.1.1 编写顶点事件function mxVertexToolHandler(state) { mxVertexHandler.apply(this, arguments);};mxVer...

2019-03-17 09:02:10 524

原创 Eclipse插件开发

1 概要Eclipse依然是开发java的主流IDE之一, 技术公司如要提升开发侧的效率或者为产品吸引开发者,可以开发Eclipse插件。本文将介绍Eclipse插件开发的一些点。2 插件开发2.1 按钮扩展2.1.1 扩展菜单扩展菜单扩展点org.eclipse.ui.menus,指定命令id。...

2019-03-16 23:10:47 17288 2

原创 并发编程

1 Semaphore 使用Semaphore又称信号量,是操作系统中的一个概念,在Java并发编程中,信号量控制的是线程并发的数量。

2018-08-04 07:26:45 140

原创 selenium安装启动

1 下载通过下载地址 http://npm.taobao.org/mirrors/selenium/ , 选择对应版本下载。

2018-07-28 00:00:10 974

原创 Gitlab在centos6搭建

1 Gitlab服务搭建1.1 卸载sudo gitlab-ctl uninstallsudo rpm -e gitlab-cefind / -name gitlab|xargs rm -rf

2018-07-15 11:19:14 3453 1

原创 gitblit服务器搭建

1 git服务器搭建1.1 目标 git服务器自身搭建,是提供了自身一个学习实践路径,并且服务于团队本身私有仓库。1.2 下载 下载地址:http://www.gitblit.com/ ![这里写图片描述](https://img-blog.csdn.net/20180714081516746?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG...

2018-07-14 08:17:28 2675

原创 三千高并发性能优化

1总体1.1环境3台64核的应用服务器,每个应用服务器部署4个节点; 一台数据库服务器; 3个负载均衡Nginx,每个Nginx导向4个节点。2 优化处理2.1 日志高并发大量的系统日志将导致系统堵塞,日志只开启error级别,或者日志在另一线程批量处理。2.2 号段为了保持一个编号不重复,每次获取都到数据库中加1,这样将导致资源竞争锁住,调整为每次取一批号段,...

2018-06-03 15:01:23 1818

原创 高并发异步和缓冲队列

1概述高并发时,复杂的任务要异步化,线程池满了后不会拒绝添加任务,需要有个缓冲队列机制。1.1 代码如下public final class ThreadPool { /** * LOG. */ private static final ILog LOG = LogFactory.getLog(ThreadPool.class); ...

2018-05-20 15:33:08 5212

原创 openresty集群负载均衡

1 window下安装1.1下载https://github.com/LomoX-Offical/nginx-openresty-windows1.2 解压启动解压到 D盘, 打开目录,双击nginx.exe, 没有效果,查看日志 D:\nginx\logs\error.log,发现如下错误: bind() to 0.0.0.0:80 failed (10013: A...

2018-03-24 00:14:32 3188

原创 高扩展性网站的50条原则(笔记)

1 化简方程任何大问题,只要分拆方法正确,都不过是一系列有待解决的小问题的集合。1.1 原则1 :不要过度设计复杂的解决方案实施成本高,而且会产生大量长期成本。过度复杂的系统会限制扩展能力。简单的系统更容易维护和扩展,且成本更低。过度设计分为两大类。一类是指设计与实现超出了有用需求的产品。 范围蔓延,或者最初产品定义和最初的产品发布之间的范围差异,是过度设计的一种表现。过...

2018-03-17 08:20:16 555

原创 动态模型

1 动态模型1.1 说明动态模型是指模型的属性是不固定的,可以添加和变更;也指不同模型,可以增加模型。不同模型在存储上为了性能和隔离,使用不同的表。但逻辑编写为了复用,一般使用同一个java类型。以下介绍如何对应。1.2 java类java类分固定属性和动态属性,固定属性直接建立属性即可,动态属性使用map类型。例如下面例子:public class Dynamic...

2018-03-15 21:07:24 4727

原创 java基础点荟萃

1 web1.1 文件下载1.1.1 客户端var url = &quot;/services/fileServlet&quot;;url += &quot;?beanId=&quot; + beanId;url += &quot;&amp;amp;method=&quot; + method;url += &quot;&amp;amp;params=&quot; + $.toJSON(params);

2018-03-10 09:24:28 128

原创 spring boot 使用 Thymeleaf

1 说明本文介绍在 spring boot中如何使用 Thymeleaf。Thymeleaf&amp;lt;是现代化服务器端的Java模板引擎,不同与JSP和FreeMarker,Thymeleaf的语法更加接近HTML,并且也有不错的扩展性。2 引入模块在 build.gradle 里引入模块spring-boot-starter-thymeleaf。 compile 'or...

2018-02-19 09:38:03 770

原创 spring boot 访问静态html、js

1 具体1.1 参考详细的资料参考 https://spring.io/blog/2013/12/19/serving-static-web-content-with-spring-boot, 加载静态资源,会从以下几个路径查找:/META-INF/resources/ /resources/ /static/ /public/WebMvcAutoConfigurati...

2018-02-18 20:58:37 1553

UML基础、案例与应用(第三版)

UML基础、案例与应用(第三版).pdf UML基础、案例与应用(第三版).pdf

2017-08-19

实现领域驱动设计

领域驱动设计(DDD)是教我们如何做好软件的,同时也是教我们如何更好地使用面向对象技术的。它为我们提供了设计软件的全新视角,同时也给开发者留下了一大难题:如何将领域驱动设计付诸实践?Vaughn Vernon 的这本《实现领域驱动设计》为我们给出了全面的解答。, 《实现领域驱动设计》分别从战略和战术层面详尽地讨论了如何实现DDD,其中包含了大量的最佳实践、设计准则和对一些问题的折中性讨论。《实现领域驱动设计》共分为14 章,在DDD 战略部分,《实现领域驱动设计》向我们讲解了领域、限界上下文、上下文映射图和架构等内容,战术部分包括实体、值对象、领域服务、领域事件、聚合和资源库等内容。一个虚构的案例研究贯穿全书,这对于实例讲解DDD 实现来说非常有用。, 《实现领域驱动设计》在DDD 的思想和实现之间建立起了一座桥梁,架构师和程序员均可阅读,同时也可以作为一本DDD 参考书。

2017-08-11

node.js实战中文

国外大神的书籍,图灵的实战系列,值得一看,中文版本

2016-03-24

AngularJS权威教程

AngularJS权威教程

2015-08-15

性能测试从零开始——LoadRunner入门

性能测试从零开始——LoadRunner入门

2014-07-21

HTTP权威指南

HTTP权威指南

2014-06-27

西门子首席架构师之作

西门子首席架构师之作

2014-05-05

无懈可击的WEB设计第二版

无懈可击的WEB设计第二版.pdf

2014-04-30

Web设计:HTML5和CSS3实战

Web设计:HTML5和CSS3实战

2014-04-30

SQLite权威指南

SQLite权威指南

2014-04-25

CSS设计指南(第3版)

CSS设计指南(第3版)

2014-04-09

Pro JavaFX 2.pdf

Pro JavaFX 2.pdf

2014-01-04

软件框架设计的艺术

软件框架设计的艺术

2013-12-24

java计算机图形

java计算机图形

2013-11-21

算法引论-一种创造性方法

算法引论-一种创造性方法

2013-08-24

Swing Hacks

Swing HACKS:100个业界最尖端的技巧和工具 目录 致谢1 前言5 第1章基本JComponent13 1创建图像主题组件13 2别满足于枯燥的文本标签20 3以图片填充边框26 4以定制的日历显示日期31 5在文本组件中添加水印35 6在滚动窗格中引入水印38 7向文本域背景添加NASA照片42 8动态切换分页45 9对失效组件添加模糊效果52 10构建下拉菜单按钮55 11创建带下拉阴影的菜单62 12为菜单添加透明效果66 第2章列表和组合框71 13过滤JList71 14添加筛选历史记录76 15使JList可被复选79 16让不同列表项有不同的外观84 17使用拖放对JList进行重排序94 18让JList的选择拥有动态效果101 19在列表填充器中使用其他方法106 20创建支持Collection的JComboBox110 第3章表格和树117 21根据JTable内容确定列宽117 22为JTable添加按列选择功能123 23让JTable完成排序125 24创建一个JDBC表格模型138 25将表格数据导出到Excel147 26方便地搜索JTable150 27为JTree添加动态拖放效果156 第4章文件选择器166 28为文件选择器添加右键上下文菜单166 29在文件选择器中显示快捷方式171 30真正支持Windows快捷方式175 31向文件选择器添加图像预览功能182 32预览ZIP和JAR文件186 第5章窗口、对话框和窗框194 33为窗口实现吸附效果194 34实现可拖动的窗口197 35添加窗口尺寸调整图标200 36为窗口添加状态栏206 37保存窗口设置信息213 38可振动的对话框218 39旋转打开详情窗口223 40最小化为微型窗框229 第6章透明窗口和动画窗口235 41透明窗口235 42使窗口具有淡出效果242 43创建自定义提示框247 44将对话框变为停靠于窗口的漂浮对话框251 45为飘浮对话框实现动画效果256 46从任务栏中滑出提示263 47模糊式进度指示器271 第7章文本281 48使文本组件可被搜索281 49强制要?笪谋臼淙敕?现付ǜ袷?285 50带自动补全功能的文本域290 51文本反转297 52在文本组件中使用HTML和CSS300 53使用全局抗锯齿字体304 54不通过代码实现抗锯齿文本309 55通过自定义外观实现抗锯齿文本311 第8章渲染处理313 56创建放大镜组件313 57创建全局右键菜单319 58不通过模态对话框实现窗口阻塞322 59创建取色器326 60为整个程序改变字体330 61在运行时加载新字体334 62构建基于向量的按钮336 63为Swing添加第三维度343 64在Swing中吸引用户注意力349 第9章拖放处理357 65文件拖放357 66处理对URL的释放363 67处理对图像的释放367 68在MacOSX上处理对Pict图像的释放373 69半透明拖放效果379 第10章音频387 70在Applet中播放音频388 71使用JavaSound播放音频394 72使用Java媒体框架(JMF)播放音频398 73使用JavaSound播放音频401 74为JMF加入对MP3的支持406 75构建一个音频波形显示器408 76播放复杂音频417 77在播放时显示音频文件信息423 78在回放时控制音频433 第11章本地化集成和打包440 79在Windows中运行外部程序440 80在MacOSX上打开文件、目录和URL443 81使Mac应用程序正常工作445 82控制MacOSX中的iTunes450 83在Windows中控制iTunes453 84构建单次运行的应用程序456 85为JAR包添加新内容460 86快速变换外观466 87创建黑白间隔的主题471 第12章其他技巧476 88显示鼠标指针为忙碌状态476 89有趣的键盘灯479 90用Robot类创建演示效果483 91通过Swing检查邮件487 92避免阻塞GUI492 93实现非阻塞的模型498 94抛出事件并避免bug505 95调试GUI512 96使用自定义透明窗格调试组件515 97创建应用程序的镜像520 98为动态HTML添加Velocity引擎526 99获取大文件图标533 100动态调整窗框尺寸534[1]

2013-08-21

PHP和MySQL Web开发

PHP和MySQL Web开发

2013-08-20

高性能PHP应用开发

高性能PHP应用开发

2013-08-20

Apress.Practical.API.Design

Apress.Practical.API.Design.Confessions.of.a.Java.Framework.Architect

2013-08-13

LINUX_UNIX设计思想

LINUX_UNIX设计思想

2013-08-05

项目管理修炼之道

项目管理修炼之道.pdf

2013-06-25

《Maven权威指南(中文)

《Maven权威指南(中文)

2013-05-19

The.Definitive.Guide.to.NetBeans.Platform.7

The.Definitive.Guide.to.NetBeans.Platform.7

2013-05-14

ATL开发指南

ATL开发指南

2013-02-16

企业虚拟化实战Vmware

企业虚拟化实战Vmware

2013-01-05

Google Android揭秘

Google Android揭秘

2012-11-26

算法基础数论

@cfannet.com@初等数论+I(陈景润).pdf [算法数论].裴定一.清晰版.pdf 基础数论_杜德利.pdf 数论基础_张君达编.pdf

2012-11-19

Groovy经典入门

Groovy经典入门

2012-11-07

组合数学基本原理

组合数学基本原理(陈景润)组合数学基本原理(陈景润)

2012-10-18

组合数学基本原理(陈景润)

组合数学基本原理(陈景润)组合数学基本原理(陈景润)

2012-10-15

实用算法分析与程序设计.pdf

实用算法分析与程序设计.pdf实用算法分析与程序设计.pdf

2012-08-11

新手编程导论.pdf

新手编程导论.pdf 新手编程导论.pdf 新手编程导论.pdf

2012-07-28

Oracle数据库管理员技术指南.rar

Oracle数据库管理员技术指南.rarOracle数据库管理员技术指南.rar

2012-05-03

Java并发编程-设计原则与模式.pdf

Java并发编程-设计原则与模式.pdf

2012-03-17

异质多数据源开发手册

异质的多数据源,是指一个系统可以同 时支持两种及上不类型库比如异质的多数据源,是指一个系统可以同 时支持两种及上不类型库比如异质的多数据源,是指一个系统可以同 时支持两种及上不类型库比如异质的多数据源,是指一个系统可以同 时支持两种及上不类型库比如异质的多数据源,是指一个系统可以同 时支持两种及上不类型库比如异质的多数据源,是指一个系统可以同 时支持两种及上不类型库比如异质的多数据源,是指一个系统可以同 时支持两种及上不类型库比如异质的多数据源,是指一个系统可以同 时支持两种及上不类型库比如异质的多数据源,是指一个系统可以同 时支持两种及上不类型库比如异质的多数据源,是指一个系统可以同 时支持两种及上不类型库比如异质的多数据源,是指一个系统可以同 时支持两种及上不类型库比如异质的多数据源,是指一个系统可以同 时支持两种及上不类型库比如异质的多数据源,是指一个系统可以同 时支持两种及上不类型库比如异质的多数据源,是指一个系统可以同 时支持两种及上不类型库比如异质的多数据源,是指一个系统可以同 时支持两种及上不类型库比如异质的多数据源,是指一个系统可以同 时支持两种及上不类型库比如异质的多数据源,是指一个系统可以同 时支持两种及上不类型库比如异质的多数据源,是指一个系统可以同 时支持两种及上不类型库比如异质的多数据源,是指一个系统可以同 时支持两种及上不类型库比如时支持 时支持 MySQL MySQL MySQL和 OracleOracleOracle Oracle。

2018-05-02

多数据源开发手册

spring下的多数据源开发手册,以及开发步骤。动态切换数据源,支持面向数据源传递数据,以及水平切法。

2018-04-18

测试驱动开发

测试驱动开发 中文版 .Kent.Beck.扫描版.pdf 测试驱动开发 中文版 .Kent.Beck.扫描版.pdf 测试驱动开发 中文版 .Kent.Beck.扫描版.pdf

2017-09-03

领域驱动设计:软件核心复杂性应对之道

领域驱动设计:软件核心复杂性应对之道 领域驱动设计:软件核心复杂性应对之道 领域驱动设计:软件核心复杂性应对之道

2017-09-02

领域驱动设计与模式实战

领域驱动设计与模式实战领域驱动设计与模式实战

2017-08-29

UML精粹:标准对象建模语言简明指南

UML精粹:标准对象建模语言简明指南, UML精粹:标准对象建模语言简明指南

2017-08-18

空空如也

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

TA关注的人

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