- OracleSync2MySQL 数据同步问题bad connection、创建表异常、数据映射异常
aspirant-complete
运维开发
1、mysql数据库连接badconnection、invalidconnection等异常检查数据库连接空闲时间MySQL服务器等待一个连接所允许的空闲时间。如果达到此时间,MySQL服务器将自动关闭该连接,除非该连接正在活动状态```sqlSHOWVARIABLESLIKE'wait_timeout';应用开发中,网络访问是一个至关重要的环节。HTTP协议作为网络通信的基石,对于实现应用的数据交换和服务请求起着核心作用。本文将详细探讨在HarmonyOS应用开发中如何进行HTTP网络访问,包括基本的HTTP请求和响应处理,以及如何对这些操作进行封装,以提高代码的可重用性和可维护性。HarmonyOS中的HTTP网络访问使用HttpURLConnection
- 【Laravel】 Laravel 智能验证规则生成器
gskyi
PHPlaravel设计规范laravelphp数据库Validation
Laravel智能验证规则生成器:企业级增强方案loadConfig();$this->connection=config('database.default');$this->databaseDriver=config("database.connections.{$this->connection}.driver");}/***加载配置*/protectedfunctionloadConfig
- RabbitMQ如何使用线程池进行消费
涛歌依旧fly
RabbitMQ医疗挂号系统java-rabbitmqrabbitmqjava
第一步,先写配置@ConfigurationpublicclassRabbitmqConfig{@Bean("batchQueueRabbitListenerContainerFactory")publicRabbitListenerContainerFactoryrabbitListenerContainerFactory(ConnectionFactoryconnectionFactory){
- 系统初始化init到(zygote)后启动桌面
文章目录zygote启动AndroidRuntime.cppZygoteInit.javazygote.javacom_android_internal_os_Zygote.cppzytogeServer.javaZygoteConnection.javaSystemServer启动zygoteinit.javaAndroidRuntime.cppapp_main.cppRuntimeInit.j
- 【安卓Sensor框架-2】应用注册Sensor 流程
蜘蛛侠不会飞
安卓源码解析android安卓源码frameworksensorsensorservice
注册传感器的核心流程为如下:应用层调用SensorManager注册传感器,framework层创建SensorEventQueue对象(事件队列),通过JNI调用Native方法nativeEnableSensor();SensorService服务端createEventQueue()创建SensorEventConnection对象,然后enable使能sensor。这里以监听光传感器的流程
- Spring Cloud测试 I/O error on GET request for “http://springcloud-provider/provider/get/emplo
IT莫染
bug笔记javaspringcloud
连接拒绝错误错误提示:页面I/OerroronGETrequestfor“http://springcloud-provider/provider/get/emplo后台控制台:Connectionrefused:connect;nestedexceptionisjava.net.ConnectException:Springcloud测试出现的错误:连接拒绝出错原因是因为provider开启的3
- http.client.HTTPConnection.POST和requests.post区别
抖音运维厨师长
pythonhttpchromepython
http.client.HTTPConnection.POST和requests.post是用于在Python中执行HTTPPOST请求的两种方法,但它们在实现和使用上有很大的区别。http.client.HTTPConnection.POSThttp.client是Python标准库中的模块,用于低级别的HTTP协议操作。使用http.client.HTTPConnection,你可以手动构建H
- HBase 开发:使用Java操作HBase 第1关:创建表
是草莓熊吖
hbase大数据Educoderhbasehadoop大数据
为了完成本关任务,你需要掌握:1.如何使用Java连接HBase数据库,2.如何使用Java代码在HBase中创建表。如何使用Java连接HBase数据库Java连接HBase需要两个类:HBaseConfigurationConnectionFactoryHBaseConfiguration要连接HBase我们首先需要创建Configuration对象,这个对象我们需要通过HBaseConfig
- 关于网络协议
万能小贤哥
人工智能python网络协议网络
网络协议:从字节流到分布式系统的底层逻辑作为每天与Socket、TCPdump打交道的开发者,我们对网络协议的认知往往始于一次ConnectionRefused的报错,或是Wireshark里那些闪烁的数据包。但当深入分布式系统开发后会发现,这些看似枯燥的RFC文档,实则是构建可靠数字世界的底层语法。一、协议本质:解决"不可靠"的工程妥协物理层的信号衰减、链路层的帧丢失、网络层的路由抖动——网络本
- mysqlx_max_connections
讓丄帝愛伱
数据库#MySQLmysql
mysqlx_max_connections是MySQL8.0版本中的一个系统变量,它用于设置MySQLXProtocol(X协议)的最大连接数。MySQLXProtocol是MySQL的一种新的协议,它基于WebSocket和JSON,用于提供无状态、基于文档的访问MySQL的功能。mysqlx_max_connections定义了通过X协议允许的最大并发连接数。当达到该限制时,新的连接请求将被
- RabbitMQ实现路由模式发送接收消息
1.基础类publicclassRabbitMQHelper{publicstaticIConnectionGetConnect(){//连接工厂varfac=newConnectionFactory(){HostName=“127.0.0.1”,//IPPort=5672,//端口UserName=“xxx”,Password=“xxx”,VirtualHost=“/”};returnfac.C
- 欢乐熊大话蓝牙知识24:LE Secure Connections 是 BLE 的安全升级术
欢乐熊嵌入式编程
欢乐熊大话蓝牙知识安全BLE蓝牙低功耗蓝牙LESecureGATT蓝牙
《LESecureConnections是BLE的安全升级术》还在用JustWorks?你家智能锁可能比你家门还容易被打开。今天我们来聊聊BLE中的“防身绝技”——LESecureConnections(LESC),它到底有多安全?又该怎么用?一、LESecureConnections是啥?一句话解释:LESecureConnections是BLE自4.2版本引入的“升级配对方式”,它不再是“小打
- python连接db2的官方库ibm_db的api
数据-脚本-资源-管道
ibm-dbpython数据库python
IBM_DBAPI详细文档ibm_db.active描述检查指定的数据库连接是否处于活动状态传入参数connection:有效的数据库连接资源返回值True:资源处于活动状态False:资源未处于活动状态例子importibm_dbconn=ibm_db.connect("DATABASE=testdb;HOSTNAME=localhost;PORT=50000;PROTOCOL=TCPIP;UI
- DNS故障分析优化
小小小糖果人
LInux基础内容java服务器前端
1、DNS解析失败1.1报connectiontimedout;noserverscouldbereached错误root@15b099c121e2:/#nslookuptime.geekbang.org;;connectiontimedout;noserverscouldbereached1.2对网络进行排查,或者是使用nslookup-debugwww.baidu.com。结果发现网络是征程连
- 怎么java链接数据库_Java 如何使用JDBC连接数据库
悦时光里的背包客
怎么java链接数据库
一、使用JDBC连接数据库1.使用JDBC-ODBC桥驱动程序连接数据库基本步骤:(1)加载并注册数据库驱动(2)通过DriverManager获取数据库连接(3)通过Connection对象获取Statement对象(4)使用Statement接口执行SQL语句(5)操作ResultSet结果集(6)关闭连接,释放资源2.下面进行代码演示1.注册数据库驱动程序的语法格式如下:DriverMana
- Java 中 DataSource-数据源 的基础介绍
Java中DataSource-数据源的基础介绍一、核心概念解析1.1数据源(DataSource)1.2数据库连接池(ConnectionPool)1.3二者关系1.4DataSource接口二、DataSource解决的问题与优势2.1DataSource的作用2.2传统方式的局限性2.3使用连接池DataSource的改进三、SpringBoot中DataSource的配置与使用3.1自动配
- SpringBoot + MyBatis 事务管理全解析:从 @Transactional 到 JDBC Connection 的旅程
coderzpw
MybatisSpring系列springbootmybatisjava
SpringBoot+MyBatis事务管理全解析:从@Transactional到JDBCConnection的旅程一、JDBCConnection:事务操作的真正执行者1.1数据库事务的本质1.2Spring与Connection的协作流程二、从@Transactional到JDBCConnection的完整链路2.1Spring中TransactionInterceptor的核心逻辑2.2T
- ReadTimeoutError: HTTPSConnectionPool(host=‘files.pythonhosted.org‘, port=443): Read timed out.
微信公众号:AI创造财富
python开发语言
ERROR:Exception:Traceback(mostrecentcalllast):File"/home/powersys/work/miniconda/lib/python3.13/site-packages/pip/_vendor/urllib3/response.py",line438,in_error_catcheryieldFile"/home/powersys/work/min
- 探索PyRDP:远程桌面协议的瑞士军刀
彭宏彬
探索PyRDP:远程桌面协议的瑞士军刀pyrdpRDPmonster-in-the-middle(mitm)andlibraryforPythonwiththeabilitytowatchconnectionsliveorafterthefact项目地址:https://gitcode.com/gh_mirrors/py/pyrdp在网络安全领域,攻防两端的对决不断推动着工具的创新。今天,让我们聚
- MaxRetryError: HTTPConnectionPool(host=‘127.0.0.1‘, port=51379): Max retries exceeded with url: /ses
卢卡平头哥
Pythonpython
1.…暗示调用self.driver.close()方法失败引发MaxRetryError。2.有几件事:首先,根据讨论max-retries-exceeded异常令人困惑,回溯有些误导请求包装异常以方便用户。原始异常是显示消息的一部分请求永远不会重试(它为urllib3的HTTPConnectionPool设置retries=0)因此如果没有MaxRetryError和HTTPConnectio
- spring —— 使用 JDBCTemplate 对数据库操作
张民遇
spring数据库springoracle
在传统方法中,我们一般建立Connection链接,然后通过Statementstm=conn.createStatement()来获取Statement对象,最后用Statement对象操作数据库。在spring中,则是通过com.alibaba的druid配置数据源工具,来配置要连接的数据库,然后将配置好的数据源作为属性传入JDBCTemplate对象当中,最后用JDBCTemplate对象操
- 【python】pip 国内镜像源
叶阿猪
pythonpythonpip开发语言
使用pip下载安装python第三方库的时候,经常会很慢,甚至报错。如下:pip._vendor.urllib3.exceptions.ReadTimeoutError:HTTPSConnectionPool(host='f而使用Python的镜像源(也称为国内安装源或PyPI镜像源)可以提高Python包(如numpy、pandas等)的安装速度和稳定性。Python的镜像源是在国内设置的代理服
- ssh: connect to host github.com port 22: Connection timed out fatal: Could not read from remote repo
youyu-youyu
githubgit
问题描述:在使用Git将本地仓库推送到远程仓库的时候,发生了如下错误:“fatal:Couldnotreadfromremoterepository.”1、首先输入以下命令检查SSH是否能够连接成功(ssh后面有空格)
[email protected]发现报错:端口连接超时。ssh:connecttohostgithub.comport22:Connectiontimedout解决方案(亲测有
- AtCoder Grand Contest 039
Owen_Q
搜索图论Atcoder
再战atcoder,误入grand局,赛后才意识到。偶然间发现,一年多前自己也是通过grand局狂涨800+分,甚是巧合A-ConnectionandDisconnection思路:这题就是一个简单的字符串计算问题,子串复制多次后变换最少元素消除连续相同元素。对于连续元素,其实只需要向下取整相间消除即可完成,最后单独统计一下首尾,处理掉复制连接处,再考虑一下所有元素均相同的情况即可。/*Autho
- ResNet(Residual Network)
不想秃头的程序
神经网络语音识别人工智能深度学习网络残差网络神经网络
ResNet(ResidualNetwork)是深度学习中一种经典的卷积神经网络(CNN)架构,由微软研究院的KaimingHe等人在2015年提出。它通过引入残差连接(SkipConnection)解决了深度神经网络中的梯度消失问题,使得网络可以训练极深的模型(如上百层),并在图像分类、目标检测、语义分割等任务中取得了突破性成果。以下是ResNet的详细介绍:一、核心思想ResNet的核心创新是
- 出现 java.net.ConnectException: Connection refused 异常的原因及解决方法
WGH100817
1异常描述在启动Tomcat服务器的时候,控制台一直输出异常信息,然后停止服务器,报出如下异常:2异常原因通过观察上图中被标记出来的异常信息,咱们可以知道java.net.ConnectException:Connectionrefused此异常,为:连接被拒绝异常。之前也在网上搜索过该异常出现的原因,大多数人给出的答案是端口号被占用,或者在启动本次Tomcat服务器之前“关闭”的Tomcat服务
- Elasticsearch连接 java.net.ConnectException: Connection refused: getsockopt
swany
elasticsearchjava.net
使用springboot连接Elasticsearch创建全文索引,总是报连接不上的问题,报错如下:org.springframework.beans.factory.UnsatisfiedDependencyException:Errorcreatingbeanwithname'esContentService':Unsatisfieddependencyexpressedthroughfiel
- 二进制安全
关于这个词,解释的应该很多,不管是密码学还是文件什么的,这次想说的是关于代码是二进制安全的,比如这句Redis的字符串表示还应该是二进制安全的:这里的二进制安全是什么意思呢?感觉wiki里这个解释的还是比较清楚的:Binary-safeisacomputerprogrammingtermmainlyusedinconnectionwithstringmanipulatingfunctions.Ab
- SpringBoot整合kafka报could not be established. Broker may not be available.
ls65535
中间件Connectiontonode0(localhost/12couldnotbeestablished.Brokerma
SpringBoot整合kafka报couldnotbeestablished.Brokermaynotbeavailable.报错日志[AdminClientclientId=adminclient-1]Connectiontonode0(localhost/127.0.0.1:9092)couldnotbeestablished.Brokermaynotbeavailable.[AdminCl
- 戴尔笔记本win8系统改装win7系统
sophia天雪
win7戴尔改装系统win8
戴尔win8 系统改装win7 系统详述
第一步:使用U盘制作虚拟光驱:
1)下载安装UltraISO:注册码可以在网上搜索。
2)启动UltraISO,点击“文件”—》“打开”按钮,打开已经准备好的ISO镜像文
- BeanUtils.copyProperties使用笔记
bylijinnan
java
BeanUtils.copyProperties VS PropertyUtils.copyProperties
两者最大的区别是:
BeanUtils.copyProperties会进行类型转换,而PropertyUtils.copyProperties不会。
既然进行了类型转换,那BeanUtils.copyProperties的速度比不上PropertyUtils.copyProp
- MyEclipse中文乱码问题
0624chenhong
MyEclipse
一、设置新建常见文件的默认编码格式,也就是文件保存的格式。
在不对MyEclipse进行设置的时候,默认保存文件的编码,一般跟简体中文操作系统(如windows2000,windowsXP)的编码一致,即GBK。
在简体中文系统下,ANSI 编码代表 GBK编码;在日文操作系统下,ANSI 编码代表 JIS 编码。
Window-->Preferences-->General -
- 发送邮件
不懂事的小屁孩
send email
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import org.apache.commons.mail.MultiPartEmail;
- 动画合集
换个号韩国红果果
htmlcss
动画 指一种样式变为另一种样式 keyframes应当始终定义0 100 过程
1 transition 制作鼠标滑过图片时的放大效果
css
.wrap{
width: 340px;height: 340px;
position: absolute;
top: 30%;
left: 20%;
overflow: hidden;
bor
- 网络最常见的攻击方式竟然是SQL注入
蓝儿唯美
sql注入
NTT研究表明,尽管SQL注入(SQLi)型攻击记录详尽且为人熟知,但目前网络应用程序仍然是SQLi攻击的重灾区。
信息安全和风险管理公司NTTCom Security发布的《2015全球智能威胁风险报告》表明,目前黑客攻击网络应用程序方式中最流行的,要数SQLi攻击。报告对去年发生的60亿攻击 行为进行分析,指出SQLi攻击是最常见的网络应用程序攻击方式。全球网络应用程序攻击中,SQLi攻击占
- java笔记2
a-john
java
类的封装:
1,java中,对象就是一个封装体。封装是把对象的属性和服务结合成一个独立的的单位。并尽可能隐藏对象的内部细节(尤其是私有数据)
2,目的:使对象以外的部分不能随意存取对象的内部数据(如属性),从而使软件错误能够局部化,减少差错和排错的难度。
3,简单来说,“隐藏属性、方法或实现细节的过程”称为——封装。
4,封装的特性:
4.1设置
- [Andengine]Error:can't creat bitmap form path “gfx/xxx.xxx”
aijuans
学习Android遇到的错误
最开始遇到这个错误是很早以前了,以前也没注意,只当是一个不理解的bug,因为所有的texture,textureregion都没有问题,但是就是提示错误。
昨天和美工要图片,本来是要背景透明的png格式,可是她却给了我一个jpg的。说明了之后她说没法改,因为没有png这个保存选项。
我就看了一下,和她要了psd的文件,还好我有一点
- 自己写的一个繁体到简体的转换程序
asialee
java转换繁体filter简体
今天调研一个任务,基于java的filter实现繁体到简体的转换,于是写了一个demo,给各位博友奉上,欢迎批评指正。
实现的思路是重载request的调取参数的几个方法,然后做下转换。
- android意图和意图监听器技术
百合不是茶
android显示意图隐式意图意图监听器
Intent是在activity之间传递数据;Intent的传递分为显示传递和隐式传递
显式意图:调用Intent.setComponent() 或 Intent.setClassName() 或 Intent.setClass()方法明确指定了组件名的Intent为显式意图,显式意图明确指定了Intent应该传递给哪个组件。
隐式意图;不指明调用的名称,根据设
- spring3中新增的@value注解
bijian1013
javaspring@Value
在spring 3.0中,可以通过使用@value,对一些如xxx.properties文件中的文件,进行键值对的注入,例子如下:
1.首先在applicationContext.xml中加入:
<beans xmlns="http://www.springframework.
- Jboss启用CXF日志
sunjing
logjbossCXF
1. 在standalone.xml配置文件中添加system-properties:
<system-properties> <property name="org.apache.cxf.logging.enabled" value=&
- 【Hadoop三】Centos7_x86_64部署Hadoop集群之编译Hadoop源代码
bit1129
centos
编译必需的软件
Firebugs3.0.0
Maven3.2.3
Ant
JDK1.7.0_67
protobuf-2.5.0
Hadoop 2.5.2源码包
Firebugs3.0.0
http://sourceforge.jp/projects/sfnet_findbug
- struts2验证框架的使用和扩展
白糖_
框架xmlbeanstruts正则表达式
struts2能够对前台提交的表单数据进行输入有效性校验,通常有两种方式:
1、在Action类中通过validatexx方法验证,这种方式很简单,在此不再赘述;
2、通过编写xx-validation.xml文件执行表单验证,当用户提交表单请求后,struts会优先执行xml文件,如果校验不通过是不会让请求访问指定action的。
本文介绍一下struts2通过xml文件进行校验的方法并说
- 记录-感悟
braveCS
感悟
再翻翻以前写的感悟,有时会发现自己很幼稚,也会让自己找回初心。
2015-1-11 1. 能在工作之余学习感兴趣的东西已经很幸福了;
2. 要改变自己,不能这样一直在原来区域,要突破安全区舒适区,才能提高自己,往好的方面发展;
3. 多反省多思考;要会用工具,而不是变成工具的奴隶;
4. 一天内集中一个定长时间段看最新资讯和偏流式博
- 编程之美-数组中最长递增子序列
bylijinnan
编程之美
import java.util.Arrays;
import java.util.Random;
public class LongestAccendingSubSequence {
/**
* 编程之美 数组中最长递增子序列
* 书上的解法容易理解
* 另一方法书上没有提到的是,可以将数组排序(由小到大)得到新的数组,
* 然后求排序后的数组与原数
- 读书笔记5
chengxuyuancsdn
重复提交struts2的token验证
1、重复提交
2、struts2的token验证
3、用response返回xml时的注意
1、重复提交
(1)应用场景
(1-1)点击提交按钮两次。
(1-2)使用浏览器后退按钮重复之前的操作,导致重复提交表单。
(1-3)刷新页面
(1-4)使用浏览器历史记录重复提交表单。
(1-5)浏览器重复的 HTTP 请求。
(2)解决方法
(2-1)禁掉提交按钮
(2-2)
- [时空与探索]全球联合进行第二次费城实验的可能性
comsci
二次世界大战前后,由爱因斯坦参加的一次在海军舰艇上进行的物理学实验 -费城实验
至今给我们大家留下很多迷团.....
关于费城实验的详细过程,大家可以在网络上搜索一下,我这里就不详细描述了
在这里,我的意思是,现在
- easy connect 之 ORA-12154: TNS: 无法解析指定的连接标识符
daizj
oracleORA-12154
用easy connect连接出现“tns无法解析指定的连接标示符”的错误,如下:
C:\Users\Administrator>sqlplus username/
[email protected]:1521/orcl
SQL*Plus: Release 10.2.0.1.0 – Production on 星期一 5月 21 18:16:20 2012
Copyright (c) 198
- 简单排序:归并排序
dieslrae
归并排序
public void mergeSort(int[] array){
int temp = array.length/2;
if(temp == 0){
return;
}
int[] a = new int[temp];
int
- C语言中字符串的\0和空格
dcj3sjt126com
c
\0 为字符串结束符,比如说:
abcd (空格)cdefg;
存入数组时,空格作为一个字符占有一个字节的空间,我们
- 解决Composer国内速度慢的办法
dcj3sjt126com
Composer
用法:
有两种方式启用本镜像服务:
1 将以下配置信息添加到 Composer 的配置文件 config.json 中(系统全局配置)。见“例1”
2 将以下配置信息添加到你的项目的 composer.json 文件中(针对单个项目配置)。见“例2”
为了避免安装包的时候都要执行两次查询,切记要添加禁用 packagist 的设置,如下 1 2 3 4 5
- 高效可伸缩的结果缓存
shuizhaosi888
高效可伸缩的结果缓存
/**
* 要执行的算法,返回结果v
*/
public interface Computable<A, V> {
public V comput(final A arg);
}
/**
* 用于缓存数据
*/
public class Memoizer<A, V> implements Computable<A,
- 三点定位的算法
haoningabc
c算法
三点定位,
已知a,b,c三个顶点的x,y坐标
和三个点都z坐标的距离,la,lb,lc
求z点的坐标
原理就是围绕a,b,c 三个点画圆,三个圆焦点的部分就是所求
但是,由于三个点的距离可能不准,不一定会有结果,
所以是三个圆环的焦点,环的宽度开始为0,没有取到则加1
运行
gcc -lm test.c
test.c代码如下
#include "stdi
- epoll使用详解
jimmee
clinux服务端编程epoll
epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linu
- Hibernate对Enum的映射的基本使用方法
linzx0212
enumHibernate
枚举
/**
* 性别枚举
*/
public enum Gender {
MALE(0), FEMALE(1), OTHER(2);
private Gender(int i) {
this.i = i;
}
private int i;
public int getI
- 第10章 高级事件(下)
onestopweb
事件
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- 孙子兵法
roadrunners
孙子兵法
始计第一
孙子曰:
兵者,国之大事,死生之地,存亡之道,不可不察也。
故经之以五事,校之以计,而索其情:一曰道,二曰天,三曰地,四曰将,五
曰法。道者,令民于上同意,可与之死,可与之生,而不危也;天者,阴阳、寒暑
、时制也;地者,远近、险易、广狭、死生也;将者,智、信、仁、勇、严也;法
者,曲制、官道、主用也。凡此五者,将莫不闻,知之者胜,不知之者不胜。故校
之以计,而索其情,曰
- MySQL双向复制
tomcat_oracle
mysql
本文包括:
主机配置
从机配置
建立主-从复制
建立双向复制
背景
按照以下简单的步骤:
参考一下:
在机器A配置主机(192.168.1.30)
在机器B配置从机(192.168.1.29)
我们可以使用下面的步骤来实现这一点
步骤1:机器A设置主机
在主机中打开配置文件 ,
- zoj 3822 Domination(dp)
阿尔萨斯
Mina
题目链接:zoj 3822 Domination
题目大意:给定一个N∗M的棋盘,每次任选一个位置放置一枚棋子,直到每行每列上都至少有一枚棋子,问放置棋子个数的期望。
解题思路:大白书上概率那一张有一道类似的题目,但是因为时间比较久了,还是稍微想了一下。dp[i][j][k]表示i行j列上均有至少一枚棋子,并且消耗k步的概率(k≤i∗j),因为放置在i+1~n上等价与放在i+1行上,同理