- NVIDIA Game Ready 显卡驱动517.48发布!为《守望先锋2》做好游戏准备
错误代码937
教程游戏windowsmicrosoft其他经验分享
NVIDIAGameReady显卡驱动517.48发布!为《守望先锋2》做好游戏准备。这款新的游戏就绪驱动程序为《守望先锋2》提供了最佳的day-0游戏体验,可帮助您在《守望先锋2》中借助NVIDIAReflex获得令人难以置信的性能水平,下面一起来看看详细的更新内容。在发布时,GeForce游戏玩家可以使用英伟达反射提高响应能力。通过减少系统延迟,NVIDIAReflex为竞技游戏提供更快的目标
- Buildroot,Debian 和 Ubuntu 有什么差别
科学的发展-只不过是读大自然写的代码
驱动开发debianubuntu运维
Buildroot、Debian和Ubuntu都是流行的Linux发行版或构建系统,但它们在目标、使用方式和结构上有所不同。以下是它们之间的主要差别:Buildroot:Buildroot是一个为嵌入式Linux系统提供完全自动化构建的工具。它不是一个常规的Linux发行版,而是一个用于构建自定义Linux系统的工具集。使用Buildroot,你可以从零开始构建一个定制的Linux系统,包括内核、
- Firefox部分网页不能输入中文
两斤半
Ubuntuubuntufirefox
Linux客户端使用Fcitx5输入法时暂时关闭输入法的预编辑功能,快捷键(Ctrl+Alt+P)Windows端使用微软输入法(输不了中文时)常规-兼容性-使用以前版本的微软输入法(开启)
- debian配置终端Tab自动补全
确保bash-completion软件包已安装aptupdateaptinstallbash-completion配置~/.bashrc#为root用户启用Bash补全if[-f/etc/bash_completion];then./etc/bash_completionfi重启或source~/.bashrc
- Day.48———CCleaner、Dism++——两个软件的下载安装、使用简介
敏而好学无止境
软件插件下载安装
CCleaner使用介绍:https://zhuanlan.zhihu.com/p/76032202下载安装教程:https://www.hack520.com/559.htmlDism++使用介绍:https://zhuanlan.zhihu.com/p/37664732官方github:https://github.com/Chuyu-Team/Dism-Multi-language官方网址:
- Elasticsearch检索高亮不正确,不精确问题
问题场景:搜索“a”高亮"A8A",,,,,分词器:IK分词器确认分词结果:下图说明已经正确分词!确认高亮效果:换一种高亮器查询效果:对应java代码:总结:当高亮显示不精确的时候,要从以下两方面找问题:1.分词器是否分词准确2.高亮器是否满足你的要求,不满足换一种高亮器查看效果我之前原默认的高亮器(plain)不能满足要求,后来使用unified高亮器解决了高亮不精确的问题。
- docker搭建靶场
无名小猴
HTB靶场练习学习
一、dockerfile使用Dockerfile是用来构建Docker镜像的配置脚本,定义了:用哪个基础镜像(如python:3.10)安装哪些依赖(如pipinstall)拷贝哪些文件(如本地代码、配置)设置运行入口(如CMD[“python3”,“main.py”])写好dockerfile构建镜像dockerbuild-f/Dockerfile-tmy_image_name/dockerpa
- Day.49
m0_64714591
机器学习深度学习人工智能
cbam训练:importtorchimporttorch.nnasnnimporttorch.optimasoptimfromtorchvisionimportdatasets,transformsfromtorch.utils.dataimportDataLoaderimportmatplotlib.pyplotaspltimportnumpyasnpplt.rcParams["font.fa
- 安装Python3.12报错:HTTP 429 TOO MANY REQUESTS for url <https://mirrors.ustc.edu.cn/anaconda/pkgs/free/li
安装Python3.12报错(base)[xxx@hadoop104python_shell]$condacreate--namepythonThirteenpython=3.12报错如下:Retrievingnotices:…working…ERRORconda.notices.fetch:get_channel_notice_response(63):Requesterrorforchanne
- Buildroot,Ubuntu,Debian,Yocto 它们分别是什么,它们之间的具体关系是什么
玄奕子
嵌入式学习之Linux入门篇ubuntudebianlinuxBuildrootYocto
1.Buildroot定义:Buildroot是一个简化和加速嵌入式Linux系统开发过程的工具,提供一种容易、高效的方式来生成交叉编译工具链、根文件系统、内核映像和引导加载程序。Buildroot使用makefile和kconfig(和Linux内核使用的相同系统)来配置和构建整个嵌入式系统。适用场景:对于需要轻量级或高度定制的嵌入式系统,Buildroot非常适合,尤其是那些资源受限或对启动时
- Debian安装配置Nvidia驱动
两斤半
LinuxDebiandebian
检查内核模块nvidia-smi检查已加载的内核模块lsmod|grepnvidia#输出参考nvidia_uvm49152000nvidia_drm11878418drm_ttm_helper163841nvidia_drmdrm_kms_helper2539522drm_ttm_helper,nvidia_drmnvidia_modeset160563225nvidia_drmnvidia60
- 深入掌握Android WebView开发指南
weixin_42668301
本文还有配套的精品资源,点击获取简介:WebView是Android开发中的一个关键组件,它允许应用程序内嵌网页内容,从而增强应用的功能和用户体验。本文详细介绍了如何在Android应用中使用WebView组件,包括初始化设置、加载网页、交互控制、权限管理、进度条显示、安全隐私、缓存管理、硬件加速控制及资源清理等多个方面的知识。通过实际应用这些技术点,开发者可以构建出流畅、安全的内嵌网页浏览功能。
- jquery mobile和ajax,使用jquery mobile不可忽视的细节
jQueryMobile是创建移动WEB应用程序的框架。在学习和使用该框架的过程中,有一些心得想要和大家分享一下。一、框架因为是移动端开发,所以不要忘了下面这个重要的meta标签哦:使用jquerymobile要引入相应的css文件:jquerymobile依赖jquery,因此要先引入jquey.js再引入jquery.mobile.js:在引用jquey.js文件的时候一定要注意版本,要在1.
- jquerymobile跳转方法_jquery mobile 页面跳转方法
如果使用JavaScript代码切换当前显示的页面,可以调用jQueryMobile中的changePage()方法。该方法可以设置跳转页面的URL地址、跳转时的动画效果和需要携带的数据,接下来通过一个简单的实例详细说明该方法的使用过程。实例2-8使用changePage()方法跳转页面1.功能说明新建一个HTML页面,在页面中显示“页面正在跳转中…”文字,然后调用changePage()方法,从
- 应急响应靶机-Linux(2)
满心欢喜love
linux运维服务器
前言本次应急响应靶机采用的是知攻善防实验室的Linux-2应急响应靶机靶机下载地址为:https://pan.quark.cn/s/4b6dffd0c51a相关账户密码:root/Inch@957821.(记住要带最后的点.)解题启动靶机不建议直接使用账号密码登录,建议用另一台主机通过ssh协议连接该靶机。我这里是用kalissh连接该靶机第一题、攻击者IP想要知道攻击者的ip地址,那肯定是要去看
- 手把手全程带你使用springboot2.6.7+vue2前后端分离腾讯云对象存储COS上传文件
星绪173
腾讯云javaspringbootvueelementui
时间:2022.6.27往后的版本可能需要更改依赖前后端分离腾讯云对象存储COS上传文件创建腾讯云COS对象存储存储桶后端添加pom依赖在application.yml中添加动态配置以下为方法示例SQLEntityMapperControllerServiceServiceImplServiceExceptionConstants前端按钮上传对话框相关方法完整示例File.vueconfig.js
- docker安装单机nacos、rocketmq、reids、xxl-job、minio、elasticsearch、kibana、gogs、nginx、mongo
丶会武术的流氓丶
dockerrocketmqrediselasticsearch
目录在右侧中部启动容器报错直接删除那个name后边的就可以安装nacos首先需要拉取对应的镜像文件:dockerpullnacos/nacos-server挂载目录:mkdir-p/mydata/nacos/logs/#新建logs目录mkdir-p/mydata/nacos/init.d/vim/mydata/nacos/init.d/custom.properties#修改配置文件修改cust
- SpringBoot利用腾讯云COS实现图床
埃杰 - Agile
腾讯云springboot云计算
SpringBoot利用腾讯云COS实现图床功能说明Web往往利用图床来储存网页中的图片,使用图床有如下优点:1.减轻服务器压力:如果网页中的图片全部存储在自己的服务器上,就会增加服务器的负担,导致网页加载速度变慢,甚至会因为访问量过大而导致服务器崩溃。而使用图床可以将图片的加载和存储分离,减轻服务器的压力,提高网页的访问速度。2.方便管理和分享:使用图床可以方便地管理和分享图片。通过上传图片到图
- jQuery Mobile 实例
lsx202406
开发语言
jQueryMobile实例引言jQueryMobile是一个基于jQuery的轻量级移动设备友好的开发框架,旨在创建响应式、跨平台的移动应用程序和网站。它提供了一套丰富的用户界面组件和触摸优化事件,使得开发者能够快速构建出适用于各种移动设备的用户界面。本篇文章将通过一系列实例,展示如何使用jQueryMobile来创建美观、功能丰富的移动界面。实例一:基本页面结构首先,让我们从创建一个基本的jQ
- 移动开发:WebView的性能优化工具推荐与使用
移动开发:WebView的性能优化工具推荐与使用关键词:WebView、性能优化、移动开发、渲染性能、内存管理、调试工具、缓存策略摘要:本文深入探讨移动开发中WebView的性能优化策略和工具。我们将从WebView的核心原理出发,分析其性能瓶颈,介绍一系列实用的性能优化工具和技术,包括ChromeDevTools、AndroidProfiler、Systrace等。文章还将提供详细的代码示例和优
- 深入剖析MYSQL MVCC多版本并发控制+ReadView视图快照规避幻读问题
LiRuiJie
MySQLmysql数据库
一、剖析MVCC底层如何实现1.MVCC的目标在高并发场景下,MVCC实现:能力描述读写并发读不会阻塞写,写也不会阻塞读(大多数SELECT是非阻塞的)一致性视图每个事务看到的数据是其开始时的一致状态高性能避免频繁加锁,减少锁竞争开销2.InnoDB如何实现MVCCInnoDB使用以下两部分实现MVCC:UndoLog(撤销日志):用于保存数据变更前的旧版本ReadView(读视图):用于判断当前
- rook-ceph配置dashboard代理无法访问
在ceph-tools的pod中看看dashboard是否开启kubectl-nrook-cephexec-itrook-ceph-tools-7b75b967db-jn68d–bashcephmgrservices查看集群内地址使用curl测试能否访问cephmgrmoduledisabledashboard关闭cephmgrmoduleenabledashboard开启rook中关于ceph部
- 【微信小程序】小程序的双线程架构,为什么要设计成双线程的,双线程之间如何通信
我有一棵树
小程序微信小程序
在开始学习之前,建议看一下官方文档逻辑层和渲染层微信小程序是双线程的,有渲染层和逻辑层两个执行环境,渲染层负责页面的渲染和样式,逻辑层负责小程序的逻辑和数据处理。渲染线程:渲染层使用了WebView负责渲染界面,包括解析wxml,wxss,样式计算,布局排版和绘制试图等操作。一个页面是一个WebView,所以渲染层会有多个webview逻辑线程:基于有JsCore运行js脚本,负责处理业务逻辑和数
- Flutter学习之Base64加密及解密
Pillar~
FlutterFlutter
1、导包:import'dart:convert';2、使用方法:/**Base64加密*/staticStringencodeBase64(Stringdata){varcontent=utf8.encode(data);vardigest=base64Encode(content);returndigest;}/**Base64解密*/staticStringdecodeBase64(Stri
- Flutter 容器Container嵌套Container出现内部Container设置宽高属性不生效问题分析
Pillar~
Flutter
1、问题描述:Container嵌套Container,内部Container设置宽高属性不生效,即使设置constraints约束也不生效2、解决方案:取消两个Container的宽高设置,使用constraints去约束宽高即可限制内部的Container的宽高(注意不要设置宽高,原因看源码)Container(constraints:BoxConstraints(maxHeight:60),
- 小程序的「双线程模型」
TE-茶叶蛋
小程序开发小程序
文章目录前言一、双线程模型结构概览二、逻辑层(AppService)示例:️三、渲染层(WebView)示例(WXML):四、通信机制(Native层桥接)⚙️通信方式:底层实现方式:五、为什么这么设计?缺点与限制总结结构图✅实践建议扩展小程序双线程模型的**进阶架构扩展**一、支持WebWorker的多线程能力(逻辑层并发能力增强)✅使用示例:⚠️注意:二、沙箱机制强化(增强渲染安全)三、小程序
- Python-Appium 2.19.0---详细指南:安装Appium
渡己(Sorin)
pythonappium开发语言
引言最近要写个安卓自动化项目,想用Appium来实现,版本已经来到了2.19.0,搜了一圈,发现文档比较少,至少7年没有用过了,有点陌生,打算重新研究下,写成文章分享给有需要的人。作为最流行的移动端自动化测试框架之一,其2.x版本有许多重要的改进和新特性。这篇文章将详细介绍如何在Windows和macOS系统上安装Appium2.19.0版本,并配置Python环境进行自动化测试开发。第一部分:环
- List中的对象进行排序处理
以下是使用JavaStream对对象列表按id和age排序的完整示例,包含升序和降序两种场景:1.定义测试对象类@Getter@SetterpublicclassPerson{privateintid;privateintage;}2.排序实现代码importjava.util.*;importjava.util.stream.Collectors;publicclassStreamSortExa
- MySQL EXPLAIN 关键字详解
烟沙九洲
数据库mysql数据库
EXPLAIN是用于分析SQL查询的执行计划。它能揭示MySQL如何执行查询(如是否使用索引、表连接顺序等),帮助我们定位性能瓶颈。基本用法EXPLAINSELECT*FROMusersWHEREage>25;输出列列名说明关键值示例id查询标识符(相同id表示同组查询,执行顺序从上到下;不同id值越大优先级越高)1(主查询)、2(子查询)select_type查询类型SIMPLE(无子查询)、P
- 索引在哪些情况下会失效
(1)对列进行计算或者是使用函数,则该列的索引会失效(2)不匹配数据类型,会造成索引失效(3)where语句中使用了ISNULL或者ISNOTNULL,会造成索引失效(4)使用了反向操作,该索引将不起作用(5).like查询是以%开头(6)在WHERE中使用OR时,有一个列没有索引,那么其它列的索引将不起作用注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引(7).如果mysq
- 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独立出来,数据持