- LeetCode 538.把二叉搜索树转换为累加树
南巷逸清风
LeetCodeleetcodec++python算法
题目描述给出二叉搜索树的根节点,该树的节点值各不相同,请你将其转换为累加树(GreaterSumTree),使每个节点node的新值等于原树中大于或等于node.val的值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键小于节点键的节点。节点的右子树仅包含键大于节点键的节点。左右子树也必须是二叉搜索树。示例1:输入:[4,1,6,0,2,5,7,null,null,null,3,n
- 【QT】-易错点笔记-2025-2-7
追心嵌入式
qt笔记开发语言
1,QListpList;为空不能append()追加,要先new,再用QListpList为空时,确实不能调用append()方法。原因很简单,QList是一个类对象,在C++中,指针本身并不代表它指向的对象。因此,当你有一个指向QList类型的指针时,必须确保它指向一个有效的QList实例。关键问题:如果pList是nullptr(空指针),那么你尝试调用append()时,程序会崩溃,因为n
- 打卡代码随想录第17天:LeetCode654.最大二叉树 、 617.合并二叉树、 700.二叉搜索树中的搜索、98.验证二叉搜索树
jingjingjing1111
算法数据结构
学习资料:代码随想录文中含LLM生成内容,不一定对654.最大二叉树力扣题目地址思路:不断寻找该部分的最大值去切割数组,不断递归,到在左闭右开区间不成立时,返回空节点。/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(null
- el-date-picker设置时间范围picker-options使用
贾宝玉单臂擒方腊
vue.jselementui前端
el-date-picker使用的时候遇到设置范围,例如七天范围配置项pickerOptions:{onPick:(time)=>{//选择开始时间未选择结束时间if(time.minDate&&!time.maxDate){this.timeOptionRange=time.minDate;}if(time.maxDate){this.timeOptionRange=null;}},disabl
- vue2前端使用图片展现视频,无法销毁请求
贾宝玉单臂擒方腊
前端音视频
实现思路,使用canvas绘制图像,然后使用动画帧刷新页面exportdefault{props:{info:{type:Object,default:()=>({url:'',index:''}),},},data(){return{currentImage:null,isFullScreen:false,canvas:null,ctx:null,canvasStyle:{height:'100
- 快慢指针【等分链表、判断链表中是否存在环】
山风wind
JAVA基础链表java网络
一、等分链表:找到链表的中间节点Java实现classListNode{intval;ListNodenext;ListNode(intval){this.val=val;this.next=null;}}publicclassMiddleOfLinkedList{publicListNodefindMiddleNode(ListNodehead){if(head==null){returnnul
- html页面自动刷新滚动,VUE实现HTML页面滚动,标题实时刷新
新职语
html页面自动刷新滚动
follow.gif源码currentcardis{{title}}v-for="(item,index)inlist":c-data="item":key="index">{{item}}footerexportdefault{data(){return{title:'hey',list:[1,2,3,4,5,6,7,8,9,10]}},mounted(){lettimer=nullwindow
- c# 简单工厂模式,实现TCP和485的切换
G鑫莹
c#简单工厂模式开发语言
1.先完成基类(父类)的代码,注意为抽象类:abstract;2.TCP和485两个通信类作为基类的派生类;3.工厂类实现两种通信方式的切换,下面附工厂类的代码,该类通常情况下是静态的,也可以不设。publicclassCommunicationFactory{//ACommunication是抽象父类staticACommunicationcommunication=null;//Communi
- qt作业day5
m0_58248149
qt开发语言
1:是进度条通过线程自己动起来头文件(mythread.h)#ifndefMYTHREAD_H#defineMYTHREAD_H#include#includeclassmythread:publicQThread{Q_OBJECTpublic:explicitmythread(QSlider*slider,QObject*parent=nullptr);voidstop();//停止线程prot
- 数据库事务,回滚到指定点 oracle java
xiaoyustudiowww
jvmjavaoracle
======oracle表sqlCREATETABLE"SMALL19RAIN"."R_TABLE_STU"("NAME"VARCHAR2(200BYTE),"AGE"NUMBER,"STU_ID"NUMBERNOTNULLENABLE,"DATARAIN"VARCHAR2(200BYTE))SEGMENTCREATIONIMMEDIATEPCTFREE10PCTUSED40INITRANS1MA
- 二叉树三种遍历方式——前序、中序、后序(C++)
六七_Shmily
#C++数据结构与算法分析c++算法开发语言
以下是使用C++实现的二叉树前序、中序和后序遍历的递归方法示例:#includeusingnamespacestd;//二叉树节点结构体structTreeNode{intval;TreeNode*left;TreeNode*right;TreeNode(intx):val(x),left(nullptr),right(nullptr){}};//前序遍历voidpreOrder(TreeNode
- Undefined 与 Null:究竟有何不同?
卓有成效的程序员
前端javascriptvue.js
想象一下,你正在参加一个聚会的组织工作。你负责准备一份名单,列出将要带来饮料和食物的人。现在,考虑以下两种情况:张三-你在名单上写下了张三的名字,但你还没有问他能带什么。在这种情况下,张三的贡献是“未定义(undefined)”,因为你知道他会带点什么,但你不知道具体是什么。李四-你联系了李四,而李四告诉你她不打算带任何东西。因此,你在名单上特意标记李四将带来“无(null)”。在JavaScri
- 【练习】【二叉树】力扣热题100 102. 二叉树的层序遍历
柠石榴
输入输出二叉树leetcode算法二叉树c++
题目二叉树的层序遍历给你二叉树的根节点root,返回其节点值的层序遍历。(即逐层地,从左到右访问所有节点)。示例1:输入:root=[3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]]示例2:输入:root=[1]输出:[[1]]示例3:输入:root=[]输出:[]来源:力扣热题100102.二叉树的层序遍历思路(注意事项)队列定义为指针类型核心定义队列根节
- 【练习】【二叉树】力扣热题100 230. 二叉搜索树中第 K 小的元素
柠石榴
二叉树输入输出leetcode算法二叉树c++
题目二叉搜索树中第K小的元素给定一个二叉搜索树的根节点root,和一个整数k,请你设计一个算法查找其中第k小的元素(从1开始计数)。示例1:输入:root=[3,1,4,null,2],k=1输出:1示例2:输入:root=[5,3,6,2,4,null,null,1],k=3输出:3来源:力扣热题100230.二叉搜索树中第K小的元素思路(注意事项)找第k小的元素,就是找升序排列中第k小的元素-
- leetcode142----环形链表
做程序员的第一天
软件开发工作基础知识链表数据结构算法C++
目录一、题目介绍二、解题思路2.1判断链表中是否有环2.1.1快慢指针法(Floyd判圈算法)2.2如何找到环的入口三、代码四、总结一、题目介绍题目链接:142.环形链表II-力扣(LeetCode)给定一个链表的头节点head,返回链表开始入环的第一个节点。如果链表无环,则返回null。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内
- 03.04
Unique_yt
命令模式
1.Widget.h:#ifndefWIDGET_H#defineWIDGET_H#include#include#include#includeQT_BEGIN_NAMESPACEnamespaceUi{classWidget;}QT_END_NAMESPACEclassWidget:publicQWidget{Q_OBJECTpublic:Widget(QWidget*parent=nullp
- 非常重要的动态内存错误和柔性数组2
chenyuhao2024
c++c编程语言柔性数组算法c语言
好了,我们继续来看,这篇文章过后我们会讲一下文件操作然后就进入初阶数据结构了。test3VoidGetMemory2(char**p,intnum){*p=(char*)malloc(num);}voidTest(void){char*str=NULL;GetMemory(&str,100);strcpy(str,"hello");printf(str);}这里很明显就能看到,这里引用的函数名是不
- VBA知识:Like运算符详解
銨靜菂等芐紶
程序mpPythonLinuxVBALike
Like运算符用于判断给定的字符串是否与指定的模式相匹配,其语法为:结果=Like其中:1.为文本字符串或者对包含文本字符串的单元格的引用,是要与相比较的字符串,数据类型为String型。2.数据类型为String型,可以使用一些特殊字符,其它的字符都能与它们相匹配,如下图1所示。图13.为Boolean型。如果字符串与指定的模式相匹配,则为True;否则为False。如果字符串或者模式Null,
- VBA学习:关于Like运算符知识
hdxx2022
编程语言Python开发语言python
Like运算符用于判断给定的字符串是否与指定的模式相匹配,其语法为:结果=Like其中:1.为文本字符串或者对包含文本字符串的单元格的引用,是要与相比较的字符串,数据类型为String型。2.数据类型为String型,可以使用一些特殊字符,其它的字符都能与它们相匹配,如下图1所示。3.为Boolean型。如果字符串与指定的模式相匹配,则为True;否则为False。如果字符串或者模式Null,则结
- 实现高亮关键字鸿蒙示例代码
本文原创发布在华为开发者社区。介绍本项目通过RegExp正则匹配实现了高亮关键字功能。实现高亮关键字源码链接效果预览使用说明安装完成后首先输入待匹配字符串,然后输入匹配字符串,可以发现下方显示的待匹配字符串中的匹配字符串高亮显示。实现思路使用正则表达式模式对字符串执行搜索。while((array=regex1.exec(str))!==null){indexList.push(array.ind
- 实现高亮关键字鸿蒙示例代码
本文原创发布在华为开发者社区。介绍本项目通过RegExp正则匹配实现了高亮关键字功能。实现高亮关键字源码链接效果预览使用说明安装完成后首先输入待匹配字符串,然后输入匹配字符串,可以发现下方显示的待匹配字符串中的匹配字符串高亮显示。实现思路使用正则表达式模式对字符串执行搜索。while((array=regex1.exec(str))!==null){indexList.push(array.ind
- Redis 缓存穿透、击穿、雪崩的 出现场景 与 解决方案
何怀逸
Redis缓存redis数据库
一、缓存穿透(CachePenetration)问题描述请求数据库中不存在的数据(如非法ID),导致请求绕过缓存直接击穿到数据库。典型场景:恶意攻击:频繁请求id=-1或随机不存在的用户ID。业务逻辑缺陷:未校验参数合法性(如非数字ID查询)。解决方案空值缓存将查询结果为null的请求也缓存,设置较短的过期时间(如5分钟)。publicObjectgetData(Stringkey){Object
- c语言笔记 野指针
我是大咖
c语言笔记c语言笔记开发语言
野指针的两种情况1.指针初始化的时候什么也不写;2.指针指向的堆空间被释放;char*p=malloc(20);free(p);p=null;这句话的意思是指针p指向malloc向系统申请的一块堆空间,然后这块空间现在被free释放掉了,但是指针p此时依旧是指向这块地址,由于该内存空间已经被系统回收了,此时我们指针p就是指向了一块非法的区域,变成野指针。野指针的情况就是指针指向一块非法区域,系统内
- 【数据库初阶】MySQL中表的约束(上)
bsefef
面试学习路线阿里巴巴数据库mysqlandroid
??博主首页:??专栏首页:数据库初阶??其它专栏:C++初阶|C++进阶|初阶数据结构亲爱的小伙伴们,大家好!在这篇文章中,我们将深入浅出地为大家讲解MySQL中表的约束帮助您轻松入门,快速掌握核心概念。如果文章对您有所启发或帮助,请别忘了点赞??、收藏??、留言??支持!您的每一份鼓励,都是我持续创作的源动力。让我们携手前行,共同进步!文章目录@[toc]`0.什么是表的约束``1.NULL&
- [MySQL初阶]MySQL(3)表的约束
水墨不写bug
MySQL初阶mysql数据库linux运维服务器MySQL表的约束
标题:[MySQL初阶]MySQL(3)表的约束@水墨不写bug文章目录**1.NULL/NOTNULL****2.DEFAULT****null\notnull与default辨析?****3.COMMENT**如何查看注释?**4.ZEROFILL****5.PRIMARYKEY**主键约束注意事项:**6.AUTO_INCREMENT****自增长字段注意:**索引的本质**7.UNIQUE
- React项目开发过程中需要注意避免re-render——React性能优化方案
winne雪
React前端性能优化React性能优化useMemomemoreacthook
前言下面相关测试例子我都写在了仓库中,可以直接拿来调试。首先我们要知道哪些方法会触发react组件的重新渲染(默认情况下)?1、setState方法被调用(hook中是useState中的setXXXX方法被调用)组件就会触发render,除了设置state为null的情况不会触发render。注意注意!!上面说的是方法被调用就会re-render,而不指的是state数据发生改变才会re-ren
- C++ 链表 增删查改
再路上1216
C++链表c++数据结构
#if1#include#include#includeusingnamespacestd;structListNode{intdata;ListNode*next;//结构体指针};voidListprintf(ListNode*phead){ListNode*cur=phead;while(cur!=NULL){coutdata"next;}coutnext!=NULL){tail=tail-
- 9.4 指针
️Carrie爱学习
程序员教程-读书笔记指针指针常量常量指针函数指针
文章目录指针定义指针与数组指针与函数指针与链表指针定义指针对象是内存单元地址,是被明确命名的指针变量。指针指向的对象可以用*运算符获取。指针可以指向已经有地址的变量,如例子中pa=&pb,其中pb是已经被分配地址的int型变量。也可以用NULL给指针赋值,表示不指向任何内存单元。或者使用malloc申请一个地址,用指针指向这个地址,malloc的地址不再使用后,要记得free,否则会造成内存泄漏。
- 【hot100】200岛屿数量
鱼力舟
HOT100深度优先算法
一、思路最外层两层遍历,目的是访问图中所有点位,然后在碰到为1的点位,即是陆地的点位采用dfs上下左右进行搜索,将整个岛屿全部置为0,然后搜索下一个点位。二、记忆注意深搜的终止条件判断if(r=nr||c=nc||grid[r][c]=='0')return;三、代码publicintnumIslands(char[][]grid){if(grid==null||grid.length==0)re
- LeetCode Hot100 二叉树的层序遍历
m0_67582670
leetcodeleetcode算法职场和发展
给你二叉树的根节点root,返回其节点值的层序遍历。(即逐层地,从左到右访问所有节点)。示例1:输入:root=[3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]]示例2:输入:root=[1]输出:[[1]]示例3:输入:root=[]输出:[]思路先入先出,用队列保存每层的节点,用保存的节点访问下一层。代码vector>levelOrder(TreeNod
- 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独立出来,数据持