- centos修改、保存文件的详细步骤
X先生_未知数的X
【一】修改文件如果是使用普通用户登录的,需要先切换到管理员用户,打开终端,输入:su,接着按提示输入密码即可;然后使用命令进入需要修改文件的所在目录,常用的几个命令如下:①cd+目录名②cd+空格(退回上级目录)③cd+空格+/(退回最高级目录)接着使用命令:vi+文件名命令,打开文件,然后输入命令:/+要修改的关键词,查找到要修改的内容,然后使用命令进入【文本输入模式】,常用的命令如下:①a在光
- MySQL5.7.36之主从复制部署安装-centos7
龙哥·三年风水
MySQL5.7.36高可用安全数据库mysql
主库是192.168.31.209:3306从库是192.168.31.210:3308、192.168.31.209:3307、192.168.31.210:3309、192.168.31.211:3310、192.168.31.211:3311切记:不管是主库还是从库,server_id一定不能重复1、主库创建复制账号及授权createuser'repl'@'%'identifiedby'7E
- 【Mysql】通过Keepalived搭建mysql双主高可用集群
维运
数据库mysql数据库
一、环境信息主机名ip操作系统mysql版本VIP(虚拟ip)hadoop01192.168.10.200centos7_x865.7192.168.10.253hadoop03192.168.10.202centos7_x865.7二、mysql集群搭建两台节点,如果未部署mysql服务,部署文档请看【Mysql】mysql三种安装方式(二进制、yum、docker)-CSDN博客三、配置文件修
- epoll实现并发服务器
嘻嘻嘻Mr.Huang
服务器网络运维
1、epoll是什么epoll是Linux上一种高性能的多路复用机制,用于监视大量文件描述符并在它们就绪时通知应用程序。它是在select和poll的基础上进一步优化和改进而来的。2、epoll的特点1.没有文件描述符数量限制:与select和poll不同,epoll采用了基于事件的就绪通知机制,没有预定义的文件描述符数量限制,可以支持更大规模的并发连接。2.高效的事件通知:epoll使用了内核和
- Makefile
嘻嘻嘻Mr.Huang
linux运维服务器
文件编写好以后在Linux命令行中执行一条make命令即可自动编译整个工程。1、Makefile的参数1.目标:即要生成的文件。2.依赖:即目标文件由哪些文件生成。3.命令:即通过执行命令由依赖文件生成目标文件。4.all:Makefile文件默认只生成第一个目标文件即完成编译,但是可以通过all指定所需要生成的目标文件。Makefile中,目标(Target)和依赖(Dependency)是通过
- ubuntu aws mysql 启动
F的平方
isaywzklSy40XdmfW1ZOeQ启动登陆/home/ubuntu/aws6/mysql/bin/mysqld_safe--defaults-file=/home/ubuntu/aws6/mysql/my.cnf--user=root&登陆/home/ubuntu/aws6/mysql/binmysql-uroot-p-S/home/ubuntu/mysql/mysql.sock
- Kali Linux 2020.1安装桌面
大学霸IT达人
KaliLinux2020.1安装桌面KaliLinux2020.1安装后,可能没有安装图形界面,进入的是终端模式。此时,用户则需要安装图形界面相关的软件包。例如,这里将安装XFCE桌面。操作步骤如下所示大学霸IT达人:(1)配置软件源。执行命令:vi/etc/apt/sources.lst添加官方软件源debhttp://http.kali.org/kalikali-rollingmainnon
- crtl + r search history
charliecao
Linux下的神器ctrl+r(reverse-i-search)的使用方法:(reverse-i-searchusage:)(pressctl+r)输入任意字符,例如:"mig"就会出现$rakedb:migrate(pressctrl+r,theninputthecontentyouwanttosearch)如果我想找另一个命令呢?输入完'mig'多按几次ctrl+r,就可以继续向前搜索“mi
- LuaJit分析(一)LuaJit交叉编译
CCTV果冻爽
LuaJit分析系列lua
Android使用ndk版本r16b在luajit2.1.0-beta3目录下创建一个脚本文件,armv7编译代码如下:makecleanNDK=E:/android-ndk-r16b#ndk路径NDKABI=21NDKTRIPLE=arm-linux-androideabiNDKVER=$NDK/toolchains/$NDKTRIPLE-4.9NDKP=$NDKVER/prebuilt/win
- 2019西邮LINUX小组纳新题
大专er
c语言
1.考察usigned和补码,反码等。intmain(intargc,char*argv[]){for(unsignedinti=3;i>=0;i--)putchar('=');}这个代码会输出无限个=。#includeintmain(intargc,char*argv[]){unsignedinti=3;printf("%u\n",--i);printf("%u\n",--i);printf("
- Linux 实时调度器:带宽限制
JiMoKuangXiangQu
#进程调度Linux实时调度器带宽限制
文章目录1.前言2.概念3.实时进程的带宽限制3.1实时进程带宽限制初始化3.2启动实时进程带宽监测定时器3.3累加实时进程消耗的带宽3.4查看实时进程带宽消耗情况3.5小结1.前言限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。2.概念Linux实时调度器(RTscheduler)的带宽限制,是指限制系统中实时进程占用的CPU时间的配额、比例。和实时进程打过交道的读
- 2021西邮LINUX兴趣小组纳新题浅析
大专er
c语言
4.考察位运算intmain(intargc,char*argv[]){charch='A';inti=65;unsignedintf=33554433;*(int*)&f>>=24;*(int*)&f=*(int*)&f+'?';printf("ch=%ci=%cf=%c\n",ch,i,*(int*)&f);return0;}*(int*)&f>>=24;这一行将f由无符号整数强制转换为整数,
- Linux系统如何手动清理缓存
长弓聊编程
linux
目录一.前言二.如何清理缓存一.前言我们在使用Linux系统的过程中,可能会出现系统缓存特别大,需要手动清理,那怎么清理呢,本文介绍一种方法。二.如何清理缓存在清理之前先使用命令free-h看一下当前的缓存情况是否需要清理。如果需要清理缓存,建议先使用命令sync将数据同步,然后执行echo1>/proc/sys/vm/drop_cachesecho2>/proc/sys/vm/drop_cach
- FreeRTOS入坑指南
大熊的瓜地
freertosstm32linuxfreertos
开发环境准备:一般平台都有自己的开发环境。例如nxp有mcuxpresso开发工具。这里我们推荐linux上的freertos模拟器。感谢GitHub-crazyskady/FreeRTOS_study:StudyforFreeRTOShttps://github.com/crazyskady/FreeRTOS_study贡献的代码,我们把代码拉到本地,增加一个tmp目录,就可以顺利编译通过。下面
- centOS:如何用手机或桌面客户端远程登录centos服务器
每日出拳老爷子
linuxcentos
查看SSH服务状态,端口等:systemctlstatussshd.service当安装Module总是说找不到时,做下面这步再重新安装即可:yuminstallepel-release安装centos桌面yum-ygroupsinstall“GNOMEDesktop”启动桌面startx如果上面还不行,就先Update再装桌面yumcheck-updateyum-yinstalllvm2devi
- RabbitMQ 入门教程
寂然如故
ruby开发语言后端
概述RabbitMQ是一个开源的消息代理和队列服务器,实现了AMQP0-9-1标准。它可以在完全不同的应用程序之间传递消息。本教程将带你从零开始学习如何使用RabbitMQ。环境准备1.安装RabbitMQ-在命令行中运行`sudoapt-getinstallrabbitmq-server`(Ubuntu)或者通过官方文档获取其他系统的安装指南。2.启动服务-运行`sudoservicerabbi
- RabbitMQ 入门教程
寂然如故
rabbitmq分布式
介绍RabbitMQ是一个开源的消息代理和队列服务器,实现了AMQP0-9-1标准。它支持多种消息协议,并且可以在各种环境中运行。安装与配置1.安装RabbitMQLinux(Ubuntu/Debian)```bashsudoaptupdatesudoaptinstallrabbitmq-server```Windows-下载并安装[RabbitMQServer](https://www.rabb
- Linux NTP 服务器时间自动同步配置
冰美式多加冰
[Linux基础运维]服务器linux运维云原生devops
本文以CentOS7.x为准,由于系统默认时间同步服务器都在国外在某种原因下无法及时同步时间,最好的选择就是设置国内时间服务器地址进行同步。不用想了,当然国内某些云厂商提供的免费时间服务器是首选开干1.编辑配置文件sudovim/etc/ntp.conf找到服务器地址位置添加阿里云免费NTP地址,大概是这样的19#Usepublicserversfromthepool.ntp.orgproject
- Java 如何实现一个简单 RabbitMQ 示例
青灯文案
中间件javarabbitmq
本文建立在你在Linux上完成安装RabbitMQ的基础上。1、生产者代码顾名思义,生产者是用来生产消息供消费者消费packagecom.wen.rabbitmq;importcom.rabbitmq.client.Channel;importcom.rabbitmq.client.Connection;importcom.rabbitmq.client.ConnectionFactory;imp
- Linux 命令行快捷键
sun007700
linux运维服务器
Linux命令行快捷键_linux删除一个单词-CSDN博客涉及在linux命令行下进行快速移动光标、命令编辑、编辑后执行历史命令、Bang(!)命令、控制命令等。让basher更有效率。常用Ctrl+左右键:在单词之间跳转Ctrl+a:跳到本行的行首Ctrl+e:跳到页尾Ctrl+u:删除当前光标前面的文字(还有剪切功能)Ctrl+k:删除当前光标后面的文字(还有剪切功能)Ctrl+y:粘贴Ct
- Ubuntn安装Xfce桌面环境
c12th
实用小技巧分享服务器经验分享ubuntu
原文:https://blog.c12th.cn/archives/11.html前言最近搞了台云服务器(2H2G)玩玩,其实一直想挂一些奇奇怪怪的东西到服务器?就装了Xfce,搭了个vnc来实现远程桌面。服务器系统为Ubuntu-20.04原教程源自Mintimate大佬效果展示教程准备工作去服务器安全组放行5901端口准备SSH连接工具或在宝塔终端连接服务器更新依赖包#更新/重载源sudoap
- Linux下Caffe、Docker、Tensorflow、PyTorch环境搭建(CentOS 7)
SnailTyan
文章作者:Tyan博客:noahsnail.com|CSDN|注:模型的训练、测试、部署都可以通过Docker环境完成,环境问题会更少。1.CUDA8.0安装CUDA8.0Configenvvariables#CUDAPATHexportPATH="/usr/local/cuda-8.0/bin:$PATH"#CUDALDLIBRARY_PATHexportLD_LIBRARY_PATH="/us
- CUDA 问题解决 —— CUDA+MPI出错:"mpi.h" No such file or directory
__Sunny__
CUDAcudac语言
在CUDA源文件里使用MPI时,编译出错Makefile文件:CUDA_INSTALL_PATH=/usr/local/cuda-8.0MPI_INSTALL_PATH=/opt/intel/compilers_and_libraries_2017.0.098/linux/mpi/intel64NVCC=$(CUDA_INSTALL_PATH)/bin/nvccMPICC=$(MPI_INSTAL
- 通过`ssh`同步`tmux`剪贴板内容
yann_qu
ssh运维tmuxxclip
通过ssh同步tmux剪贴板内容通过ssh连接远程服务器时,可以通过xclip同步tmux剪贴板内容。这需要在服务器上安装xclip,且需要在ssh远程连接时开启X11。此处附tmux剪贴板调用xclip的配置:#CopythecurrentbuffertothesystemclipboardbindC-crun-b"tmuxsave-buffer-|xclip-i-selclipboard;tm
- 如何在CentOS 7上设置代码服务器Cloud IDE平台
cukw6666
linuxjavapythonnginxcentos
介绍(Introduction)Withdevelopertoolsmovingtothecloud,creationandadoptionofcloudIDE(IntegratedDevelopmentEnvironment)platformsisgrowing.CloudIDEsallowforreal-timecollaborationbetweendeveloperteamstoworki
- Centos7-Linux下载安装Redis超详细图文教程
西风小焦
redislinux缓存centosjava
本文主要介绍如何在centos7服务器下安装redis已经启动运行的全部过程Centos7-Linux下载安装Redis图文教程安装步骤1.检查服务器上是否安装了gcc2.下载redis安装包上传服务器并解压3.解压文件并安装4.启动并运行服务5.设置开机自启动6.连接Redis问题7.测试连接8.关闭Redis9.总结安装步骤1.检查服务器上是否安装了gccredis是由C语言开发,因此安装之前
- 在Ubuntu 18.04上安装MySQL的方法
白如意i
linuxubuntumysqllinux
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。介绍MySQL是一个开源的数据库管理系统,通常作为流行的LAMP(Linux、Apache、MySQL、PHP/Python/Perl)堆栈的一部分安装。它使用关系数据库和SQL(结构化查询语言)来管理数据。安装的简短版本很简单:更新软件包索引,安装mysql-server软件包,然后运行附带的安全脚
- CentOS 7下载Redis详细步骤(必行)
闹心zero
redislinuxcentos
系列文章如果已经安装完毕,可以自定义启动redis,看此文章:Redis常用自定义配置(基于Linux环境)在CentOS7上将Redis下载到/usr/local目录并安装、启动、关闭的详细步骤如下:1.安装gcc编译器和make工具(已安装跳过)在CentOS7上安装Redis需要gcc编译器和make工具,如果没有安装,可以使用以下命令安装:sudoyuminstallgccmake2.下载
- Centos7 下载安装Redis
你家的张少
CentOS7redis运维centos
简介Redis是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sortedsets)与范围查询,bitmaps,hyperloglogs和地理空间(geospatial)索引半径查询。Redis内置了复制(replication),L
- Redis入门篇 - CentOS 7下载、安装Redis实操演示
ChineHe
Redisrediscentos数据库
文章记录了在CentOS7上,通过源码的形式,下载安装Redis的操作过程进入要安装Redis的目录cd/usr/local下载源码压缩包wgethttps://download.redis.io/redis-stable.tar.gz#不同版本可能地址不同下载完成后,使用ll命令检查,可以看到下载的压缩包:下载完成后,解压下载的压缩包tar-xzvfredis-stable.tar.gz解压完成
- 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独立出来,数据持