- Js面试题
蛋蛋大少爷
JS基础1.documentload和documentready的区别答:1.load是当页面所有资源全部加载完成后(包括DOM文档树,css文件,js文件,图片资源等),执行一个函数问题:如果图片资源较多,加载时间较长,onload后等待执行的函数需要等待较长时间,所以一些效果可能受到影响2.$(document).ready()是当DOM文档树加载完成后执行一个函数(不包含图片,css等)所以
- web学习笔记11-node.js基础
晴天.js
web-学习笔记前端学习node.js
一、ES6ECMAscript->ES是JS的标准规范ES6是JS的第六套标准规范1,块级作用域let声明的变量,会进入暂时性的死区,提升后暂时不允许访问,只有赋值以后才允许访问let声明的变量不允许重复声明块级作用域:大括号之间的语句块,例如if、else。块级作用域下,let和const声明的局部变量或者常量,不允许被块级作用域以外访问let和const即使声明在全局作用域下,也不是全局变量或
- JS基础-ClassList -移动端插件的引入-touch事件-sessionStorage 和 localStorage
垦利不
javascript开发语言ecmascript
目录1.classList属性添加类删除类切换类检查类是否存在替换类移动端touch事件2.消除点击延迟Fastclick插件的引入引入FastClick初始化3.Swiper插件的引入和使用通过CDN引入通过npm安装(vue中建议)使用SwiperHTML结构初始化Swiper4.zyMedia插件简介4.1下载与引入4.2使用4.3js初始化4.4参数说明5.bootstrap的安装和使用5
- javaweb2:javascript+正则表达式
rookie123222
javawebjavascript开发语言ecmascript
一:js基础1.变量类型数值类型number函数类型functionjs是弱类型语言,变量类型可变化vari;i=12;alert(typeof(i));i="abc";alert(typeof(i));2.特殊值undefined:未定义,所有js变量未赋值的时候,默认undefinednull:空值NAN:notanumber非数字非数值,比如数字*字符串结果是NAN3.关系比较==做简单字面
- 初识Node.js
玄冥洛璃
Node.jsnode.js
大家好久不见,今天我来介绍一下Node.js,对Node.js的安装和对其模块的简要讲解。Node.js目录Node.js什么是Node.js安装Node.jsNode运行方式Node.js基础命令查缺补漏模块化原生模块fs模块require指令module对象小结什么是Node.jsNode.js不是语言,也不是类似springboot之类的框架。他是一个单线程的,运行JS的一个平台。它能解析和
- JS基础
836a4e8394dc
第一部分变量及基础数据类型一、引入js文件及变量1、外部引入js:body最后一行上输入:,内嵌式:在内输入:js代码2、注释:单行注释://内容多行注释:/*内容*/快捷键:ctrl+/3、输入输出:prompt(msg,defaultText);msg可选。要在对话框中显示的纯文本。defaultText可选。默认的输入文本。使用window.alert()弹出警告框。例:alert("你输入
- 【HarmonyOS NEXT应用开发】案例103:基于JSVM创建引擎执行JS代码并销毁
青少年编程作品集
javascriptmicrosoft开发语言华为云harmonyos华为华为od
场景描述通过JSVM,可以在应用运行期间直接执行一段动态加载的JS代码。也可以选择将一些对性能、底层系统调用有较高要求的核心功能用C/C++实现并将C++方法注册到JS侧,在JS代码中直接调用,提高应用的执行效率。功能描述通过createJsCore方法来创建一个新的JS基础运行时环境,并通过该方法获得一个虚拟机ID,通过evalUateJS方法使用虚拟机ID对应的运行环境来运行JS代码,在JS代
- TypeScript+Vue
神小夜
前端vuetypescript
Vue官方TypeScript支持文档初始化项目使用@vue/cli创建模版项目(啥是@vue/cli)具体操作自行百度提示:@vue/cli脚手架默认生成的项目是零webpack配置,但是可以支持自定义webpack配置。只需在根目录下新建vue.config.js配置文件,这个文件会被@vue/cli-service自动加载。vue.config.js基础配置模版:constpath=requ
- 08-JS基础-BOM相关
xiaohan_zhang
BOM浏览器对象模型BOM可以使我们通过JS来操作浏览器BOM对象:Window代表的是整个浏览器的窗口,同时window也是网页中的全局对象Navigator代表的当前浏览器的信息,通过该对象可以来识别不同的浏览器。Location代表当前浏览器的地址栏信息,通过Location可以获取地址栏信息,或者操作浏览器跳转页面History代表浏览器的历史记录,可以通过该对象来操作浏览器的历史记录由于
- 【Three.js基础学习】19.Custom models with Blender
蚕食我的耐心
three.js基础学习学习blender
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档前言blender模型资源:【blender】一个汉堡包-CSDN博客一、代码import'./style.css'import*asTHREEfrom'three'import{OrbitControls}from'three/examples/jsm/controls/OrbitControls.js'import{GLTFLoa
- 笔记:node.js基础
一只小bug。
node.js
1.初识node.jsNode.js是一个基于chromeV8引擎的javaScript运行环境。浏览器中js的运行环境=chromeV8引擎+webAPI(BOM、DOM、ajax等)。Node.js中js的运行环境=V8引擎+内置API(fs、path、http、js内置对象等)。终端快捷键:tab(补全路径)、esc(清空当前已输入的命令)、clear(清空终端)。2.fs文件模块系统fs模
- three.js 实现 3D地图
优雅永不过时·
3djavascript低代码npm智慧城市前端threejs
three.js实现仿照echarts3d地图。由于three.js目前比较依赖写代码,而一个美的地图需要大量的three.js组合,我建议先做three.js基础层的低代码编辑器,随后各种项目和效果配置起来都会很方便。https://z2586300277.github.io/three-editor/dist/#/codeMirror?example_path=threeEditor&exam
- JS基础第一天
JustinLaw
前端三大关键Html----网页骨架CSS----网页外貌JS----网页动作JavaScriptbrowser的唯一脚本语言,通常运行在browser里的编程语言node.js服务端编程,用可以作后端编程语言JS组成ECMAScript规则:规定js基础语法eg:变量,分支语句,循环,对象等WebAPIs(可操作的实体对象)DOM:操作文档,整个HTML就是一个文档documentBOM:操作浏
- 前端笔记+面试
huahua1112520
前端笔记面试
一:JS基础部分原型链和原型每个对象都有_proto_属性,并且指向它的原型对象每个构造函数都有它的prototype原型对象prototype原型对象里的constructor指向它的构造函数new一个构造函数会形成它的实例对象深拷贝与浅拷贝涉及堆栈内存、引用类型的区别如何深拷贝:递归拷贝&&利用JSON函数深拷贝JSON.parse(JSON.stringify({对象}))堆栈内存堆内存:接
- 【鸿蒙基础系列】鸿蒙基础组件
Aic山鱼
鸿蒙系列harmonyos华为
作者简介:一名大三在校生,喜欢编程个人主页:Aic山鱼WeChat:z7010cyy系列专栏:️前端-JS基础专栏✨前端-Vue框架专栏✨✨Aic山鱼前端-有趣特效专栏❤️❤️❤️鸿蒙OS专栏(更新中)铭句:将所有微不足道的瞬间编织起来,你将得到绝伦壮丽的宇宙!目录引言鸿蒙基础组件概述ArkTS与TypeScript/JavaScript的区别组件基础1.组件结构3.Component修饰符
- hr跟我说从第二个问题就可以停止面试了
lozhyf
面试职场和发展开发语言面试
#24届软开秋招面试经验大赏#但是他还是跟我聊了一个多小时很有耐心,哎,而且当场根据我不会或者答得不好的问题教我es6新特性解释下事件循环看事件循环的代码解释一下输出顺序写js循环算法总结多巩固js基础这个是js游戏岗,我是25届的作者:阿北Char
- Node.js基础---使用Express写接口
爱健身的小刘同学
node.jsnode.jsexpress
1.创建基本的服务器2.创建API路由模块//aoiRouter.js路由模块constexpress=require('express')constapiRouter=express.Router()module.exports=apiRouter//------------------------------------------//app.js导入并注册路由模块constapiRouter
- 【Node.js从基础到高级运用】一、了解Node.js基础概念
Vip_wk
node.jsjavascript
Node.js入门:基础概念解析欢迎来到Node.js的世界!如果你是一名开发者,不论是初出茅庐还是有着丰富的前端经验,了解Node.js都是一个令人兴奋的旅程。在这篇博客文章中,我们将深入探讨Node.js的基础概念,帮助你建立起对这个强大平台的初步理解。什么是Node.js?Node.js是一个开源、跨平台的JavaScript运行环境,它允许开发者使用JavaScript来编写服务器端代码。
- Node.js基础---模块化
爱健身的小刘同学
node.jsnode.js
基本概念模块化模块化是指解决一个复杂问题时,自上向下逐层把系统划分成若干模块的过程,对于整个系统来说,模块是可组合,分解和更换的单元遵守固定规则,把大文件拆分成独立并互相依赖的多个小模块好处:1.提高代码的复用性2.提高代码的可维护性3.实现按需加载Node.js中的模块化根据来源不同分为3大类:1.内置模块(由官方提供,例如fs、path、http等)2.自定义模块(用户创建的每个.js文件,都
- Node.js基础---Express路由
爱健身的小刘同学
node.jsnode.jsexpress
1.路由的概念1.什么是路由广义上来讲,路由就是映射关系2.Express中的路由在Express中,路由指的是客户端的请求与服务器处理函数之间的映射关系Express中的路由分三部分:请求的类型、请求的URL地址,处理函数。如下:app.METHOD(PATH,HANDLER)3.Express中路由的例子//匹配GET请求,且请求URL为/app.get('/',function(req,re
- js基础小结(2)
dev晴天
js操作css的属性语法:document.getElementById("id").style.属性="值"属性:就是css中属性css属性有"-"例如:backgroud-color若有"-"只需要将"-"删除,后面第一个字母变大写即可。//给标签添加css样式通过js操作//只需要获得标签然后再通过元素的style属性进行设置就行注意:只要是window对象的属性和方法,可以把window省
- 2024年 前端JavaScript入门到精通 第二天 笔记
PieroPc
前端javascript笔记
2.1赋值运算符2.2自增运算符2.3比较运算符2.4逻辑运算符以及优先级2.5JS基础Day2-23-if单分支语句以及判断成绩案例2.6JS基础Day2-24-if双分支语句以及判断润年案例2.7JS基础Day2-25-i侈分支语句以及上午总结2.8JS基础Day2-26-三元运算符以及求最大值案例2.9JS基础Day2-27-数字补0案例2.10JS基础Day2-28-switch分支语句2
- js基础篇
婷宝_知萌
前端javascript开发语言
javascript1.1javascript是什么?是运行在浏览器【客户端】的编程语言1.2js的组成ECMAScript(基础语法)WebAPIs(DOMBOM)1.3js的书写位置内部,外部,行内【代码写在标签内部】//内部alter("你好!!")//外部引入//外部引入的script中间不需要写代码,否则会被忽略//行内样式注意:书写的位置尽量写到文档末尾前面补充:注释的方式单行注释:符
- 个人简历补充
Xiaobaiforgod
个人简历补充全栈前端后端开发算法计算机
个人简历补充1.对工作的认识2.八股文和知识面3.框架/架构角度深扒3.1前端3.1.1mPaaS(移动领域)3.1.2普通前端项目框架3.1.3微前端3.2后端持续更新1.对工作的认识2.八股文和知识面前端(基础知识/开发能力/总结输出能力):前端技术知识(含八股)总结-持续更新中Vue基础学习总结js基础学习总结CSS基础学习总结HTML基础学习总结后端(基础知识/开发能力/总结输出能力):2
- js基础(2)
象更
javascript开发语言ecmascript
对象object也是js的一种数据类型其静态特征可以用基本数据类型表示动态行为可以用函数表示语法:增删改查查:对象.属性改:对象.属性=值增:对象.新属性名=新值删:delete对象.属性名查的另一种写法:对象名['属性名']应用场景,如图goods-name解析错误,变为字符串对象的方法letobj={name:'wwx',song:function(){函数体}}方法调用:对象名.方法名obj
- js基础(1)
象更
javascript开发语言ecmascript
操作数组数组.push()将一个或多个元素添加到数组末尾,返回数组新长度数组.unshift()将一个或多个元素添加到数组末尾,返回数组新长度数组.pop()删除最后一个元素,返回该元素的值更灵活的删除方法,删除指定元素数组.splice(起始位置,删除几个元素)起始位置从0开始渲染柱形图~/*写代码时始终要考虑权重问题!*/@font-face{font-family:'icomoon';src
- 2022-04-15 js基础第二天-变量、数据类型
朝来试看青枝上
js是一种运行在客户端的脚本编程语言;可以实现人机交互效果,提供逻辑思维能力;由ECMAScript(规定语法)和WEBAPIs组成的(DOM+BOM)三种引入js的方法1.内部,用script标签包括,必须写在所有的html标签之后,也就是/body的上面这是因为浏览器是从上到下逐行解析,如果遇到了script标签,就会阻塞文档解析原因1:如果javscript期望修改下方的HTML,那么它可能
- JavaWeb
小小李学java
web
目录1.初识Web前端2.HTML、CSS3.基础标签4.CSS样式5.CSS引入方式6.颜色表示形式7.CSS选择器8.超链接9.盒子模型10.JavaScript11.JS基础语法12.数据类型13.流程控制语句14.JS函数15.JS对象16.Vue17.Ajax18.前后端分离开发:19.YApi20.前端工程化21.Vue组件库Element22.打包部署23.Maven24.Sprin
- Node.js基础---path路径模块
爱健身的小刘同学
node.jsnode.js
前面讲到了fs模块,今天讲讲path路径模块什么是path模块是node.js官方提供用来处理路径的模块例如:parh.join()方法用来将多个路径片段拼接成一个完整的路径path.basename()方法用来从路径字符串中将文件名解析出来__dirname当前目录我们引入路径的时候有三种方法可以选择第一种相对路径弊端:如果在其他路径打开就会报错第二种绝对路径弊端:太繁琐不利于复用移植性差第三种
- day29 js基础5
跟我念一遍
//获取可视区的宽度和高度//获取宽高的时候,要看有没有DTD的说明,如果有,使用documentElement,如果没有,使用bodyvarclientWidth=document.documentElement.clientWidthvarclientHeight=document.documentElement.clientHeight1、吸顶条//可以直接获取到div的宽度和高度,而且是不
- 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独立出来,数据持