- 【华为机试】84. 柱状图中最大的矩形
文章目录84.柱状图中最大的矩形描述示例1示例2提示解题思路核心分析问题转化算法实现方法1:单调栈(推荐)方法2:预处理+枚举方法3:暴力枚举方法4:分治法复杂度分析核心要点数学证明单调栈正确性证明时间复杂度分析执行流程图算法可视化实际应用算法优化技巧1.哨兵优化2.栈空间优化3.一次遍历优化扩展思考相关问题测试用例设计性能对比常见错误总结完整题解代码84.柱状图中最大的矩形描述给定n个非负整数,
- RK3588 RK628D调试HDMI-IN(三)
那肯定是很多年以后!
全志&瑞芯微开发实战androidlinux
系列文章目录RK3588RK628D调试HDMI-IIN(一)RK3588RK628D调试HDMI-IN(二)RK3588RK628D调试HDMI-IN(三)文章目录系列文章目录前言一、拍照闪退问题二、录制提示相机发生错误总结
- 外部存储器接口(EMIF)软件设置
Li.Yc
dsp开发
外部存储器接口(EMIF)软件设置1.核心目标2.代码解析(分步骤说明)(1)包含头文件(2)声明EMIF配置结构体(3)调用配置函数3.关键参数详解(1)时序参数(2)存储器类型(MTYPE)(3)超时设置(TIMEOUT)4.实际开发中的操作步骤(2)配置结构体(3)调试验证5.常见问题(1)地址错误导致数据损坏(2)时序不匹配导致设备无响应(3)数据位宽配置错误总结外部存储总线在处理器和外部
- WRF-Hydro运行过程与错误总结
stanlyYP
linuxubuntu经验分享
一、总过程1.总参考:WPS(使用高精度WPS静态数据)生成的geo_em.nc数据;2.整合具体方面的数据:①静态数据:geo_em.nc+DEM(.tif)+GIS预处理工具+hydro.TBL=Fulldom.nc(径流方面等等)、LDASOUT(地形方面);geo_em.nc+R语言工具+soil.TBL=wrf_input.nc(初始状态)、soilproperties(土壤方面);②驱
- C++一些细碎知识点(1)
Guqing_f
C++c++开发语言笔记1024程序员节c语言vimvisualstudio
2022/9/15初始版2022/10/24新增24、25两点,第7、21点有补充2022/12/6新增26、27两点,新增遇到的错误总结6点一、C++的一些细碎知识点1.#和##1.1#把参数转换为字符串#include#include#includeusingnamespacestd;#defineT(A)#A#defineTEST(X)printf(#X);#defineTEST1(X)pr
- 每天认识一个设计模式-解释器模式:规则解析的语言建筑师
深情不及里子
设计模式设计模式解释器模式
一、前言设计模式(Designpattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。咱之前研究命令模式的时候,探讨了怎么把请求打包成对象,这样就能实现解耦,还能把请求排队、记录日志啥的。现在呢,咱把目光转向另一个行为型设计模式——解释器模
- ASP.NET Core Web API 中 HTTP状态码的分类及对应的返回方法
[email protected]
asp.nethttp.netcore
文章目录前言一、HTTP状态码分类及常用方法二、具体返回方法示例1)2xx成功类2)4xx客户端错误3)5xx服务器错误4)其他特殊状态码三、高级返回方式1)使用IActionResult与ActionResult2)统一错误处理(ProblemDetails)3)自定义状态码结果四、最佳实践建议优先使用内置方法POST创建资源时返回201模型验证统一处理异步方法一致处理生产环境隐藏敏感错误总结前
- SQL*LOADER错误总结
春风剑客
Oracle
SQL*LOADER错误总结2015-12-0922:51by潇湘隐者,4900阅读,0评论,收藏,编辑在使用SQL*LOADER装载数据时,由于平面文件的多样化和数据格式问题总会遇到形形色色的一些小问题,下面是工作中累积、整理记录的遇到的一些形形色色错误。希望能对大家有些用处。(今天突然看到自己以前整理的这些资料,于是稍稍整理、归纳成这篇博客,后面如果碰到其他案例,会陆陆续续补充在此篇文章。)E
- OA流程设计以及常见错误总结
OA系统交流
业界资讯学习方法
1、背景:企业使用OA系统,通常是为了解决企业自身内部业务审批,把线下的业务审批通过OA系统提高效率和规范化,但是在很多公司使用办公系统后发现审批流程经常错误等问题,常见的费用相关报销、合同审批等。结合近十年的OA系统的开发运维,使用过国内泛微OA、致远OA并参与过开发,总结以下内容:2、OA系统项目核心:企业需要梳理自身组织架构,清晰划分各部门管理权责,每个部门只能有唯一一个负责领导,不能一个部
- docker学习笔记(5):docker搭建DNMP环境
submarineas
Linux虚拟化
DNMP介绍环境介绍:├──mysql├──nginx│└──nginx.conf└──php└──php.ini本篇文章将介绍一个更加方面的相当于LNMP(linux+NGINX+MySQL+PHP)环境的部署方式,效率更加高效,而对于lnmp或者lamp的介绍,可以看我去年写的那篇文章:Ubuntu16.04安装Apache,Mysql,PHP7,phpMyAdmin过程解析和错误总结生成my
- Python 使用 langchain 过程中的错误总结
爱学习的小道长
AIpythonlangchain开发语言
1.环境condaactivatelangchainpipinstall-Ulangchain$pipshowlangchainName:langchainVersion:0.3.7Summary:BuildingapplicationswithLLMsthroughcomposabilityHome-page:https://github.com/langchain-ai/langchainAu
- Hadoop错误: put: Lease mismatch on ... by DFSClient_NONMAPREDUCE_-499992815_1.... 学习总结
星月情缘02
ETL技术Hadoophdfs租约hadoop错误
错误总结分享:使用了hadoop挺长时间了,多数人应该很熟悉它的特点了吧,但是今天突然遇到个错误,从来没见过,一时自己也想不到是什么原因,就在网上查了一些资料,得到了解决的办法,再次分享一下。过程:使用kettle数据清洗工具在进行同步任务的过程中,最后数据是被加载到hdfs的,这里用shell脚本实现,hdfsdfs-put-r/hdfs的目录。结果程序执行到这一步的时候报错了。错误描述就是文章
- Python设计模式知多少
自动化代码美学
设计模式pythonjs人工智能数学建模
设计模式设计模式是前辈们经过相当长的一段时间的试验和错误总结出来的最佳实践。我找到的资料列举了以下这些设计模式:工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式、适配器模式、桥接模式、过滤器模式、组合模式、装饰器模式、外观模式、享元模式、代理模式、责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、空对象模式、策略模式、模板模式、访问者模式、MVC模
- php错误总结
进击的PHPer
https://www.cnblogs.com/timelesszhuang/p/4332645.html
- BOX短线心理变化记录
汪铁成
在微信群看到box上线火币,准备搞一波短线,在利润达到20%且价格突破新高的时候,没有卖出获利,反而追高,结果站在山岗上。复盘过程:1,对项目没有任何了解2,短线狙击前没有制定任何策略:盈利多少止盈,亏损多少止损。反而一味追高3,短线仓位太重。把流动资金的一半拿来狙击了,正常应该不超过20%。严格控制仓位很关键。错误总结:太贪,没有制定策略,资金量投入过大,以为会像Pai一样会上线拉几倍。这一切都
- python常见错误总结
晨打水水水
leetcodepython开发语言
1.TypeError:'str'objectdoesnotsupportitemassignment原因:python字符串是一种不可变对象,意味着只读不写。解决办法:想要改变可以把字符串变成数组,修改后再便会字符串。2.Timeouterror:[WinError10060]由于连接放在一点时间后没有正确答复或连接的主机没有反应,连接尝试失败。原因及解决办法:https://www.cnblo
- 【从零开始学设计模式】第一章_设计模式简介
光久li
【从零开始学设计模式】设计模式学习笔记
第一章_设计模式简介1.设计模式是什么设计模式是软件开发人员在==软件开发过程中面临的一般问题==的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。2.设计模式的类型设计模式可以分为三大类:创建型模式(CreationalPatterns)、结构型模式(StructuralPatterns)、行为型模式(BehavioralPatterns)。创建型模式(5种)
- priority_queue实现错误总结
桐人,奥龙
c++算法开发语言
错误代码展示#pragmaonce#include#includeusingnamespacestd;namespacebit{template,classCom=less>classpriority_queue{public:priority_queue()=default;templatepriority_queue(constIterator&first,constIterator&end)
- 错误总结20210902
[.]*?
java错误总结java
3.com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:ExpectedBEGIN_OBJECTbutwasSTRINGatline1column1path$atcom.google.gson.internal.bind.ReflectiveTypeAdapterFactoryAdapter.read(Reflec
- C语言第十三弹---VS使用调试技巧
小林熬夜学编程
C语言详解c语言开发语言
✨个人主页:熬夜学编程的小林系列专栏:【C语言详解】【数据结构详解】VS调试技巧1、什么是bug2、什么是调试(debug)?3、Debug和Release编辑4、VS调试快捷键4.1、环境准备4.2、调试快捷键5、监视和内存观察5.1、监视5.2、内存6、调试举例17、调试举例28、编程常见错误归类8.1、编译型错误8.2、链接型错误8.3、运行时错误总结1、什么是bugbug本意是“昆虫”或“
- 设计模式总结
devinrao
[TOC]设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式(Designpattern)代表了最佳的实践1.设计模式七大原则1.1单一职责原则单一职责原则(SingleResponsibilityPrinciple,SRP)。单一职责原则规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分Th
- Js设计模式
A-超
设计模式开发语言javascriptecmascript
1、简介设计模式总的来说是一个抽象的概念,是软件开发人员在开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。2、工厂模式工厂模式是用来创建对象的一种最常用的设计模式。我们不暴露创建对象的具体逻辑,而是将逻辑封装在一个函数中那么这个函数就可以被视为一个工厂。(1)简单工厂模式(2)工厂方法(3)抽象工厂模式3、单例模式·一个构造函数一生只能
- 设计模式学习——简介
weixin_30511039
设计模式java
设计模式(Designpattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。毫无疑问,设计模
- js设计模式实例
乡村中医
javascript设计模式开发语言前端算法
js设计模式设计模式(Designpattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。而虽然js前端使用设计模式不像后端那么频繁,但是依然是一名程序员必备的本领,本文通过使用实例方便大家理解记忆设计模式,可用于面试前速记。一.设计模式介
- 设计模式学习笔记-设计模式简介
weixin_38166557
设计模式测试人工智能
原文:http://www.runoob.com/design-pattern/design-pattern-intro.html我这边只是参考学习下。设计模式简介设计模式(Designpattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的
- VHDL/Verilog编译错误总结
FPGA的花路
VHDL编译错误总结VivadoVHDLVerilogQuartusVHDLVerilogLatticeVHDLVerilogVivadoVHDL[Synth8-2778]typeerrorneartxen_sync;expectedtypestd_logic_vectorstd_logic类型值不能直接赋值给std_logic_vector[Synth8-1779]cannotreadfrom‘
- js错误总结
ktHub
容易犯的错误原因认为是split()使用排除法:split分割字符串;reverse反转数组;join将数组转成字符串trim()去除字符串两端空格return只能在函数内部使用在循环中也是使用,setInterval(fn1,1000)只会调用一次fn1varstr="helloworld";console.log(str.substring(2,7))输出llowif(!this._num&&
- C语言错误总结:request for member ‘xxx’ in something not a structure or union
saoqi_boy
并行编程c语言开发语言后端
先上代码:structcomplex{doublea,b;};//判断是否收敛intisConvergent(doublex,doubley){inti;doublea,b;structcomplexZ;Z.a=Z.b=0.0;for(i=1;i4)returni;}return0;}我的问题原因是声明Z时没加struct这几个字母,没加前:complexZ;加了后:structcomplexZ;
- 深度学习的错误总结
豆沙沙包?
深度学习人工智能
train_loss+=loss表示将loss的值累加到train_loss上。在深度学习中,通常会追踪一个批次(batch)中所有样本的损失,并通过累加这些损失来计算整个批次的总损失。2.train_loss是一个变量,用于存储整个训练过程中的损失值的累积总和。loss是每个训练迭代中计算的损失值。通常,神经网络在每个小批次(mini-batch)的数据上计算损失,这个损失表示模型的预测与实际标
- swift开发错误总结
小猿开发
1.解析数据报错类型:swift:1:65:error:useofundeclaredtype'Builtin'Swift._DebuggerSupport.stringForPrintObject(Swift.UnsafePointer(bitPattern:0x1097cc840)!.pointee)原因:是由于baseInfoTempletData字典写死了存储类型[string:strin
- PHP,安卓,UI,java,linux视频教程合集
cocos2d-x小菜
javaUIPHPandroidlinux
╔-----------------------------------╗┆
- 各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
bozch
.net.net mvc
在.net mvc5中,在执行某一操作的时候,出现了如下错误:
各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
经查询当前的操作与错误内容无关,经过对错误信息的排查发现,事故出现在数据库迁移上。
回想过去: 在迁移之前已经对数据库进行了添加字段操作,再次进行迁移插入XXX字段的时候,就会提示如上错误。
&
- Java 对象大小的计算
e200702084
java
Java对象的大小
如何计算一个对象的大小呢?
 
- Mybatis Spring
171815164
mybatis
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
CustomerService userService = (CustomerService) ac.getBean("customerService");
Customer cust
- JVM 不稳定参数
g21121
jvm
-XX 参数被称为不稳定参数,之所以这么叫是因为此类参数的设置很容易引起JVM 性能上的差异,使JVM 存在极大的不稳定性。当然这是在非合理设置的前提下,如果此类参数设置合理讲大大提高JVM 的性能及稳定性。 可以说“不稳定参数”
- 用户自动登录网站
永夜-极光
用户
1.目标:实现用户登录后,再次登录就自动登录,无需用户名和密码
2.思路:将用户的信息保存为cookie
每次用户访问网站,通过filter拦截所有请求,在filter中读取所有的cookie,如果找到了保存登录信息的cookie,那么在cookie中读取登录信息,然后直接
- centos7 安装后失去win7的引导记录
程序员是怎么炼成的
操作系统
1.使用root身份(必须)打开 /boot/grub2/grub.cfg 2.找到 ### BEGIN /etc/grub.d/30_os-prober ### 在后面添加 menuentry "Windows 7 (loader) (on /dev/sda1)" { 
- Oracle 10g 官方中文安装帮助文档以及Oracle官方中文教程文档下载
aijuans
oracle
Oracle 10g 官方中文安装帮助文档下载:http://download.csdn.net/tag/Oracle%E4%B8%AD%E6%96%87API%EF%BC%8COracle%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3%EF%BC%8Coracle%E5%AD%A6%E4%B9%A0%E6%96%87%E6%A1%A3 Oracle 10g 官方中文教程
- JavaEE开源快速开发平台G4Studio_V3.2发布了
無為子
AOPoraclemysqljavaeeG4Studio
我非常高兴地宣布,今天我们最新的JavaEE开源快速开发平台G4Studio_V3.2版本已经正式发布。大家可以通过如下地址下载。
访问G4Studio网站
http://www.g4it.org
G4Studio_V3.2版本变更日志
功能新增
(1).新增了系统右下角滑出提示窗口功能。
(2).新增了文件资源的Zip压缩和解压缩
- Oracle常用的单行函数应用技巧总结
百合不是茶
日期函数转换函数(核心)数字函数通用函数(核心)字符函数
单行函数; 字符函数,数字函数,日期函数,转换函数(核心),通用函数(核心)
一:字符函数:
.UPPER(字符串) 将字符串转为大写
.LOWER (字符串) 将字符串转为小写
.INITCAP(字符串) 将首字母大写
.LENGTH (字符串) 字符串的长度
.REPLACE(字符串,'A','_') 将字符串字符A转换成_
- Mockito异常测试实例
bijian1013
java单元测试mockito
Mockito异常测试实例:
package com.bijian.study;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.
- GA与量子恒道统计
Bill_chen
JavaScript浏览器百度Google防火墙
前一阵子,统计**网址时,Google Analytics(GA) 和量子恒道统计(也称量子统计),数据有较大的偏差,仔细找相关资料研究了下,总结如下:
为何GA和量子网站统计(量子统计前身为雅虎统计)结果不同?
首先:没有一种网站统计工具能保证百分之百的准确出现该问题可能有以下几个原因:(1)不同的统计分析系统的算法机制不同;(2)统计代码放置的位置和前后
- 【Linux命令三】Top命令
bit1129
linux命令
Linux的Top命令类似于Windows的任务管理器,可以查看当前系统的运行情况,包括CPU、内存的使用情况等。如下是一个Top命令的执行结果:
top - 21:22:04 up 1 day, 23:49, 1 user, load average: 1.10, 1.66, 1.99
Tasks: 202 total, 4 running, 198 sl
- spring四种依赖注入方式
白糖_
spring
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是“控制反转”,通俗的理解是:平常我们new一个实例,这个实例的控制权是我
- angular.injector
boyitech
AngularJSAngularJS API
angular.injector
描述: 创建一个injector对象, 调用injector对象的方法可以获得angular的service, 或者用来做依赖注入. 使用方法: angular.injector(modules, [strictDi]) 参数详解: Param Type Details mod
- java-同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待
bylijinnan
Integer
public class PC {
/**
* 题目:生产者-消费者。
* 同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待。
*/
private static final Integer[] val=new Integer[10];
private static
- 使用Struts2.2.1配置
Chen.H
apachespringWebxmlstruts
Struts2.2.1 需要如下 jar包: commons-fileupload-1.2.1.jar commons-io-1.3.2.jar commons-logging-1.0.4.jar freemarker-2.3.16.jar javassist-3.7.ga.jar ognl-3.0.jar spring.jar
struts2-core-2.2.1.jar struts2-sp
- [职业与教育]青春之歌
comsci
教育
每个人都有自己的青春之歌............但是我要说的却不是青春...
大家如果在自己的职业生涯没有给自己以后创业留一点点机会,仅仅凭学历和人脉关系,是难以在竞争激烈的市场中生存下去的....
&nbs
- oracle连接(join)中使用using关键字
daizj
JOINoraclesqlusing
在oracle连接(join)中使用using关键字
34. View the Exhibit and examine the structure of the ORDERS and ORDER_ITEMS tables.
Evaluate the following SQL statement:
SELECT oi.order_id, product_id, order_date
FRO
- NIO示例
daysinsun
nio
NIO服务端代码:
public class NIOServer {
private Selector selector;
public void startServer(int port) throws IOException {
ServerSocketChannel serverChannel = ServerSocketChannel.open(
- C语言学习homework1
dcj3sjt126com
chomework
0、 课堂练习做完
1、使用sizeof计算出你所知道的所有的类型占用的空间。
int x;
sizeof(x);
sizeof(int);
# include <stdio.h>
int main(void)
{
int x1;
char x2;
double x3;
float x4;
printf(&quo
- select in order by , mysql排序
dcj3sjt126com
mysql
If i select like this:
SELECT id FROM users WHERE id IN(3,4,8,1);
This by default will select users in this order
1,3,4,8,
I would like to select them in the same order that i put IN() values so:
- 页面校验-新建项目
fanxiaolong
页面校验
$(document).ready(
function() {
var flag = true;
$('#changeform').submit(function() {
var projectScValNull = true;
var s ="";
var parent_id = $("#parent_id").v
- Ehcache(02)——ehcache.xml简介
234390216
ehcacheehcache.xml简介
ehcache.xml简介
ehcache.xml文件是用来定义Ehcache的配置信息的,更准确的来说它是定义CacheManager的配置信息的。根据之前我们在《Ehcache简介》一文中对CacheManager的介绍我们知道一切Ehcache的应用都是从CacheManager开始的。在不指定配置信
- junit 4.11中三个新功能
jackyrong
java
junit 4.11中两个新增的功能,首先是注解中可以参数化,比如
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runn
- 国外程序员爱用苹果Mac电脑的10大理由
php教程分享
windowsPHPunixMicrosoftperl
Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里。普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒。那么为什么专业人士也对 Mac 情有独钟呢?从个人使用经验来看我想有下面几个原因:
1、Mac OS X 是基于 Unix 的
这一点太重要了,尤其是对开发人员,至少对于我来说很重要,这意味着Unix 下一堆好用的工具都可以随手捡到。如果你是个 wi
- 位运算、异或的实际应用
wenjinglian
位运算
一. 位操作基础,用一张表描述位操作符的应用规则并详细解释。
二. 常用位操作小技巧,有判断奇偶、交换两数、变换符号、求绝对值。
三. 位操作与空间压缩,针对筛素数进行空间压缩。
&n
- weblogic部署项目出现的一些问题(持续补充中……)
Everyday都不同
weblogic部署失败
好吧,weblogic的问题确实……
问题一:
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [zip:E:/weblogic/user_projects/domains/base_domain/serve
- tomcat7性能调优(01)
toknowme
tomcat7
Tomcat优化: 1、最大连接数最大线程等设置
<Connector port="8082" protocol="HTTP/1.1"
useBodyEncodingForURI="t
- PO VO DAO DTO BO TO概念与区别
xp9802
javaDAO设计模式bean领域模型
O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在O/R Mapping的世界里,有两个基本的也是重要的东东需要了解,即VO,PO。
它们的关系应该是相互独立的,一个VO可以只是PO的部分,也可以是多个PO构成,同样也可以等同于一个PO(指的是他们的属性)。这样,PO独立出来,数据持