- maximum number (256) of shader keywords exceeded unity的报错解决方法
阿拉丁的梦
https://bitbucket.org/ArtIsDarkGames/shader-keywords-tool-unity3d/src/master/https://eternity429.wordpress.com/2017/12/06/unity-shader-variant-system%E6%BD%9B%E8%97%8F%E9%9A%B1%E6%86%82/其中,multi_compi
- 学习笔记《Python编程快速上手-让繁琐工作自动化》第七章
☆Eric☆
学习python自动化
7.18.1强口令检测importredefpwdcheck(pwd):strpc="你的密码"pwdn=5numbercheck=re.compile(r'\d').search(pwd)uppercheck=re.compile(r'[A-Z]').search(pwd)lowercheck=re.compile(r'[a-z]').search(pwd)othercheck=re.compi
- flutter 获取通话记录和通讯录
爱学习的大牛123
androidflutter开发语言flutter
DartSDKversionis3.7.01dependencies:flutter:sdk:flutterpermission_handler:^11.0.1#权限管理flutter_contacts:^1.1.9+2call_log:^5.0.5cupertino_icons:^1.0.8dev_dependencies:flutter_test:sdk:flutterflutter_lint
- 谁才是AI王者? DeepSeek、Grok、千问、ChatGPT、Claude大模型终极PK
qweqwety
chatgpt人工智能
随着2025年初DeepSeek在国内外火爆出圈,全球大语言模型(LLM)的竞争愈发激烈,几乎到了白热化。2月18日,马斯克推出了他的用20万张GPU训练的最新的“地表最强”的大模型Grok3。2月24日,Anthropic开发的最新版本的AI模型Claude-3.7Sonnet公布。2月28日,而此前的王者OpenAI公司推出万众期待已久ChatGPT-4.5。后续Google的Gemini估计
- 政安晨:【Keras机器学习示例演绎】(十四)—— 用于弱光图像增强的零 DCE
政安晨
机器学习keras人工智能tensorflow深度学习神经网络弱光图像增强
目录简介下载LOL数据集创建TensorFlow数据集零DCE框架了解光线增强曲线DCE-Net损失函数色彩恒定损失曝光损失光照平滑度损失空间一致性损失深度曲线估计模型训练推论测试图像推理政安晨的个人主页:政安晨欢迎点赞✍评论⭐收藏收录专栏:TensorFlow与Keras机器学习实战希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正!本文目标:实施零参考深度曲线估算,实现低-高
- ArkTS 容器与原生容器行为差异解析
flfljh
HarmonyOSnextflutterharmonyos华为架构android
ArkTS容器与原生容器行为差异解析在当今数字化浪潮下,容器技术愈发关键,无论是原生容器,还是鸿蒙系统独具特色的ArkTS容器,都在各自生态里扮演重要角色。二者虽都旨在实现应用隔离与资源高效利用,但在诸多行为细节上存有明显差异。资源调度与管理原生容器,以Docker为典型代表,遵循传统Linux内核的资源调度机制。它基于cgroups(控制组)精准限制CPU、内存等资源配额。例如,启动一个Web服
- ResNet原理
Ricardo.lucky
pytorch学习深度学习pythonpytorch
目录一、ResNet诞生背景1.核心特点二、网络加深带来的问题三、ResNet的基础架构----残差块四、BatchNormalization1.为什么要归一化2.BN怎么做3.BN解决的问题4.BN层总结五、ResNet网络参数详解六、ResNet总结一、ResNet诞生背景深度残差网络(deepresidualnetwork)是2015年微软何凯明团队发表的一篇名为:《DeepResidual
- STM32的EXTI
且听牛哞
stm32内容单片机嵌入式硬件stm32c语言
STM32的EXTI(ExternalInterrupt/EventController,外部中断/事件控制器)模式的选择主要涉及到中断和事件的配置,以及触发方式(如上升沿、下降沿、双边沿等)的设置。以下是如何选择和配置STM32EXTI模式的详细步骤:1.确定EXTI的模式EXTI支持两种基本模式:中断模式和事件模式。中断模式:当外部信号满足触发条件时,EXTI会产生一个中断请求,CPU会暂停当
- STM32单片机EXTI模块详解
Eaili
STM32单片机基础单片机stm32嵌入式硬件
STM32的EXTI(外部中断/事件控制器、ExternalInterrupt/EventController)模块是一个功能强大的外设,用于处理外部中断和事件。它允许微控制器在外部信号发生变化时触发中断或事件,从而实现对外部事件的快速响应。本文是对STM32单片机的EXTI模块的详细介绍,希望能为读者提供帮助。1.EXTI模块EXTI模块允许STM32的GPIO引脚配置为外部中断源。当外部信号发
- 10套关于RoboCup机器人世界杯中国赛-创客AI编程挑战赛的相关题目(由deepseek生成)
IT信息技术学习圈
AI编程开发语言
第1套(基础语法)一、单选题下列哪个是C++合法的变量名?A.3scoreB._nameC.caseD.a+b表达式5/2的结果是:A.2B.2.5C.3D.2.0二、判断题constinta;是合法的声明方式。()main()函数的返回类型必须是int。()三、多选题下列哪些是C++基本数据类型?A.stringB.boolC.arrayD.double下列哪些运算符优先级高于+?A.*B.>2
- rustup命令行工具使用教程
rust
简介rustup是Rust官方推荐的安装工具和版本管理器,用于安装、管理和更新Rust编译器(rustc)、包管理器(cargo)以及其他组件和工具链(toolchains)。安装rustup在macOS/Linux上:curl--proto'=https'--tlsv1.2-sSfhttps://sh.rustup.rs|shWindows上直接运行.exe安装程序(官网:https://rus
- Linux机器测试IP及端口连通性方法记录
lgily-1225
日常积累linuxtcp/ip运维
在Linux中测试与目标IP特定端口的连通性时,需根据协议类型选择不同工具和方法。以下是针对HTTPS、TCP、UDP的详细测试方法:一、HTTPS端口测试(基于TCP的应用层协议)1.检查TCP层连通性#使用netcat测试TCP443端口nc-zv443#使用telnet测试(若系统未安装需先安装telnet)telnet443若提示Connected或succeeded表示TCP层可达。2.
- kong 网关 结合 nacos 动态路由,服务上下线,加载插件
q502106957
javakong动态路由javaspring网关
kong怎么根据nacos的服务自动路由,加载服务呢先梳理逻辑kong路由动态控制服务的说明逻辑说明核心流程说明:此服务中存在的冲突及问题插件的加载附上部分代码先梳理逻辑本文参考:https://my.oschina.net/xiejunbo/blog/4720458kongapi:https://docs.konghq.com/gateway-oss/2.3.x/admin-api/#retri
- Apache Superset本地部署结合内网穿透实现无公网IP远程查看数据
顾云澜
包罗万象golang开发语言后端
##前言本文主要介绍如何在Linux系统使用Docker部署ApacheSuperset并结合内网穿透工具实现远程访问本地服务的详细流程。Superset是一款现代化的企业级BI(商业智能)Web应用程序”,其通过创建和分享dashboard,为数据分析提供了轻量级的数据查询和可视化方案。Superset在数据处理和可视化方面具有强大的功能,能够满足企业级的数据分析需求,并为用户提供直观、灵活的
- 基于Springboot智慧社区管理系统【附源码+文档】
米罗毕设
Springboot框架springbootjava毕业设计智慧社区社区管理管理系统
作者:米罗学长个人简介:混迹java圈十余年,精通Java、小程序、数据库等。各类成品Java毕·设。javaweb,ssm,springboot等项目,欢迎咨询。程序开发、技术解答、代码讲解、文档,文末获取源码+数据库+文档✈️软件下载|实战案例。⭐文章底部二维码,可以在朋友圈,获取软件下载链接,及项目演示视频。视频演示:https://pan.baidu.com/s/1SjUWOwuPPcQ_
- python爬去百度百科词条_GitHub - leiphp/spider-baike: 简单爬虫框架: 爬虫调度器 -> URL管理器 -> 网页下载器(urllib2) -> 网页解析器(Bea...
weixin_39843093
python爬去百度百科词条
实战案例爬取百度百科1000条词条数据spider-baike简单爬虫框架:爬虫调度器->URL管理器->网页下载器(urllib2)->网页解析器(BeautifulSoup)->价值数据实战案例爬取百度百科1000条词条数据运行项目先切换到myblog文件夹,输入以下命令运行项目D:\github_projects\spider-baikepythonspider_main.py运行后的数据保
- 土堆pytorch教程学习笔记 (所有代码笔记超详细完整版)
staozigege
pytorch学习笔记深度学习
目录一.read_data二.dataloader三.transforms四。dataset_transforms五.conv六.conv2d七.loss八.linear九.loss-network十.pool十一.RELU十二.sqc十三.test-tensorboard十四.optim十五.model十六.test-modle十七.model-pretained十八.model-save十九.
- 去除夸克-百度云右键菜单上传
且漫CN
软件安装windows
去除夸克-百度云右键菜单上传WindowsRegistryEditorVersion5.00[-HKEY_CLASSES_ROOT\*\shell\QuarkCloudDrive.upload][-HKEY_CLASSES_ROOT\Directory\shell\QuarkCloudDrive.backup][-HKEY_CLASSES_ROOT\Directory\shell\QuarkClo
- 吾爱破解2025新春红包之番外篇
阿捏利
吾爱破解新春红包系列javascript前端开发语言
flag9,完全没有思路,看其他人的writeup,是攻击AI,让AI泄密flag9,感觉就是自己的知识盲区。flag10,打开抽奖界面,里面有个注释//这个getVerifyCode的wasm实现比blueimp-md5js实现快20倍。//猜猜flag10藏在什么地方?很明显,这个flag和get_verify_code.wasm有关系。在里面搜索flag,找到如图函数根据函数定义可以知道参数
- pycharm环境下Missing dependencies for SOCKS support错误
侃山
pythonpycharmidepython
本人在pycharn中调用numpy时发现库里没有numpy,于是直接在pycharm里手动安装numpy(从settings进入Pythoninterpreter,显示的库里没有numpy,点击Package上方的+号手动install),遇到了如标题所示的错误这时也许是魔法的原因。关闭魔法,就可以install成功了
- 3.5.2-4-先识别框 框内数字识别 3.5.2-4-先识别框 框内数字识别 openmv数字模板匹配openmv K210 k230 数字识别模板匹配openmv电赛数字识别 数字识别
三年呀
开发语言openmvstm32神经网络嵌入式硬件单片机
**非常详细的视频和文字教程,讲解常见的openmv教程包括巡线、物体识别、圆环识别、阈值自动获取等。非常适合学习openmv、K210、K230等项目视频合集链接在openmv教程合集openmv入门到项目开发openmv和STM32通信openmv和opencv区别openmv巡线openmv数字识别教程LCD专刊openmv视觉文章链接:https://blog.csdn.net/qq_46
- Java 解压 rar 文件
HarrisHaword
java开发语言
1、引入依赖com.github.axetjava-unrar1.7.0-8net.sf.sevenzipjbindingsevenzipjbinding16.02-2.01net.sf.sevenzipjbindingsevenzipjbinding-all-platforms16.02-2.012、解压方法代码publicclassFileUtils{publicstaticListunRar
- IDEA相对路径系统找不到指定的文件问题
HarrisHaword
idea
博客链接https://blog.csdn.net/m0_47966738/article/details/113925220
- iptables 使用手册
半桶水专家
运维linux网络安全linux运维
目录简介基本概念表(Tables)链(Chains)规则(Rules)命令语法核心命令详解常用选项说明实际应用示例高级技巧与注意事项规则持久化1.简介iptables是Linux系统上用于配置网络包过滤规则的核心工具,通过操作内核的Netfilter框架实现防火墙、NAT、端口转发等功能。本手册涵盖其语法、命令选项及实际应用场景。2.基本概念表(Tables)filter:默认表,用于包过滤(AC
- 路由器远程控制
未名✘
网络智能路由器
首先我们先对路由器进行配置1.sys进入视图2.user-interfacevty04设置终端数量3.userprivilegelevel3设置认证等级4.authentication-modeaaa设置3a认证5.local-userr1passwordcipher123设置认证账号密码6.local-userr1service-typetelnet设置认证协议在客户端控制路由器执行此命令tel
- 1021 Deepest Root
理智的灰太狼
pta英文题算法图论c++
1021DeepestRoot分数25全屏浏览切换布局作者CHEN,Yue单位浙江大学Agraphwhichisconnectedandacycliccanbeconsideredatree.Theheightofthetreedependsontheselectedroot.Nowyouaresupposedtofindtherootthatresultsinahighesttree.Sucha
- 网络攻防与协议分析练习题
风风光_
网络安全协议练习题网络linux网络协议运维系统安全
1.(单选题,5分)以下哪一项不属于恶意代码()A.病毒B.特洛伊木马C.系统漏洞D.蠕虫正确答案:C2.(单选题,5分)在netstat命令中,哪一个参数用来显示以网络IP地址代替名称,显示出网络连接情形?()A.-nB.-sC.-rD.-t正确答案:A3.(单选题,5分)为了防御网络监听,最常用的方法是()A.采用物理传输(非网络)B.信息加密C.无线网D.使用专线传输正确答案:B4.(单选题
- C#定时调用方法实现
Faitheshy
c#
定时调用方法实现一、C#.net框架怎么在固定时间点调用方法在C#/.NET框架中,你可以使用定时器或计划任务来在固定时间点调用方法。下面是两种常用的方法:使用System.Timers.TimerusingSystem;usingSystem.Timers;classProgram{staticvoidMain(){//创建一个定时器,设置间隔时间为一天(24小时)Timertimer=newT
- C#WEB项目中使用WebBrowser组件
刘二光
c#程序开发c#
1、在web项目中引用system.windows库:再在代码中引用:usingsystem.windows.forms2、这样在程序中可以使用webbrowser组件了:WebBrowserwb=newWebBrowser();wb.ScriptErrorsSuppressed=true;wb.Navigate(“https://news.sina.com.cn/”);wb.Refresh();
- VMware ESXi 6.7 U3v (ESXi670-202503001) 下载
esxi
VMwareESXi6.7U3v(ESXi670-202503001.zip)下载VMwareESXi6ExtendSupportRelease请访问原文链接:https://sysin.cn/blog/vmware-esxi-6/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org2025-03-04,ESXi6.7U3v(ESXi670-202503001)发布,例行更新。产品简
- 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独立出来,数据持