- clang编译代码报错:`_start': (.text+0x24): undefined reference to `main'
PandaMohist
前端linuxjavascript运维服务器
1.说明使用clang++10.1编译报错:/usr/bin/ld:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crt1.o:infunction`_start':(.text+0x24):undefinedreferenceto`main'clang-10:error:linkercommandfailedwithexitc
- C++栈内存管理:从原理到高性能编程实践
溟海.
c++c++开发语言
以下是一篇关于C++栈机制的原创技术论文框架及内容,结合语言规范、编译器实现与工程实践,包含创新性分析和实验验证:---**C++栈内存管理:从原理到高性能编程实践****摘要**本文深入剖析C++栈内存的分配机制、生命周期管理及优化策略。通过反汇编分析GCC/Clang编译器实现,验证栈帧结构与函数调用约定,提出基于现代C++特性的栈使用优化方案。实验证明,合理控制栈空间可降低30%内存访问延迟
- 浅析c++中函数调用其他文件中的模板函数出错
律白
C++
文章目录报错信息错误描述原因分析解决方案报错信息Undefinedsymbolsforarchitecturex86_64:"voidPrintNum(int)",referencedfrom:_maininmain-d2a7a9.old:symbol(s)notfoundforarchitecturex86_64clang:error:linkercommandfailedwithexitcod
- webrtc报错:Unable to load:src/third_party/usrsctp/BUILD.gn
、、、、南山小雨、、、、
webrtcwebrtc音视频ffmpeg
gngenout/linux--args=‘is_debug=truetarget_os=“linux”target_cpu=“x64”is_clang=falsetreat_warnings_as_errors=falsertc_include_tests=falsertc_use_h264=trueis_component_build=falseuse_custom_libcxx=falser
- Android车机DIY开发之软件篇(十二)编译Automotive OS错误(3)
勿忘初心91
车机DIYandroidarm开发嵌入式硬件经验分享
Android车机DIY开发之软件篇(十二)编译AutomotiveOS错误(3)问题[85%113538/132897]//hardware/interfaces/neuralnetworks/1.1/utils:neuralnetworks_utils_hal_1_1clang++src/Device.cpp[85%113539/132897]//hardware/interfaces/neu
- msys2下使用mingw64还是ucrt64好?
1号程序媛
wxWidgets开发问题大全C++开发大全msys2mingw64ucrt64
原本我是倾向于使用mingw64的。但是有一次看同事使用了ucrt64,就查了一下到底ucrt64是个什么鬼?这一查才知道,原来ucrt64才是windows下的正统编译环境,在这个编译环境下编译,能够保证编译程序在windows下是性能最好的。而mingw64和clang64之中,最差的居然是mingw64.这真是万万没想到啊。于是乎,我就果断换成了ucrt64,心理上觉着好像是编译的时候快了的
- C++ 是一种功能强大且灵活的编程语言,广泛应用于系统编程、游戏开发、嵌入式系统和高性能计算等领域。
Kingdom_Garden
C++开发语言c++开发语言
1.安装C++编译器要编写和运行C++程序,你需要一个C++编译器。常用的编译器有:GCC(GNUCompilerCollection):适用于Linux和macOS。Clang:适用于macOS和Linux。MicrosoftVisualC++:适用于Windows。你可以通过以下方式安装编译器:Linux:使用包管理器安装GCC,例如sudoapt-getinstallg++。macOS:安装
- 高阶开发基础——在WSL中快速部署一个极简的C++开发环境
charlie114514191
高阶开发公共基础部分c++C语言环境配置WSL项目构建
前言笔者最近打算深入的整理一份基于ArchWSL的最简单纯粹的C++配置。使用的方案是使用GCC作为编译器,CMake作为项目构建脚本,VSCode作为代码编辑器,使用clangd作为强大的语言服务器和检查器,使用clang-format整理格式化我自己的代码。如果你愿意跟我一起,请跟随我的步伐一一配置。概念理解和澄清环境配置部分笔者在学习的时候,常常发现一些人根本不理解下面的这些概念。甚至到了上
- 探索未来开发新纪元:**星辰大海——高效能全栈开发框架**
尚舰舸Elsie
探索未来开发新纪元:星辰大海——高效能全栈开发框架minemacsMinEmacs:anEmacsconfigurationframeworkfordailyuse项目地址:https://gitcode.com/gh_mirrors/mi/minemacs项目介绍在浩瀚的编程宇宙中,星辰大海犹如一颗璀璨的新星,以其独特的光芒照亮了全栈开发的道路。这是一款由一群热情洋溢的技术极客倾力打造的开源项目
- c语言null和nullptr,NULL和nullptr
Aaron Gary
c语言null和nullptr
在Clang6.0的stddef.h文件中可以找到NULL和nullptr的声明:早在1972年,C语言诞生的初期,常数0带有常数及空指针的双重身分。C使用preprocessormacroNULL表示空指针,让NULL及0分别代表空指针及常数0。NULL可被定义为((void*)0)或是0。C++并不采用C的规则,不允许将void*隐式转换为其他类型的指针。为了使代码char*c=NULL;能通
- 【OpenGL】使用 python + Qt + OpenGL 的现代渲染
无水先生
3D图形渲染和OpenGL编程pythonqt计算机图形学
伴随资源目录一、说明二、关于PyQt6.x2.1QOpenGLWidget详细说明2.2绘画技巧三、PyOpenGL四、OpenGL管线五、Python集成开发环境5.1Emacs配置5.2pycharm环境六、你好,OpenGL!七、QGL控件八、平截头体.svg九、定义几何9.1立即模式与保留模式9.2使用VBO定义Cube十、渲染立方体十一、渲染循环十二、添加旋转滑块一、说明在本教程中,我们
- AI赋能软件工程:领域特定语言的智能生成
前端
软件开发的世界日新月异,效率和成本始终是开发者们关注的焦点。为了应对日益复杂的软件项目,领域特定语言(DSL,Domain-SpecificLanguage)应运而生。DSL允许开发者使用更贴近特定领域问题的语言进行编程,从而提高开发效率并降低错误率。然而,DSL的开发通常需要专业的知识和大量的投入,这使得许多团队望而却步。幸运的是,AI代码生成器技术的崛起为我们提供了解决方案,让DSL的开发和应
- clang和gcc对比
三雷科技
深入C++编程入门开发语言c++cclangllvmgcc
clang和gcc对比一、基本概述二、背景与历史三、架构与模块化四、错误提示与静态分析五、性能与编译速度六、兼容性与多平台支持七、调试支持Clang和GCC都是广泛使用的C、C++编译器,它们各自具有独特的优势和特点,适用于不同的使用场景。以下是对两者的详细对比:一、基本概述ClangGCC定义一个C/C++、Objective-C/Objective-C++编程语言的编译器前端,采用底层虚拟机(
- 文本编辑器:纯国产的EverEdit是一个不错的选择
彩虹小黑馬
妙用编辑器编辑器vimnotepadsublimetext
1为什么选择了EverEdit注:本文来自一位编辑器老用户的体会。 世面上文本编辑器各类繁多,开源免费的编辑器更是多不胜数,既然有这么多免费的替代品,为什么还要EverEdit? 免费文本编辑器的顶流:神的编辑器(Emacs)、编辑器的神(Vim),这些都是非常强大的文本编辑器,但你会发现,日常工作中,特别是Windows办公环境下,使用这两款编辑器的人并不是太多,为什么?因为它们使用门槛太高
- ubuntu18.04安装grpc及使用grpc时遇到的问题总结
烟酒僧_
#安装pkg-configsudoapt-getinstallpkg-config#安装依赖文件sudoapt-getinstallautoconfautomakelibtoolmakeg++unzipsudoapt-getinstalllibgflags-devlibgtest-devsudoapt-getinstallclanglibc++-dev克隆grpc源码gitclonehttps:/
- vscode 极简Linux下 cmake c++开发环境
丘狸尾
vscodelinuxc++
安装这三插件vscode安装插件clangd后报错无法自动下载服务端Failedtoinstallclangdlanguageserver:FetchError:requesttohttps://api.github.com/repos/clangd/clangd/releases/latestfailed,reason:Failedtoestablishasocketconnectiontopr
- 什么是DSL和GPL
牧竹子
通识DSLGPL
DSL的全称是domain-specificlanguage,它在wiki上的定义如下:Adomain-specificlanguage(DSL)isacomputerlanguagespecializedtoaparticularapplicationdomain.与之相对的是GPL(general-purposelanguage)。DSL指的是针对特定应用领域而设计使用的计算机语言,而GPL指
- 什么是DSL
yimi1995
程序员的日常
转载:http://blog.csdn.net/dslztx/article/details/46682889DSL的全称是domain-specificlanguage,它在wiki上的定义如下:Adomain-specificlanguage(DSL)isacomputerlanguagespecializedtoaparticularapplicationdomain.与之相对的是GPL(g
- DSL
Davisxy
kotlinDSLKotlinokhttp
转载:摘抄自《Kotlin极简教程》-陈光剑DSL是什么DSL(Domain-SpecificLanguage,领域特定语言)指的是专注于特定问题领域的计算机语言(领域专用语言)。不同于通用的计算机语言(GPL),领域特定语言只用在某些特定的领域。比如用来显示网页的HTML语言,以及Emacs所使用的EmacLISP语言等。更加典型的例子是Gradle,它基于Ant和Maven,使用基于Groov
- 什么是DSL?
pumpkin84514
其它开发语言
DSL:领域特定语言的深入理解与应用指南1.什么是DSL?DSL(Domain-SpecificLanguage,领域特定语言)是一种专门针对特定问题领域设计的编程语言。不同于通用编程语言(如Java、Python等),DSL更加简洁易懂,通常用来表达特定领域的意图和规则,使编写、阅读和维护代码的过程更加高效和直观。DSL的主要价值在于简化问题的描述和解决方式,使得代码能够直接反映开发者的意图,而
- 【数据结构】快速排序与归并排序的非递归实现
盐酥鸡--
数据结构数据结构算法
个人主页:Yanni.—数据结构:DataStructure.C语言笔记:CLanguageNotesOJ题分享:TopicSharing目录前言:非递归基础思想快速排序非递归思路快速排序非递归实现归并排序的非递归思路归并排序的非递归实现前言:在之前学习了快速排序和归并排序,但算法就是用递归实现的,在企业的面试中,很多企业不会问你快速排序和归并排序递归算法的思想,而是非递归实现这两个排序,今天为大
- C语言要点归纳
ChenK21_idea
C/C++c语言
摘自:《C语言入门经典(第4版)》(美)lvorHorton.著杨浩.译北京.清华大学出版社【1】知识要点1C程序创建4个基本步骤:编辑,编译,链接,执行。编辑过程就是创建和修改C程序的源代码,我们编写的程序指令称为源代码。C编译器带一个编辑器,提供编写、管理、开发与测试程序的环境,有时也称为“集成开发环境(IDE)”。在UNIX或Linux上,最常用的的文本编辑器是vi,也可以使用emacs编辑
- vscode结合docker配置c++开发环境
骊山道童
vscodedockerc++
工具链构建工具:cmake编译器:gcc/clang调试器:lldbLSP后端:clangd可选:代码格式化:clang-format静态检查:clang-tidy包管理:vcpkg/apt环境管理:docker/vcpkg(manifest)vscode有用插件:https://juejin.cn/post/7051434324565950501基础环境使用clang配置环境;https://d
- 使Emacs支持语法分析器 bison
ManateeLazyCat
前几天写了一个flex.el,今天看了一下bison-mode.el的代码,也太陈旧了,顺手再写一个bison.elbisonmodebison支持bison的标记定义和规则代码区域的语法高亮.安装方法下载bison里面的bison.el放到~/elisp目录把下面的配置加入到~/.emacs中(add-to-list'load-path(expand-file-name"~/elisp"))(r
- isa 底层结构分析
远方竹叶
OC对象的本质在我们日常的开发中,会创建很多个自定义的对象,大部分是继承自NSObject,但是具体到源码实现,就看不到了,怎么办呢?编译器clang就要登场了ClangClang是一个有Apple主导编写,基于LLVM的C/C++/Objective-C的编译器主要用于底层编译,将一些文件输出为C++文件,可以更好的查看底层的结构以及实现逻辑探索在main函数中创建一个LCPerson类,添加n
- wsl vim无法复制到系统剪贴板,解决方法
u010020404
工作环境配置
工作原因现在改用windows了,有些不习惯,又不想使用虚拟机,于是尝试使用wsl。不知道会有多少坑。现在的坑是vim无法复制到系统的剪贴板里。具体可通过一下命令确认:$vim--version|grep"clipboard"-clipboard+keymap+printer+vertsplit+emacs_tags+mouse_gpm-sun_workshop-xterm_clipboard科学
- Mac 如何在终端玩游戏
极客点儿
#Mac
1.在Mac上打开终端2.输入命令:emacs回车PS:emacs是unix的texteditor,是richardstallman在1976年编写的3.按住ESC+x进入编辑模式俄罗斯方块:输入tetris回车贪吃蛇:输入snake回车4.除了这个游戏,还有好多进入目录:cd/usr/share/emacs/22.1/lisp/play/查看文件:ls5.退出emacsControl+xCont
- CMakeLists 模板
wq_151
问题解决办法计算机通识c++linux
CMakeLists中根据编译器gcc或者clang自适应设置sanitizer,根据cmake参数启用ASAN或者TSAN。项目目录结构project_root├──CMakeLists.txt├──include│├──problem.hpp│├──ceres_costfunctor.hpp│└──common.hpp├──src│└──problem.cpp└──test└──test_de
- Xcode 15(iOS17)编译适配报错
孟宪磊mxl
xcodemacoside
报错:Notemplatenamed'unary_function'innamespace'std';didyoumean'__unary_function'?解决:Xcode点击Pods点击BuildSettings点击Basic找到AppleClang-Preprocessing下的PreprocessorMacros添加:_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_
- 【C/C++】虚拟机实现:用C语言来写Java虚拟机
MAX在码字
CJavaC语言Java虚拟机虚拟机大神
前言:本篇文章除了能够让你了解到虚拟机的工作原理外,还可以让你了解到较低级别的编程过程。由于我喜欢在较低级别(Low-level)的应用中(编译器,解释器,解析器,虚拟机等等)工作,所以我觉得写一篇关于用C编程语言构建虚拟机的文章,是非常有必要的。我认为这篇文章除了能够让你了解到虚拟机的工作原理外,还可以让你了解到较低级别的编程过程。准备内容·使用的编译器类型:我正在使用的是clang,它是轻量级
- 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独立出来,数据持