- Android 利用OkHttp进行文件下载操作
淼森007
Android基础
上回我的博客中讲了如何使用OkHttp封装一套自己的网路请求框架,这次说说文件下载。其实我们APP中还是很多地方会用到文件下载的。比如版本更新的时候,比如图片本地缓存的时候,都会用到文件下载,那么我们如何使用这个功能呢?首先我们要引入框架implementation'com.squareup.okhttp3:okhttp:3.6.0'接着创建类DownloadUtil.java,内容如下publi
- hadoop 0.22.0 部署笔记
weixin_33701564
大数据java运维
为什么80%的码农都做不了架构师?>>>因为需要使用hbase,所以开始对hbase进行学习。hbase是部署在hadoop平台上的NOSql数据库,因此在部署hbase之前需要先部署hadoop。环境:redhat5、hadoop-0.22.0.tar.gz、jdk-6u13-linux-i586.zipip192.168.1.128hostname:localhost.localdomain(
- 【Kotlin】OkHttp框架实现网络下载
小叮当不懒
Androidkotlinokhttpandroid
目录【Kotlin】OkHttp框架实现网络下载需求思路实现实现单线程下载功能实现多线程下载功能不积跬步,无以至千里;不积小流,无以成江海。要沉下心来,诗和远方的路费真的很贵!【Kotlin】OkHttp框架实现网络下载需求对网络上的资源进行下载,下载的文件保存在本地mnt/sdcard/Download文件夹。显示下载的进度和下载是否成功的提示。多线程下载,一个线程下载一张图片或者一个视频。只有
- 07_React 路由
qiao若huan喜
React全家桶react.js前端前端框架
React路由(5.x版本)一、相关理解1、SPA的理解2、路由的理解2.1什么是路由?2.2路由分类2.2.1后端路由2.2.2前端路由3、react-router-dom(Web开发使用)的理解二、react-router-dom相关API1、内置组件1.1BrowserRouter1.2HashRouter1.3Route1.4Redirect1.5Link1.6NavLink1.7Swit
- Javaweb项目-调用接口-如何在服务器端跳转网页后显示并弹出对话框代码
海海不掉头发
Java面试习题Java基础java
Webapp项目中在java包下新建一个服务端类使用JOptionPane框架组件调用showMessageDialog的方法实现四个参数null,"这是一个信息对话框","信息",JOptionPane.INFORMATION_MESSAGE还有确认对话框的代码showConfirmDialogpackageservlet;importjavafx.scene.control.Alert;imp
- Biopython从pdb文件中提取蛋白质链的信息
qq_27390023
开发语言python
使用Biopython的PDB模块可以方便地解析PDB文件并提取你需要的信息。下面是一个示例代码,用于提取PDB文件中的链名称、序列和长度:示例代码fromBioimportPDB#读取PDB文件pdb_file="/Users/zhengxueming/Downloads/1a0h.pdb"parser=PDB.PDBParser(QUIET=True)structure=parser.get_
- 开源IDC资产管理--racktables(一、部署)
Ping Me
IDC系统racktablesIDC系统
部署racktables安装配置lamp环境yum-yinstallhttpdphpmysqlmysql-serverphp-mysql安装apache扩展和php扩展,使其更好支持其他的软件yuminstallhttpd-manualmod_sslmod_perlmod_auth_mysql-yyuminstallphp-gdphp-snmpphp-bcmath-y下载安装racktables下
- 【实践出真知】使用Docusaurus将md文档组织起来就是一个网站(写API文档,写教程、写日记、写博客的有福了)
IT里的交易员
Python经验池node.js产品运营经验分享
文章目录前言一、Docusaurus是什么?二、一键生成网站框架并预览1.系统需求2.脚手架项目网站(一键生成网站框架)3.生成的目录内容4.网站运行与展示总结前言前段时间,学习Flet,访问到Flet中文网,被其简洁的风格吸引,就想着以后将自己的内容也整理一下。最终发现该网站是用Docusaurus这个工具实现的。以后写API文档,写教程、写日记、写博客有福了,只要写出markdown文档即可。
- Deepspeed 结合huggingface Trainer实现多机分布式训练
ningzhao
分布式
目前工作中只使用了单机多卡做微调训练,为了提升训练效率,特实验多机多卡分布式训练。一、环境准备本试验使用两台机器(manager,worker),操作系统ubuntu22.4,每台机器有4个GPU为了使安装配置统一,使用docker容器,docker的安装这里不做介绍。1.网络配置-创建overlay共享网络初始化集群,在manager机器上运行:dockerswarminit#输出结果:Swar
- ASP.NET Core 开源项目详解与入门指南
沈菱嫱Marie
ASP.NETCore开源项目详解与入门指南aspnetcoredotnet/aspnetcore:是一个ASP.NETCore应用程序开发框架的官方GitHub仓库,它包含了ASP.NETCore的核心源代码和技术文档。适合用于ASP.NETCore应用程序开发,特别是对于那些需要深入了解ASP.NETCore框架实现和技术的场景。特点是ASP.NETCore官方仓库、核心源代码、技术文档。项目
- Android-Jetpack架构组件(二)带你了解Lifecycle,给2021的移动开发一些建议
flutter架构师
程序员面试移动开发android
@OverrideprotectedvoidonResume(){super.onResume();myPresenter.onResume();}@OverrideprotectedvoidonPause(){super.onPause();myPresenter.onPause();}}classMyPresenter{《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战
- Spark - 升级版数据源JDBC2
大猪大猪
在spark的数据源中,只支持Append,Overwrite,ErrorIfExists,Ignore,这几种模式,但是我们在线上的业务几乎全是需要upsert功能的,就是已存在的数据肯定不能覆盖,在mysql中实现就是采用:ONDUPLICATEKEYUPDATE,有没有这样一种实现?官方:不好意思,不提供,dounine:我这有呀,你来用吧。哈哈,为了方便大家的使用我已经把项目打包到mave
- 解决Windows环境下hadoop集群的运行_window运行hadoop,unknown hadoop01(4)
2401_84160087
大数据面试学习
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化资料的朋友,可以戳这里获取一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!org.apache.hadoophadoop-com
- 解决Windows环境下hadoop集群的运行_window运行hadoop,unknown hadoop01(3)
2401_84160087
大数据面试学习
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化资料的朋友,可以戳这里获取一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!xmlns:xsi="http://www.w3.or
- Windows安装mamba全流程(全网最稳定最成功)
一本糊涂张~
深度学习windows
windows系统下安装mamba会遇到各种各样的问题。博主试了好几天,把能踩的坑都踩了,总结出了在windows下安装mamba的一套方法,已经给实验室的windows服务器都装上了。只要跟着我的流程走下来,大概率不会出问题,如果遇到其他问题,可以在评论区讨论,我会的我会回复。 主要的流程步骤是参考这篇文章,并对其中遇到的问题进行改进。 首先创建mamba的环境,然后安装必要的库。请你创
- Ubuntu 16.04安装Java JDK
一杯茶一本书
JavaJDK有两个版本,一个开源版本Openjdk,还有一个oracle官方版本jdk。下面记录在Ubuntu16.04上安装JavaJDK的步骤。安装openjdk的步骤更新软件包列表:sudoapt-getupdate安装openjdk-8-jdk:sudoapt-getinstallopenjdk-8-jdk查看java版本:java-version安装oracleJavaJDK首先,安装
- Window 下 Vim 环境安装踩坑问题汇总及解决方法
yyywxk
#Python模块有关问题vimpythonmambawindows
导航Linux下Mamba及Vim安装问题参看本人之前博客:Mamba环境安装踩坑问题汇总及解决方法Linux下Vmamba安装教程参看本人之前博客:Vmamba安装教程(无需更改base环境中的cuda版本)Windows下VMamba的安装参看本人之前博客:Windows下VMamba安装教程(无需更改base环境中的cuda版本且可加速)Window下Mamba环境教程参看本人之前博客:Wi
- 利用 pip 安装 PyTorch 问题记录
yyywxk
#软件安装使用问题pippytorch人工智能python
目录1.pytorch源下载安装缓慢2.ERROR:HTTPerror4031.pytorch源下载安装缓慢利用pip安装pytorch时,官方源下载速度十分缓慢:pipinstalltorch==2.1.1torchvision==0.16.1torchaudio==2.1.1--index-urlhttps://download.pytorch.org/whl/cu118可以考虑换源:pipi
- RapidJson递归去除空值元素Value
Cloudox_
RapidJson是一款高效的C++处理JSON字符串的库。教程:http://rapidjson.org/zh-cn/md_doc_tutorial_8zh-cn.html#QueryObject源码:https://github.com/Tencent/rapidjson但不得不说教程写的不太全,网上资料也很少,大都重复教程的范畴。项目中有个蛋疼的需求要把JSON字符串中值为空的键值对去掉,C
- Linux-------基础
Pluto & Ethereal
linux运维服务器
目录一、基础1、Linux的特点:2、UbuntuLinux的特点:3、用户切换的命令4、常用命令一、基础1、Linux的特点:开放性、安全性、多用户性、网络性2、UbuntuLinux的特点:1、拥有完整图形化界面,是面向普通用户对象,比较容易上手2、安装UbuntuLinux会自带unity桌面环境,操作方便3、用户切换的命令su用户名切换到对应的用户sudo-i切换到root(超级管理员)4
- dolphinscheduler独立集群部署文档(海豚调度)
灰太狼!!
数仓开发资源调度scheduler
一、下载解压服务器内下载(华为云镜像站网址):wgethttps://mirrors.huaweicloud.com/apache/dolphinscheduler/3.2.0/apache-dolphinscheduler-3.2.0-bin.tar.gz解压:tar-xvfapache-dolphinscheduler-3.2.0-bin.tar.gz改名:mvapache-dolphinsc
- windows11 wsl2 ubuntu20.04安装vision mamba并进行测试
一剑斩蛟龙
人工智能深度学习图像处理计算机视觉python机器学习pytorch
windows11wsl2ubuntu20.04安装visionmamba安装流程使用cifar-100测试安装成功安装流程visionmamba安装了半天才跑通,记录一下流程在wsl上安装cudawgethttps://developer.download.nvidia.cn/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_l
- JavaScript对象
yeyang111
1.varfram={framer:'小明',dogs:["小兔","小猫"],field:[2,3,4]}六角学院截图.png2.向对象里边增加varfram={framer1:'小明',dogs:["小兔","小猫"],field:[2,3,4]}fram.framer2='小蕴'可以在控制台发现增加了一个0X7M8BN7.png3.像对象里边增加函数(方法)varfram={framer1:
- 2020-03-02 Allow Multiple Prospects with the same email address.
古月的小七
目前这种属性是默认enable的了,在AccountSetting里面你可以看到相应的设置。AllowMultipleProspectswiththeSameEmailAddressEmailisnolongertheonlyuniqueidentifierinPardot.Pardotadminscanchecktheiraccountsettingspagetoseewhethertheira
- (扩展)中国剩余定理(模板)
UniverseofHK
数学(扩展)中国剩余定理模板
中国剩余定理:猜数字求解下列同余方程组(模数互质){x≡a1(modm1)x≡a2(modm2)⋮x≡an(modmn)\begin{cases}x\equiva_1\(\mod\m_1\)\\x\equiva_2\(\mod\m_2\)\\\quad\vdots\\x\equiva_n\(\mod\m_n)\end{cases}⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧x≡a1(modm1)x≡a2(modm2)⋮
- django 刷新缓存,Django缓存不会刷新
河马和荷花
django刷新缓存
I'veaddedasimplecachingtomywebapplicationandwhenIdeleteoraddnewobjectthecachedoesnotgetrefreshedaftertheperoidoftime(2minutes)thatI'veset.Itlookslikeitfroze.WhenIrestartmyapplicationthenitgetsrefreshe
- apt 下载指定架构的包及离线安装的方法
错误重复学习记录
linux
#设置系统架构sudodpkg--add-architectureamd64#安装apt-rdependssudoaptinstallapt-rdepends#创建单独的目录mkdir-p/home/apt/postgresql-client-common#仅下载安装包sudoapt-getinstall--download-onlysudomv/var/cache/apt/archives/*/
- 用python的NiceGUI库 实现webApp___官网文档熟悉
错误重复学习记录
webapp
官网文档文本元素ui.label、、ui.markdown和ui.restructured_text等元素ui.html可用于显示文本和其他内容。TextElementsLabel、Link、ChatMessage、GenericElement、MarkdownElement、ReStructuredText、MermaidDiagrams、HTMLElement控制NiceGUI提供了多种用于用
- linuxcnc-cia402 README
错误重复学习记录
笔记
hal-cia402CiA402器件的HAL接口,该组件用作硬件与Hal模块(如Ethercat、CAN总线或其他)之间的粘合层。它将原始IO数据从PDO转换为常见的linuxcncHal引脚结构,并具有内置逻辑用于CiA402状态控制、反馈处理、外部归位和内置缩放功能。它提供两个函数:read_all和write_all。相应任务中的整合概念应如下:硬件输入-->--CiA402_read-->
- python3ide_Python IDE Windows下载3.4.2 安装版
weixin_39636099
python3ide
Python是一种面向对象、直译式计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。目前,基于这种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。软件特点:很清楚,易读的语法较强的自省能力直观的面向对象自然的表达程序代码完整的模块化设计,支持分层
- 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独立出来,数据持