- 48. 旋转图像 - 力扣(LeetCode)
Fiee-77
#数组leetcode算法python数据结构数组
题目:给定一个n×n的二维矩阵matrix表示一个图像。请你将图像顺时针旋转90度。你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例1:输入:matrix=[[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]示例2:输入:matrix=[[5,1,9,11],[2,4,8,10],[13,3,6,
- 【C++算法】76.优先级队列_前 K 个高频单词
流星白龙
优选算法C++c++算法开发语言
文章目录题目链接:题目描述:解法C++算法代码:题目链接:692.前K个高频单词题目描述:解法利用堆来解决TopK问题预处理一下原始的字符串数组,用一个哈希表统计一下每一个单词出现的频次。创建一个大小为k的堆频次:小根堆字典序(频次相同的时候):大根堆循环让元素依次进堆判断提取结果C++算法代码:classSolution{//定义类型别名,PSI表示对typedefpairPSI;//自定义比较
- 图论算法经典题目解析:DFS、BFS与拓扑排序实战
周童學
数据结构与算法深度优先算法图论
图论算法经典题目解析:DFS、BFS与拓扑排序实战图论问题是算法面试中的高频考点,本博客将通过四道LeetCode经典题目(均来自"Top100Liked"题库),深入讲解图论的核心算法思想和实现技巧。涵盖DFS、BFS、拓扑排序和前缀树等知识点,每道题配有Java实现和易错点分析。1.岛屿数量(DFS遍历)问题描述给定一个由'1'(陆地)和'0'(水)组成的二维网格,计算岛屿的数量。岛屿由水平或
- Matrix-Breakout 2 Morpheus靶场解题过程
信息收集目标探测靶机目标很明显就是61.139.2.141了扫描开放端口发现22、80、81访问端口主机访问80翻译一下,并没有发现什么审查源代码发现里面有一张图片,下载下来看看是否有图片的隐写wgethttp://61.139.2.141/trinity.jpegstegoveritas-itrinity.jpeg-o/home/kali/Desktop/11分解后发现什么都没有,里面的keep
- 【Jupyter】个人开发常见命令
TIM老师
#Pycharm&VSCodepythonJupyter
1.查看python版本importsysprint(sys.version)2.ipynb/py文件转换jupyternbconvert--topythonmy_file.ipynbipynb转换为mdjupyternbconvert--tomdmy_file.ipynbipynb转为htmljupyternbconvert--tohtmlmy_file.ipynbipython转换为pdfju
- mac os 10.9 mysql_MAC OSX 10.9 apache php mysql 环境配置
AY05
macos10.9mysql
#终端内运行sudoapachectlstart#启动Apachesudoapachectlrestart#重启Apachesudoapachectlstop#停止Apache#配置Apachesudovi/private/etc/apache2/httpd.conf#将里面的这一行去掉前面的##LoadModulephp5_modulelibexec/apache2/libphp5.so#配置P
- CMS垃圾回收器+G1垃圾回收器+ZGC垃圾回收器详解及对比
weixin_43751710
jvmjava算法
一、CMS收集器CMS(ConcurrentMarkSweep)收集器是一种以获取最短回收停顿时间为目标的收集器,是一款针对老年代的垃圾回收器,一般和Parallel回收器(一款新生代回收器,是使用复制算法的收集器,又是并行的多线程收集器,收集时会Stoptheworld)配合使用。1.工作过程从名字(包含“MarkSweep”)上就可以看出CMS收集器是基于标记-清除算法实现的,它的运作整个过程
- 基于STM32设计的LCD指针式电子钟与日历项目
鱼弦
单片机系统合集stm32嵌入式硬件单片机
鱼弦:公众号【红尘灯塔】,CSDN博客专家、内容合伙人、新星导师、全栈领域优质创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen)基于STM32设计的LCD指针式电子钟与日历项目1.介绍基于STM32设计的LCD指针式电子钟与日历项目是一款利用STM32微控制器、LCD显示屏和指针机构实
- ubuntu的redis反弹shell总结
chanra
萌新随笔ubunturedislinux
ubuntu的redis反弹shell总结ubuntu要执行有三点:1、ubuntu的默认执行命令的为/bin/dash,我们使用bash-i肯定是弹不了的。2、ubuntu计划任务运行有语法要求,redis写入的文件存在缓存数据,导致语法错误无法运行计划任务。3、文件需要是600rw权限,权限不对也不能运行,不过我直接写入貌似就是600rw。参考链接:http://www.vkxss.top/2
- 867. 转置矩阵--leetcode
黄油烤菠萝
算法数据结构leetcodejava
867.转置矩阵简单提示给你一个二维整数数组matrix,返回matrix的转置矩阵。矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。示例1:输入:matrix=[[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]]示例2:输入:matrix=[[1,2,3],[4,5,6]]输出:[[1,4],[2,5],[3,6]]提示:m==
- SQL97 验证刷题效果,输出题目真实通过率
折翼的恶魔
MYSQL数据库
牛客刷题记录表`done_questions_record`,为验证重复刷题率,输出题目通过率(哪些题目被通过了,这个人你一共刷题的题目)question_pass_rate60%的用户的提交正确率pass_rate与每题目平均提交次数question_per_cnt。result_info'是否通过,1:通过;0:不通过',查询返回结果名称和顺序user_idquestion_pass_rate
- 拼多多返利软件哪个最好?拼多多可以返利的app有哪些
高省APP大九
拼多多返利app排行榜TOP10下载本大全榜单是应用市场为您提供的手机拼多多客返利app排行榜本年度榜单、及免费下载,囊括了十大拼多多客返利app产品的热度数据、图片、用户评价、历史版本下载等信息,拼多多返利app有哪些、拼多多返利app哪个比较好用,尽在这里!1、高省APP(邀请码:668666)目前的话拼多多优惠券返利平台返利最高的就是高省APP,【高省邀请码:668666】高省APP全网有优
- 关于leetcode第56题合并重复区间的解析
冬天里的懒喵
[toc]1.题目描述给出一个区间的集合,请合并所有重叠的区间。示例1:输入:[[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间[1,3]和[2,6]重叠,将它们合并为[1,6].示例2:输入:[[1,4],[4,5]]输出:[[1,5]]解释:区间[1,4]和[4,5]可被视为重叠区间。https://leetcode-cn.co
- Leetcode 热题100道刷题
Not--found
leetcode算法
哈希算法哈希表(HashTable)是一种根据关键字直接访问内存存储位置的数据结构。通过哈希表,数据元素的存放位置和数据元素的关键字之间建立起某种对应关系,建立这种对应关系的函数称为哈希函数。1.两数之和(Leetcode1)给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数
- LeetCode热题100:哈希
Intro_Nitro
LeetCode热题100哈希算法leetcode
1.两数之和题目链接:两数之和题目描述:给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。解题思路:我们创建一个哈希表,以数组的值做key,索引做value。对于每一个x,我们首先查询哈希表中是否存在target-
- 2024国内游戏平台排行榜 目前最热门的国内游戏平台推荐
会飞滴鱼儿
免费在线游戏网站为我们的日常休闲娱乐提供了丰富多样的游戏体验。有些游戏平台相当优质,同时还提供实时动态、活动福利等。现在让我们一起探寻哪些免费在线游戏网站值得你投入时间和精力,沉浸在游戏的世界中,畅玩各种好玩的游戏。2024最火的免费游戏网站排行榜大全───┅┈━━━━━━━━┅┈─────────────Top1──────────游戏名字:游戏豹官网-特点-:手机游戏门户网站日活跃量:1.3w
- C++算法之单调栈
ぼっち・ざ・ろっく!-後藤一里|ポチ
C++算法c++java开发语言
C++算法中的单调栈:从入门到实战指南大家好!今天我们来聊聊C++算法中一个超级实用的工具——单调栈。别被名字吓到,它其实很简单,就像排队买奶茶一样:队伍总是从矮到高(或从高到矮)排得整整齐齐,这样处理问题时就特别高效。在算法面试里,单调栈是高频考点,LeetCode上很多难题(比如找“下一个更大元素”或算“柱状图最大面积”)都能用它轻松搞定。这篇文章,我会用接地气的语言,带大家一步步理解单调栈的
- 深入剖析Nginx
书火网_firebook
想邀看书之《深入剖析Nginx》一个不会点运维的后端程序员,不是个合格的码农传送门:https://fire100.top/detail?rId=155少年辛苦终身事,莫向光阴惰寸功!
- 如何把自己的代理公司介绍给客户?(第二句)
Lisa_Wang_China
WeareverypleasedtoalignwithsuchanexperiencedorganizationXXXXasourlocalpartnerinIndonesiaandlookforwardtotheopportunitytoparticipateinanyupcomingcardopportunities.释义:我们非常高兴能与经验丰富的XXXX组织结盟,成为我们在印度尼西亚的本地
- [LeetCode 169/229] Majority Element I/II (easy / medium)
灰睛眼蓝
LeetCode169IGivenanarrayofsizen,findthemajorityelement.Themajorityelementistheelementthatappearsmorethan⌊n/2⌋times.Youmayassumethatthearrayisnon-emptyandthemajorityelementalwaysexistinthearray.Example
- 音视频面试题集锦第 7 期
音视频面试题集锦第7期:1、简要介绍一下对H.264的了解?2、H.264编码框架分层目的是什么?3、H.264如何根据NALU判断当前视频帧的类型?4、介绍一下I、P、B帧编码、解码、显示顺序?5、H.264与H.265有什么区别?图文完整版请阅读:https://gjzkeyframe.github.io/posts/av-interview-qa-7/1、简要介绍一下对H.264的了解?1)
- OpenCV读取视频帧卡死的BUG修复
henysugar
opencv音视频bug
OpenCV读取指定视频文件如果异常的时候,会卡死一直不退出,问题是卡在CvCapture_MSMF::grabVideoFrame函数内,跟了一下,发现有个判断有点问题,其下面的源码:while(!stopFlag) { for(;;) { CV_TRACE_REGION("ReadSample"); if(!SUCCEEDED(hr=videoFileSour
- CSS基础(3)
Zzz_睡不醒
css前端html
CSS背景操作1.多重背景(MultipleBackgrounds)div{background-image:url(image1.png),url(image2.png);background-position:rightbottom,lefttop;background-repeat:no-repeat,repeat;background-size:auto,cover;}background
- [leetcode]355. Design Twitter
大米GoGoGo
leetcode数据结构leetcodedesign
题目链接:https://leetcode.com/problems/design-twitter/题意:这是一个设计类题目,本题要求设计一个Twitter,主要支持以下几种操作:发表一条状态postTweet(userId,tweetId)关注某个用户follow(followerId,followeeId):Followerfollowsafollowee对某个用户取消关注unfollow(f
- 【LeetCode】算法详解#8 ---螺旋矩阵
Fanxt_Ja
算法算法leetcode矩阵java辅助空间
1.题目介绍给定一个m行n列的矩阵matrix,请按照顺时针螺旋顺序,返回矩阵中的所有元素。提示:m==matrix.lengthn==matrix[i].length1spiralOrder(int[][]matrix){intm=matrix.length;intn=matrix[0].length;//定义临时数组记录访问位置int[][]temp=newint[matrix.length]
- 解决:Python通过OpenAI调用大模型API超时问题
-米兰的小铁匠
pythonlinux开发语言
业务中有时需要Python通过OpenAI调用大模型API进行问答,通过pip命令安装OpenAI:pipinstallopenai-ihttps://pypi.tuna.tsinghua.edu.cn/simple以Qwen2.5-VL-72B-Instruct为例,代码如下:fromopenaiimportOpenAI#初始化OpenAI客户端client=OpenAI(api_key='',
- Leetcode力扣解题记录--第136题(查找单数)
不愧是你呀
Leetcodeleetcode算法数据结构
题目链接:136.只出现一次的数字-力扣(LeetCode)题目描述给你一个非空整数数组nums,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。示例1:输入:nums=[2,2,1]输出:1示例2:输入:nums=[4,1,2,1,2]输出:4示例3:输入:nums=[1]输出:1题目作
- webpack 配置 style-loader时出现错误:Module build failed (from ../node_modules/style-loader/dist/cjs.js)
.ToString()°
webpackjavascriptes6/es7webpack前端node.js
webpack配置style-loader时出现错误,Modulebuildfailed(from…/node_modules/style-loader/dist/cjs.js):TypeError:this.getOptionsisnotafunctionatObject.loader1.确保loader配置中的顺序,loader的执行顺序是从右到左,从下到上的,这里要注意style-loade
- Centos7桌面模式和命令行模式切换
写bug的羊羊
linux
设置进入桌面模式#查看当前模式systemctlget-default#安装桌面依赖包suduyumgroupinstall"GNOMEDesktop""GraphicalAdministrationTools"#临时启用startx#设置开机进入图形界面systemctlset-defaultgraphical.target#设置开机进入命令行systemctlset-defaultmulti-
- A51 STM32_HAL库函数 之 TIM通用驱动 -- A -- 所有函数的介绍及使用
A51STM32_HAL库函数之TIM通用驱动--A--所有函数的介绍及使用1该驱动函数预览1.1HAL_TIM_Base_Init1.2HAL_TIM_Base_DeInit1.3HAL_TIM_Base_MspInit1.4HAL_TIM_Base_MspDeInit1.5HAL_TIM_Base_Start1.6HAL_TIM_Base_Stop1.7HAL_TIM_Base_Start_I
- 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独立出来,数据持