- OpenCV03-高级-滤波与增强
坐吃山猪
OpenCVopencv计算机视觉人工智能
OpenCV03-高级-滤波与增强文章目录OpenCV03-高级-滤波与增强1-OpenCV平滑滤波1.均值滤波(`cv2.blur()`)2.高斯滤波(`cv2.GaussianBlur()`)3.中值滤波(`cv2.medianBlur()`)4.双边滤波(`cv2.bilateralFilter()`)总结2-OpenCV边缘检测1.Sobel算子(`cv2.Sobel()`)2.Canny
- html5贪吃蛇特点,简易html5贪吃蛇
雪小梨
html5贪吃蛇特点
1.[图片]E6~0%QPA46ER843UQJ$0Z`H.jpg2.[文件]snake.htmlThesnakegamefunctionlog(msg){console.log(msg);}Yourbrowsercannotsupporthtml5.this.onkeydown=function(e){varcode=e.keyCode;if(code==37)changeMove(3);if(
- AUTOSAR汽车电子嵌入式编程精讲300篇-智能网联汽车CAN总线-基于电压信号的CAN总线入侵检测系统设计与实现
格图素书
汽车网络
目录前言入侵检测系统研究现状入侵检测系统建模CAN总线入侵检测威胁模型DeepSVDD模型入侵检测系统方案设计挑战和解决方案差分信号的采集与处理差分信号的特征提取入侵检测模型的设计入侵检测系统性能评估实验环境设置不同的车辆状态不同数量的攻击目标不同发送频率的攻击消息DeepSVDD模型与SVDD模型的比较本文篇幅较长,分为多篇,文章索引详见智能网联汽车CAN总线-发展现状智能网联汽车CAN总线-智
- Android使用PorterDuffXfermode模式PorterDuff.Mode.SRC_OUT橡皮擦实现马赛克效果,Kotlin(3)
zhangphil
Androidkotlinandroidkotlin
Android使用PorterDuffXfermode模式PorterDuff.Mode.SRC_OUT橡皮擦实现马赛克效果,Kotlin(3)importandroid.content.Contextimportandroid.graphics.Bitmapimportandroid.graphics.BitmapFactoryimportandroid.graphics.Canvasimpor
- 地图书签功能
小小弯_Shelby
vue.js前端
主要逻辑:保存地图中心点、缩放级别、当前的地图图片与图层。{{item.markName}}添加书签删除取消添加保存import{queryByPage,addBookMark,updateBookMark,deleteBookMark}from'@/api/fisheryMap/bookmark'importhtml2canvasfrom'html2canvas'import{mapState}
- 前端canvas对象转成file对象
小小弯_Shelby
前端vue.js
importhtml2canvasfrom'html2canvas'exportdefault{methods:{//canvas对象转成file对象canvasToFile(){html2canvas(this.$parent.$refs['mapPanel'].$el,{width:this.$parent.$refs['mapPanel'].$el.clientWidth-600//heig
- 华为 Ascend 平台 YOLOv5 目标检测推理教程
Lunar*
目标检测华为YOLO目标检测
1.背景介绍随着人工智能技术的快速发展,目标检测在智能安防、自动驾驶、工业检测等领域中扮演了重要角色。YOLOv5是一种高效的目标检测模型,凭借其速度和精度的平衡广受欢迎。华为Ascend推理框架(ACL)是AscendCANN软件栈的核心组件,专为AscendAI加速硬件(如Atlas300I)设计,可实现高性能的深度学习推理。在本文中,我们将介绍如何基于华为AscendACL推理框架对YOLO
- 华为OD 机试3题(通过率60%,80%,75%)
大巨魔战将
算法华为java开发语言
importjava.util.List;importjava.util.Scanner;importjava.util.*;classPoints{intx;inty;publicPoints(intx,inty){this.x=x;this.y=y;}publicintgetX(){returnx;}publicvoidsetX(intx){this.x=x;}publicintgetY(){
- 华为CANN架构与Ascend C算子开发
z1931195
华为
CANN架构CANN(ComputeArchitectureforNeuralNetworks)是华为专为应对人工智能场景而推出的一种新型异构计算架构。在当前快速发展的AI技术背景下,CANN致力于提供一种高效且灵活的解决方案,以支持多种AI框架的应用。其设计不仅仅关注于上层应用的兼容性,同时也服务于底层AI处理器的优化和编程需求,发挥了承上启下的关键作用,成为华为昇腾AI处理器计算效率提升的核心
- 昇腾NPU推理YOLOV10目标检测(C++)
weixin_51923349
c++ffmpegopencv
1.准备工作基础环境:需要安装NPU固件驱动,CANN的包在昇腾官网下载,安装最新版就可以了。C++环境搭建链接:cplusplus/environment/catenation_environmental_guidance_CN.md·Ascend/samples-Gitee.com按照上面的链接,需要安装:presentagent,opencv,ffmpeg+acllite其中ffmpeg和o
- 小北的技术博客:探索华为昇腾CANN训练营与AI技术创新——Ascend C算子开发能力认证考试(初级)
Stitch .
C语言HUAWEI算法人工智能华为大数据HUAWEIAScendc语言NPU
前言哈喽哈喽友友们,这里是zyll~(小北)智慧龙阁的创始人及核心技术开发者。在技术的广阔天地里,我专注于大数据与全栈开发,并致力于成为这一领域的新锐力量。通过智慧龙阁这个平台,我期望能与大家分享我的技术心得,共同探索技术的无限可能。AscendC编程:小北的技术之旅近期,我深入研究了AscendC编程,并整理了一系列关于AscendC算子开发能力认证考试(初级)的题目及其答案。我希望这些内容能为
- 键盘录入学生信息
青木川崎
java
packageDay7;importjava.util.Scanner;importjava.util.ArrayList;/*键盘录入学生信息,保存到集合中。-循环录入的方式,1:表示继续录入,0:表示结束录入。-定义学生类,属性为姓名,年龄,使用学生对象保存录入数据。-使用ArrayList集合,保存学生对象,录入结束后,遍历集合。*/publicclassDemo03ScannerDemo0
- [Mac + Icarus Verilog + gtkwave] Mac运行Verilog及查看波形图
Xminyang
MacVerilogHDLmacosverilog
目录1.MAC安装环境1.1IcarusVerilog编译1.2gtkwave查看波形2.安装遇到的问题2.1macOScannotverifythatthisappisfreefrommalware2.2gtkwave-binisnotcompatiblewithmacOS14orlater3.运行示例3.1源代码3.2编译Verilog3.3生成.vcd文件3.3查看波形3.4脚本运行参考1.
- 《CPython Internals》阅读笔记:p221-p231
python
《CPythonInternals》学习第12天,p221-p231总结,总计11页。一、技术总结无。二、英语总结(生词:2)1.atatimeidiom.separately(单独地)inthespecifiedgroups(一次)。示例:(1)Icanonlydoonethingatatim(我一次只能做一件事)。(2)Wecarriedtheboxestwoatatimeupthestair
- linux出现bash: ./java: cannot execute binary file 问题的解决办法
w36680130
linux
linux出现bash:./java:cannotexecutebinaryfile问题的解决办法参考文章:(1)linux出现bash:./java:cannotexecutebinaryfile问题的解决办法(2)https://www.cnblogs.com/longshiyVip/p/4802339.html备忘一下。
- C++语法
叹完气改代码
c++开发语言
c++基础语法(.cpp)变量声明:变量声明类似初始化,注意声明范围,局部变量和全局变量,数组为组合类型输入输出:scanf:输入,淘汰不安全,%x:ASCLL码值类型,%s,数组类型scanf_s(“%s”,&str,10),输入数组,设定大小输入memset():按大小设定变量,_s设定范围更多参考帮助c语言中文网http://c.biancheng.net/cpp/biancheng/cpp
- -bash: ./imxdownload: cannot execute binary file: Executable file format error(可执行文件格式错误)
蓝天澈水
Linuxbashlinux开发语言经验分享arm
这可能是因为可执行文件不符合当前主机架构,因此需要在当前主机上再次编译生成可执行文件。1.复制把源代码文件复制到当前主机2.编译sudogccimxdownload.c-oimxdownload3.尝试将以上生成的可执行文件复制到.bin所在的文件夹。赋予权限下载到SD卡。$:sudochmod777imxdownloa$:./imxdownloadu-boot.bin/dev/sdbI.MX6U
- Spring boot面试题----Spring Boot核心注解有哪些
指尖下的技术
Java面试题springboot后端java
一、@SpringBootApplication功能:这是一个组合注解,相当于同时使用了@Configuration、@EnableAutoConfiguration和@ComponentScan三个注解。它是SpringBoot应用程序的入口点,通常添加在应用程序的主类上,例如:@SpringBootApplicationpublicclassMyApplication{publicstatic
- 【0x001E】HCI_Write_Inquiry_Scan_Activity详解
byte轻骑兵
#通信协议蓝牙HCI
目录一、命令概述二、命令格式和参数说明2.1.HCI_Write_Inquiry_Scan_Activity命令格式2.2.参数说明2.2.1.Inquiry_Scan_Interval2.2.2.Inquiry_Scan_Window2.3.示例三、响应事件及参数说明3.1.HCI_Command_Complete事件3.2.Status四、命令执行流程4.1.命令发起阶段(主机端)4.2.蓝牙
- MindIE+MindFormers推理方案指导
人工智能pytorch
组件介绍CANNCANN是什么异构计算架构CANN(ComputeArchitectureforNeuralNetworks)是昇腾针对AI场景推出的异构计算架构,向上支持多种AI框架,包括MindSpore、PyTorch、TensorFlow等,向下服务AI处理器与编程,发挥承上启下的关键作用,是提升昇腾AI处理器计算效率的关键平台。同时针对多样化应用场景,提供多层次编程接口,支持用户快速构建
- C#上位机通过CAN总线发送bin文件
电工小王(全国可飞)
WinForm学习c#服务器开发语言
让gpt生成一段代码用来把bin文件通过can总线发出去c#代码还是比较强大的,各种功能基本都是一两行代码就实现了,这里记录一下对这个代码的理解和解读主要代码如下,传入bin文件的地址即可将其从指定的can通道发送出去:publicvoidSendBINFile(stringbinFilePath){if(!File.Exists(binFilePath)){Console.WriteLine("
- Linux扫描磁盘
TS_forever007
linux服务器运维
Linux磁盘扩容后,用fldsk命令没有找到扩容后的盘,因为业务不能中断,所以暂时不能重启服务器来扫描磁盘。这里可以用如下方式扫描磁盘。首先,查找扫描ls/sys/class/scsi_host/然后执行echo‘-–-’>scanscsi_host下面有几个host就执行几次。echo“---”>/sys/class/scsi_host/host0/scanecho“---”>/sys/cla
- flutter背景贴图的困难总结
zjuter
flutter
需求:一张前景图,一张背景图。背景图可以放大缩小,可以平移。复盘一下整个烦闷之旅。困难一,保存成文件。遇到了几个十分难受的问题。现在回看是很简单,代码也没几行,可中间的思考过程是十分痛苦的,痛苦源自于,看起来很简单,可就是无法思考出来的挣扎。用canvas完成缩放,平移,这是最基本的常识。而一开始却偏偏没那么做。走上歧途的原因是,觉得canvas的大小是有前景图决定的,对前景图放大缩小,和对背景图
- 基于html5 canvas的引擎,基于 HTML5 Canvas 的 3D 渲染引擎构建生产管控系统
weixin_39760368
基于html5canvas的引擎
前言你们好,老郑我又回来了。这一期为你们带来一个很是好玩的demo,咱们制做一套本身的3D管道控制系统,运用了(http://www.hightopo.com)HT的Graph3dView组件经过对WebGL底层技术的封装,与HT其余组件同样,基于HT统一的DataModel数据模型来驱动图形显示。html效果图此为2D主界面:node此为3D界面的部分分段演示:浏览器因为gif上传有大小限制,因
- Canvas引擎:构建强大网页交互的利器
心之向往!
交互编程
Canvas引擎是一个功能强大的工具,用于在网页上创建动态和交互性的图形。它为开发人员提供了灵活的绘图功能,可以通过JavaScript代码控制和操作图形元素。本文将介绍几个常用的Canvas引擎,并提供相应的源代码示例。Three.js:精美3D渲染Three.js是一个流行的JavaScript库,提供了创建和渲染3D图形的功能。它建立在WebGL技术之上,并简化了使用WebGL的复杂性。下面
- 嵌入式学习
风华漫舞21
linuxc语言vim
#C语言基础#今天学习了输入输出函数(printf、scanf)、流程控制——选择结构(if语句)#输入输出函数#printf()函数printf()函数为格式化输入输出函数,其函数原型为:intprintf(constchar*format,...);调用方法为:printf("格式化控制字符串",输出参数列表)。格式化字符串中分为普通字符和占位符,其中普通字符原样输出;占位符用参数列表中的数值
- 华为昇腾AI处理器,atc模型转换和推理过程,华为的CANN库对标的是NVIDIA的cuda,所以在华为昇腾AI处理器上安装了CANN后,就可以直接使用pytorch了,以及推理框架(参考学习)
鼾声鼾语
嵌入式硬件学习stm32python数据库
1,模型转换atc模型转换模型转换如图参考链接如下:https://toscode.mulanos.cn/ascend/samples/tree/master/inference/modelInference/sampleResnetQuickStart/cpp2,推理运行,这里需要注意用到了infer,有点类似的pytorch对模型的加载使用model=InferSession(0,model_
- Nmap使用总结
黑客KKKing
网络工程师网络安全网络web安全安全
0X00背景nmap是测试中常用的网络探测工具,但是这回简单的操作,一直了解不深入,现在深入的了解和学习一下。在文章结构上,我把平时常用的内容提前了,以便再次查阅的时候,比较方便。0X01安装nmap可以到DownloadtheFreeNmapSecurityScannerforLinux/Mac/Windows下载最新版本(目前最新版本nmap-7.70)0X02实例部分实例下面给出一些实例,简
- Next.js 15 重大更新解析
作为React框架的佼佼者,Next.js的第15个版本带来了诸多激动人心的更新。这次更新重点优化了开发工作流程、性能表现,并加强了安全性。现在就来深入了解这些新特性。自动化升级工具Next.js15引入了全新的codemodCLI工具,大大简化了版本升级流程。只需要运行以下命令即可升级到最新版本:npx@next/codemod@canaryupgraderc该工具不仅能自动更新依赖,还会展示可
- How to use the Ubuntu
testtraveler
ubuntulinux
HowtousetheUbuntuIntroductionAsfarasIhavenoted,IwillforcemyselftowriteallmyblogsinEnglish.So,ifyouareluckyorunlucky,youhavereadthisblog,andIhopeitcanbehelpfultoyou.ReadinganEnglishdocumentcanbeatrick
- 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独立出来,数据持