- Android四大组件和六大布局
giaoho
安卓开发学习android安卓
Android四大组件和六大布局文章目录Android四大组件和六大布局Android四大组件Android六大布局1.LinearLayout(线性布局)2.RelativeLayout(相对布局)3.表格布局(TableLayout)4.网格布局(GridLayout)5.帧布局(FrameLayout)6.约束布局(**ConstraintLayout**)7.绝对布局(AbsoluteLa
- 【数字后端】- tcbn28hpcplusbwp30p140,标准单元库命名含义
tcbn28:代表工艺类型是台积电28nm工艺hpcplus:代表工艺平台是HPC+BWP:其中B代表标准单元的类型是“standard”basecell;W代表N-well工艺,放置在P-substrate上;P表示该cell使用的是P-typetransistorlayoutorientation;常见的还有BNP30:代表标准单元的Gatelength为30nm;p140:代表标准单元中po
- vue2 keep-alive不生效
Hong.1948
前端vue.js
问题描述路由中配置keepAlive、组件name唯一、标签包裹、路由嵌套,都检查了,keep-alive还是不生效,花了我两三个小时的时间折腾原因全局搜索标签,才发现居然有人在layout--componets--AppMain.vue里写了include……骚操作代码如下::include="['page1','page2','page3']"藏这么深的缓存写法,哎。解决方式include删掉
- TabLayout禁止选择
此间少年_hao
androidtablayout禁用选项卡tabviewtab
项目中有个页面上面是TabLayout下面是Listview,选择TabLayout的选项卡更新下面Listview里面的数据,在请求的时候想禁用TabLayout选项卡来避免用户频繁点击选项卡造成Listview的数据错误。如果只是调用TabLayout的setClickable方法是不起作用的,需要获取到每个选项卡的tabView然后再分别设置。LinearLayouttabStrip=(Li
- svelte笔记
艾小逗
web笔记
svelte特性编译过程使用场景创建项目问题1:build报错基本语法响应式变量if语句for循环await加载数据Event组件通信父子组件跨组件通信storeslot插槽生命周期tickonMountonDestroySvelteKit与Svelte的区别项目结构路由+page+page.svelte+page.js/ts+error+layout+layout.sveltelayout.se
- 硬件工程师入门与进阶全攻略
攻城狮-鹏哥
单片机单片机stm32dsp开发fpga开发51单片机mcu嵌入式硬件
一、硬件工程师成长阶段划分(一)能力成长四象限模型(二)成长阶段对照表阶段理论要求实践技能项目经验典型岗位入门期数电模电基础万用表/示波器使用简单电路焊接硬件助理工程师成长期单片机/嵌入式系统原理图设计/PCBLayout功能模块开发初级硬件工程师成熟期高速电路设计/EMC理论信号完整性分析完整产品硬件开发资深硬件工程师专家期前沿技术跟踪系统级方案设计复杂系统架构设计硬件系统工程师二、入门阶段:夯
- Android开发——不同布局的定位属性 与 通用属性
目录不同布局的定位属性1.线性布局(LinearLayout)2.相对布局(RelativeLayout)3.约束布局(ConstraintLayout)4.表格布局(TableLayout)5.网格布局(GridLayout)6.帧布局(FrameLayout)7.坐标布局(AbsoluteLayout)8.滚动布局(ScrollView)9.水平滚动布局(HorizontalScrollVie
- TI Sitara AM57x 多核SoC开发板(DSP + ARM)-性能及参数资料
Tronlong创龙
嵌入式ARM软硬件原理图规格资料平台AM5708嵌入式硬件嵌入式armfpga开发linux
创龙科技TL570x-EVM是一款基于TISitara系列AM5708ARMCortex-A15+浮点DSPC66x处理器设计的异构多核SoC评估板,由核心板和评估底板组成。核心板经过专业的PCBLayout和高低温测试验证,稳定可靠,可满足各种工业应用环境。评估板接口资源丰富,引出双路PRU百兆网口、千兆网口、USB3.0、CAMERA、GPMC、HDMI、PCIe等接口,方便用户快速进行产品方
- Android异步布局加载:AsyncLayoutInflater解析与实战优化
时小雨
性能优化androidkotlin
在Android开发中,UI线程阻塞是导致应用卡顿的主要原因之一。本文将深入探讨AsyncLayoutInflater的工作原理、使用技巧和性能优化策略,帮助你解决复杂布局加载的性能瓶颈。一、为什么需要异步布局加载?当应用启动或跳转界面时,布局加载时间直接影响用户体验:主线程阻塞:XML解析和View创建是CPU密集型操作复杂布局问题:深层嵌套或大量View导致加载时间过长冷启动延迟:Activi
- Nuxt.js学习(二) --- Nuxt目录结构详解、Nuxt常用配置项、Nuxt路由配置和参数传递...
庭前云落
前端---Nuxt.JSvuejavajavascriptreactjs
[TOC]1、Nuxt目录结构详解Nuxt项目文件目录结构|--.nuxt//Nuxt自动生成,临时的用于编辑的文件,build|--assets//用于组织未编译的静态资源入LESS、SASS或JavaScript|--components//用于自己编写的Vue组件,比如滚动组件,日历组件,分页组件|--layouts//布局目录,用于组织应用的布局组件,不可更改。|--middleware/
- android过渡动画
Sca_jie
androidandroidnginx运维
示例从左往右渐入渐出实现一在style文件中新建动画样式@anim/slide_in_right@anim/slide_out_left二在需要使用的地方调用这个style即可Dialogdialog=newDialog(this,android.R.style.Theme_Black_NoTitleBar_Fullscreen);dialog.setContentView(R.layout.di
- 安卓开发实现CoordinatorLayout+AppBarLayout+TabLayout+RecycleView 悬停效果 滑动列表tabLayout定位
鸿蒙小林
安卓开发java技术支持android安卓androidstudio
在安卓中实现CoordinatorLayout+AppBarLayout+TabLayout+RecycleView悬停效果滑动rv列表tablayout定位效果效果图在开发中要用到写个demo记录一下,有这个需求的同志也可以做个参考XmlViewprivateListlist;privateMainAdapteradapter;privateRecyclerViewrecyclerView;pr
- android launcher3,Android Launcher3 基本功能分析
众卡之友
androidlauncher3
AndroidLauncher3基本功能分析1,界面的布局,从上往下分别为:DeleteDropTarget(应用卸载区域,它是一个DropTarget)Workspace(页面容器,一个页面是一个CellLayout)PageIndicator(指示器,指示workspace当前位于第几个页面)Hotseat(底部图标区域)2,Launcher桌面图标的加载:LauncherApplicatio
- Launcher3源码分析(CellLayout)
pnying
CellLayout是workspace的屏幕。CellLayout中的一些重要属性:intmCellWidth;intmCellHeight;//每一个屏幕的行列数intmCountX;//每一行的item个数intmCountY;//每一列的item个数//item之间的距离intmWidthGap;//item之间的宽度intmHeightGap;//item之间的高度构造方法publicC
- Launcher3中的CellLayout 和ShortcutAndWidgetContainer 的联系和各自职责
CV资深专家
11_Launcher3android
1.CellLayout(网格布局容器)/***网格布局的核心容器,负责划分单元格和管理占用状态*/publicclassCellLayoutextendsViewGroup{privateintmCellWidth=100;//单元格宽度(像素)privateintmCellHeight=100;//单元格高度privateintmCountX=4;//列数privateintmCountY=4
- java 2 图形设计卷i awt_JAVA2图形设计卷I:AWT 源代码 zip
尹云亮
java2图形设计卷iawt
【实例简介】JAVA2图形设计卷I:AWT源代码zip是机械工业出版社的那本书的源代码非常难得是时候拿点好的东西给大家分享了【实例截图】【核心代码】JAVA2图形设计卷I:AWT(原代码)└──SourceCode├──partFive│├──animation││├──BackingStore.class││├──BackingStore.java││├──BulletinLayout.clas
- mcu secure boot 设计(一、Flash layout)
lwz070
单片机嵌入式硬件
Flashlayout此flash为MCU内部flash,需要硬件保护,防篡改和读取。1.PBL:为bootloader代码pbl中不支持远程升级,仅在APP中支持远程。pbl中可以支持uart和can协议升级。2.globalstate:{runflag//1:runimageA,2:runimageBImageAsecuritypassflag//1:pass,2:failImageBsecu
- Android-Layout Inspector使用手册
每次的天空
android学习
LayoutInspectorAndroidLayoutInspector是AndroidStudio中用于调试应用布局的工具启动方法:通过下载LayoutInspector插件,在“View-ToolWindows-LayoutInspector”或“Tools-LayoutInspector”启动。主要界面区域:ComponentTree:显示布局中视图的层次结构,帮助直观查看应用中的元素及其
- vue3 vs asp.net mvc
fyifei0558
开发语言
package.json≈.csprojpackage-lock.json≈packages.lock.jsonvite.config.js≈Startup.cs/Program.cs/configfilesindex.html≈_Layout.cshtmlpublic/≈wwwroot/
- Qt QML实现Windows桌面歌词动态播放效果
luoyayun361
QtQMLqtQt歌词播放效果
前言使用Qt5.15.2,QML实现简单的歌词动态播放效果。效果图如下:注:这里只是为了演示播放效果,并未真正加载音频进行播放。可以在此基础上进行扩展。正文关键代码QML部分importQtQuick2.15importQtQuick.Window2.15importQtQuick.Controls2.15importQtQuick.Layouts1.15importLyricsPlayback1
- Android 控件 - gravity 属性与 layout_gravity 属性
我命由我12345
Android-简化编程androidjavajava-ee安卓android-studio开发语言androidstudio
一、gravity属性1、基本介绍gravity属性用于控制View内部的内容的对齐方式作用对象是View内部的内容,例如,文本、子View等常用值说明left水平方向左对齐right水平方向右对齐start水平方向左对齐(RTL)end水平方向右对齐(RTL)top垂直方向顶部对齐bottom垂直方向底部对齐center_horizontal水平方向居中center_vertical垂直方向居中
- 第七节 移动端适配-视口与REM布局
泽泽爱旅行
csshtml前端css
以下是关于移动端适配中的视口与REM布局的全面解析,结合核心原理、实现方案、应用场景及优化策略,帮助开发者深入理解并高效实现响应式设计。一、视口(Viewport)的核心概念1.视口类型布局视口(LayoutViewport)浏览器默认的视口宽度(通常为980px),用于在移动端显示PC页面,需缩放才能适应屏幕。视觉视口(VisualViewport)用户当前可见的屏幕区域,随缩放或滚动变化。理想
- 文档处理控件Aspose.Words教程:在.NET中将多页文档转换为单个图像
CodeCraft Studio
控件文档管理AsposeAspose.Wordsword文档转换Word文档处理
在Aspose.Wordsfor.NET25.6版本中,我们引入了一项新功能,允许您将多页文档导出为单个光栅图像。当您需要将文档作为单个可视文件共享或显示时,此功能非常有用。Aspose.Wordsfor.NET25.6的新功能在25.6版之前,将多页文档保存为图像格式(例如PNG或JPEG)只会为文档的第一页创建一张图片。现在,您可以使用新的MultiPageLayout类将所有文档页面合并为一
- java工程师面试题大全-100%公司笔试题你都能碰到几个
javaPie
Javaid="cproIframe_u788097_1"width="336"height="280"src="http://pos.baidu.com/acom?adn=3&at=166&aurl=&cad=1&ccd=24&cec=UTF-8&cfv=16&ch=0&col=zh-CN&conOP=0&cpa=1&dai=1&dis=0&layout_filter=rank%2Ctabclo
- HarmonyOS NEXT仓颉开发语言实战案例:银行App
harmonyos-next
仓颉语言的商城项目基本开发结束啦,今天跟大家分享新的项目,一个银行app,说是新项目但是大家可能会有些眼熟,在ArkTS的教程中就写过这个项目。今天我们仓颉语言再写一遍,看看和ArkTS有什么不同。首先我们可以看到页面内容撑满了屏幕,所以需要设置沉浸模式,具体代码如下:windowStage.getMainWindow().setWindowLayoutFullScreen(true)接下来来到页
- 【OpenROAD-flow-scripts安装与测试】OpenROAD Klayout yosys
HNU_ZHAO
gitgithubc++
OpenROADFlow库用作使用OpenROAD工具的展示RTL-to-GDS的过程。存储库中的脚本build_openroad.sh将自动构建OpenROAD工具链。两个主要的文件夹:tools/:包含整个yosys和OpenROADApp的源代码(都通过子模块)以及流程所需的其他工具。flow/:包含通过流程运行设计的参考配置和脚本。它还包含公共平台和测试设计。这两个主要的文件夹相当重要,一
- 【数字ic后端】- 物理验证之LVS
LogicYarn
lvs
LVS:layoutversusschematic;版图和电路原理图比对确保所画版图与设计电路完全一致就是LVS工具要做的工作。检查内容:所有信号的电气连接关系是否一致器件类型尺寸是否一致LVS不是一个简中地将版图与电路原理图进行比较的过程,它需要分两步完成:抽取:根据LVS抽取规则,抽取出由版图所确定的网表文件需要注意的是,抽取的网表文件为晶体管级的SPICE网表,而电路为门级网表。因此该门级网
- wpf3d游戏引擎ProjectLayoutView实现
1.ProjectLayoutView.xaml.csusingPrimalEditor.Components;usingPrimalEditor.GameProject;usingPrimalEditor.Utilities;usingSystem.Windows;usingSystem.Windows.Controls;namespacePrimalEditor.Editors{//////P
- 从ConstraintLayout到Jetpack Compose:全面掌握Android UI设计与布局技术
Android洋芋
AndroidUI设计JetpackComposeMaterialDesign3声明式UI性能优化
简介**ConstraintLayout作为Android官方推荐的首选布局管理器,提供了灵活高效的界面构建方案,而JetpackCompose作为声明式UI框架,正在逐步改变Android开发范式。**本文将深入探讨ConstraintLayout的核心特性和优势,对比其他传统布局方式,分析MaterialDesign3Expressive设计语言的实现策略,并探索ConstraintLayou
- AppBarLayout+ CoordinatorLayout,ViewPager2为什么不会覆盖AppBarLayout
yzpyzp
android
这里的mViewPage为什么高度设置为match_parent,这不是把addBtn的布局区域都覆盖了吗?deepseek回答:我们正在分析一个Android布局文件的问题。用户的问题是:为什么mViewPage的高度设置为match_parent,这样不会覆盖addBtn的布局区域吗?首先,我们来看一下布局结构:整个布局是一个SmartRefreshLayout,里面包含一个Coordinat
- 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独立出来,数据持