- K-means 算法核心原理
code 旭
AI人工智能学习算法kmeans机器学习
一、K-means算法核心原理1.算法目标将n个样本划分到k个簇中,使得每个样本到所属簇中心的距离平方和最小。2.数学公式目标函数(SSE,簇内平方误差):J=∑i=1k∑x∈Ci∥x−μi∥2J=\sum_{i=1}^k\sum_{x\inC_i}\|x-\mu_i\|^2J=i=1∑kx∈Ci∑∥x−μi∥2其中:CiC_iCi表示第iii个簇μi\mu_iμi表示第iii个簇的质心二、算法步
- android屏幕旋转生命周期,Activity、Fragment生命周期---横竖屏切换的生命周期
老K先生
android屏幕旋转生命周期
先贴出一张大家众所周知activity流程图onCreate():创建Activity调用,用于Activity的初始化,还有个Bundle类型的参数,可以访问以前存储的状态。onStart():Activity在屏幕上对用户可见时调用,但还不可与用户交互onRestart():在activity停止后,在再次启动之前被调用。onResume():Activity开始和用户交互的时候调用,这时该A
- SpringBoot下kafka配置生产者和消费者
种豆走天下
java面试开发语言
SpringBoot下kafka配置生产者和消费者KafkaResourceConfiguration.javapackageits.uts.kafkatest;importlombok.Data;importorg.apache.kafka.clients.consumer.ConsumerConfig;importorg.apache.kafka.clients.producer.Produc
- 【WPF】Slider滑动方法(INotifyPropertyChanged、ValueChanged )响应速度对比分析
wangnaisheng
WPFC#c#wpf
一、Slider基础用法在XAML中添加一个Slider控件,并设置其基本属性:Maximum="100"Value="50"Width="200"Height="30"HorizontalAlignment="Left"VerticalAlignment="Top"TickFrequency="10"TickPlacement="BottomRight"IsSnapToTickEnabled="
- Java线程池选型指南:高并发场景下的最优配置策略
程序猿小白菜
后端java生态圈java线程池
一、线程池核心参数大白话解析五大核心参数就像餐厅运营团队:核心线程数(corePoolSize):常驻员工(正式工),闲时也不裁员最大线程数(maximumPoolSize):最大用工数(正式工+临时工)队列(workQueue):候客区(排队等待的顾客)存活时间(keepAliveTime):临时工空闲多久后解雇拒绝策略(RejectedExecutionHandler):客满时的处理方案二、J
- Java函数式接口四部曲之Consumer
sundawei2016
java前端开发语言
Consumer是一个函数式接口,位于java.util.function包中。它表示一个接受单个输入参数并且不返回任何结果的操作。Consumer通常用于需要对输入参数执行某些操作但不产生返回值的场景。Consumer接口定义了一个抽象方法:accept(Tt):接受一个类型为T的参数,并对其执行操作。Consumerdisplay=System.out::println;display.acc
- LeetCode刷题实战522:最长特殊序列 II
编程IT圈
字符串算法leetcodejava数据结构
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选!今天和大家聊的问题叫做最长特殊序列II,我们先来看题面:https://leetcode-cn.com/problems/longest-uncommon-subsequence-ii/Givenanarrayof
- c++计算n的阶乘(用循环和递归)
Absinthe_苦艾酒
c/c++c++算法数据结构
1.循环//计算阶乘#includeusingnamespacestd;intfct(int*p){intsum=1;while(*p>=2){sum*=((*p)--);}returnsum;}intmain(){cout>n;coutusingnamespacestd;//使用递归计算阶乘intfct(intn){if(n==1)return1;elsereturnn*fct(n-1);}in
- 神经网络中梯度计算求和公式求导问题
serve the people
日常琐问神经网络机器学习算法
以下是公式一推导出公式二的过程。表达式一∂E∂wjk=−2(tk−ok)⋅sigmoid(∑jwjk⋅oj)⋅(1−sigmoid(∑jwjk⋅oj))⋅∂∂wjk(∑jwjk⋅oj)\frac{\partialE}{\partialw_{jk}}=-2(t_k-o_k)\cdot\text{sigmoid}\left(\sum_jw_{jk}\cdoto_j\right)\cdot(1-\tex
- Python函数定义详细教程:参数类型详解,报错UnboundLocalError怎么解决。
筱涵哥
Python基础入门python
一、血泪教训:我在函数定义中踩过的那些坑1.1变量作用域的幽灵现象#错误示例:试图修改全局变量total=0defcalculate_sum(a,b):total+=a+b#引发UnboundLocalErrorreturntotalprint(calculate_sum(3,5))#报错!报错原因:函数内部修改全局变量需显式声明global1.2可变默认参数的离奇行为#错误示例:使用可变对象作为
- MySql--多表查询及聚合函数总结
小五Z
Mysqlmysql数据库数据结构
建议先阅读MySql--增删改查表设计总结-CSDN博客目录建议先阅读MySql--增删改查表设计总结-CSDN博客一、聚合函数二、GROUPBY分组查询HAVING子句三、联合查询(表连接查询)1.内连接2.表连接的执行过程3.外连接4.自连接5.子查询6.合并查询四、SQL语句中各部分的执行顺序一、聚合函数1.COUNT(列||*):统计结果的个数。2.SUM(列):求和。3.AVG(列):求
- js基本功(五)
码林鼠
javascript前端开发语言
rest参数Rest参数是ES6引入的一个特性,用于将函数调用时传递的不定数量的参数收集到一个数组中。functionsum(...numbers){returnnumbers.reduce((total,num)=>total+num,0);}console.log(sum(1,2,3,4,5));//输出15在上述代码中,…numbers会将所有传入的参数收集到一个名为numbers的数组中。
- 蓝桥杯——连续子序列的个数
菜鸟0088
java算法数据结构
一、6127样例给的那么当按照顺序进行遍历直到i=3(最后一次循环)才满足要求,那么进入while(sum>=m)循环count=count+4-3=1(这里由于是最后一个元素,后面不会再由元素,所以是1,下边我会细说)sum=sum-res[j]就是从前面再减去看看是否符合要求即127符合的话再进行下一轮循环,这里sum为10,可以再进行下一轮循环。下一轮同上,count再加1,sum=sum-
- leetcode 2024春招冲刺百题计划——动态规划+数论
云深沐子兮
leetcode算法
不打算充钱第一次用java写,有点不熟悉。。。还是用c+stl爽。没写完,不定期更新。在忙八股,先发出来吧,万一有人需要呢先更数论和动态规划目录动态规划篇数论篇动态规划篇70.爬楼梯一眼斐波那契数列。想更进一步可以找一下矩阵写法。classSolution{publicintclimbStairs(intn){if(n==1)return1;elseif(n==2)return2;intsum=0
- 每日一题蓝桥杯P8772 [蓝桥杯 2022 省 A] 求和 题解c++
wen__xvn
洛谷蓝桥杯蓝桥杯c++职场和发展
#includeusingnamespacestd;intmain(){intt;intn;cin>>n;longlongsum=0;longlonghpf=0;longlongpfh=0;for(inti=0;i>t;pfh+=t*t;hpf+=t;}hpf=hpf*hpf;sum=(hpf-pfh)/2;cout<<sum<<endl;return0;}
- 【每日学点HarmonyOS Next知识】对话框去掉圆角、数组拼接、自定义对话框依附某个控件、平移动画、页面栈管理
轻口味
每天学点HarmonyOSNext知识harmonyos华为harmonyosnext
1、HarmonyOSCustomDialog怎么去掉左右和底部的透明以及圆角?CustomDialog怎么去掉左右和底部的透明以及圆角设置customStyle为true即可开启使用自定义样式。设置borderRadius为0去掉圆角属性。属性用法参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/t
- docker-compose部署项目
后端
Docker容器访问挂载文件权限问题问题描述在使用docker-compose部署项目时,yaml文件如下:version:'3'services:purchasing-contract-consumer:image:my-registry.com/consumer:latestenvironment:-TZ=Asia/Shanghai-app_env=prodrestart:alwayswork
- 【C++】树状数组的使用、原理、封装类、样例
软件架构师何志丹
#算法基础c++数据结构树状数组求和异或和最值动态开点
前言本博文代码打包下载C++算法与数据结构分类汇总最常见的应用有序集合包括若干整数,求小于x的数量。autoit=s.lower(x),it-s.begin(),这个时间复杂度是O(n)。由于查询和插入交替进行,故不能用向量。树状数组的用途令原始数组是a,长度为n。基础操作一,求前缀和。即∑j:0ia[j]\sum_{j:0}^ia[j]∑j:0ia[j]。时间复杂度:O(logn)。二,a[i]
- Redis+Guava(二级缓存,Caffeine)
yan0219n
工具redisguava缓存
/***本地缓存*/privateCachelocalCache=CacheBuilder.newBuilder().concurrencyLevel(16)//并发级别.initialCapacity(1000)//初始容量.maximumSize(1000)//缓存最大长度.expireAfterAccess(1,TimeUnit.HOURS)//缓存1小时没被使用就过期.build();Ca
- LeetCode Hot 100
PinkandWhite
leetcode算法java
1.两数之和暴力解法:时间/空间复杂度O(N²),O(1)classSolution{publicint[]twoSum(int[]nums,inttarget){for(inti=0;ihashRes=newHashMap();for(inti=0;i>groupAnagrams(String[]strs){Map>res=newHashMap>();for(Stringstr:strs){ch
- 使用deepseek生成一个网页的简单架构
习学来起我扶
pythonhtml
python代码如下:fromflaskimportFlask,render_template,jsonifyapp=Flask(name)#定义要调用的Python函数defcac_sum():“”“示例计算函数”""str_print=‘现在打印这个了,哈哈哈哈哈哈’return{“result”:str_print}#返回计算结果@app.route(’/’)defindex():retur
- AtCoder ABC E - Min of Restricted Sum 题解
和旋_菾律
算法数据结构
根据输入考虑建图,x、y两个下标的边权为z,建无向图这样我们可以得到一些连通块。根据异或和的性质,对于每一个连通块,我们只要知道其中一个点的点权就能推出所有的点权。最小值考虑贪心,针对当前连通图所有点权二进制数的每一位,假如这一位是1,要想保留更多的1就让别的本位为1的数的这一位是0,于是统计每一位1的个数,若1比0多则起点这一位为1,这样保证了0多。判定可行性:深搜跑一边,如果遍历过了但是点权不
- RocketMQ的Consumer源码分析
foolishboy_w
后台技术rocketmqjava-rocketmqrocketmqjava
RocketMQ的Consumer源码分析文章目录RocketMQ的Consumer源码分析Consumer的Rebalance流程Consumer的消息拉取流程Consumer的Offset管理这一节我们分析RocketMQ的Consumer的启动流程以及消息处理过程。下图是RocketMQ启动流程、Rebalance、以及消息拉取处理的较为完整的流程图。##Consumer的启动流程Consu
- LeetCode刷题之python解法(持续更新)
gong_wanyi
Python
1.TwoSum4行classSolution:deftwoSum(self,nums:List[int],target:int)->List[int]:d={}fori,ninenumerate(nums):ifnind:return[d[n],i]d[target-n]=iO(N)时间效率的快速解法,用字典记录{需要的值:当前索引}2.AddTwoNumbers5行#Definitionfor
- BOSMA博冠携8K讯道方案亮相2024 UWA SUMMIT暨世界超高清视频产业联盟会员大会
8K超高清
音视频智能硬件人工智能媒体科技网络
11月28日至30日,2024UWASUMMIT暨世界超高清视频产业联盟会员大会在深举办,本次大会以“智享未来共创菁彩”为主题,旨在探索全球超高清产业发展新方向、技术创新动态。大会聚合超高清产业资源和各方面力量,推进超高清视音频技术创新和产品应用,培育超高清视音频新业态、新模式,打造国际先进的超高清视音频产业生态,促进行业交流合作。同期举办超高清产业生态体验展,呈现会员单位及产业伙伴的创新应用成果
- 汇编_27-实验10.3
芦苇King
04_汇编_01汇编
1.题目题目:数值显示功能:将word型数据转变为表示十进制形式的字符串,字符串以0位结尾符参数:(ax)=word型数据ds:si指向字符串的首地址2.字符在内存中默认被保存为16进制assumecs:code,ds:data,ss:stackdatasegmentdw1234dataendsstacksegmentstackdb128dup(0)stackendscodesegmentstar
- Kafka、RabbitMQ、RocketMQ的区别
种豆走天下
kafkarabbitmqrocketmq
Kafka、RabbitMQ、和RocketMQ都是广泛使用的消息中间件,它们各自有不同的特点、架构设计和应用场景。下面是它们之间的主要区别:1.架构设计Kafka:Kafka是一个分布式流处理平台,最初由LinkedIn开发,主要用于处理大规模数据流。Kafka的架构包括Producer(生产者)、Consumer(消费者)、Broker(代理)和Topic(主题)。Kafka使用分区和副本来提
- Leetcode 3473. Sum of K Subarrays With Length at Least M
Espresso Macchiato
leetcode笔记leetcode3473leetcodemediumleetcode周赛439leetcode动态规划
Leetcode3473.SumofKSubarraysWithLengthatLeastM1.解题思路2.代码实现题目链接:3473.SumofKSubarraysWithLengthatLeastM1.解题思路这一题我的思路上同样走的是动态规划的思路。我们考察每一个位置上的字符,它有三种状态:作为一个子串的开头位置(此时要求后续至少有m-1个字符,且它们必然也都属于该子串)作为上一个长度至少为
- Doris存储的逻辑架构和物理架构
fzip
Doris数据湖架构Doris
ApacheDoris的存储架构分为逻辑架构和物理架构两个层面,其设计核心围绕数据分布与查询优化展开。以下为详细解析:一、逻辑架构1.表结构分层逻辑表(LogicalTable)用户直接操作的抽象表,支持多种数据模型:明细模型(DuplicateKeyModel):原始数据存储,无预聚合,适合日志类场景。聚合模型(AggregateKeyModel):写入时按维度预聚合(如SUM、COUNT),适
- mysql 中abs函数_Mysql常用函数
weixin_39863759
mysql中abs函数
本文内容:mysql函数的介绍聚集函数avgcountmaxminsum用于处理字符串的函数合并字符串函数:concat(str1,str2,str3…)比较字符串大小函数:strcmp(str1,str2)获取字符串字节数函数:length(str)获取字符串字符数函数:char_length(str)字母大小写转换函数:大写:upper(x),ucase(x);小写lower(x),lcase
- 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独立出来,数据持