- iOS线程同步
Light413
iOS开发基础.png线程同步:即当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作,其他线程才能对该内存地址进行操作。所以这里同步应该不是一起、共同完成的意思,可理解为协调就是按预定的先后次序进行工作,好比:不要和我抢了,你先等会我做完了你在做。线程同步目的为了多个线程都能很好的工作,合理的访问系统资源不争不抢、和谐共处。iOS开发中常用的保持线程同步有以
- 【IOS开发基础系列】NSFetchedResultsController专题
Kevin_Junbaozi
fetchedresults控制器提供下面3种模式:1.不追踪模式:delegate设为nil.只提供基本的查询数据访问数据的能力。2.内存追踪模式:delegate有值,filecachename设为nil.controller负责监控结果集中的数据改变,针对改变调整排序。3.完全追踪模式:delegate和filecachename都有值。controller负责监控结果集中的数据改变,针对改
- 【IOS开发基础系列】指纹识别专题
Kevin_Junbaozi
1开发步骤1.1效果图本功能实现起来是很简单的,因为苹果都已经帮我们封装好了,只需要实现几个方法就可以了。实现效果图1.2实现过程1.首先引入指纹解锁必须的头文件LocalAuthentication/LocalAuthentication.h2.了解下主要的两个方法这个方法是判断设备是否支持TouchID的。-(BOOL)canEvaluatePolicy:(LAPolicy)policyerr
- iOS开发基础点滴--关于页面切换时候viewDidLoad, viewWillDisappear等调用顺序顺序
real潘
image.png我们都知道iOS中视图控制器controller的生命周期大概是这样的:当一个视图控制器被创建,并在屏幕上显示的时候。代码的执行顺序1、alloc创建对象,分配空间2、init(initWithNibName)初始化对象,初始化数据3、loadView从nib载入视图,通常这一步不需要去干涉。除非你没有使用xib文件创建视图4、viewDidLoad载入完成,可以进行自定义数据以
- IOS开发基础知识--碎片21
weixin_33895516
移动开发网络运维
1:[UIScreenmainScreen].scale知识点当屏幕分别为640x940时[[UIScreenmainScreen]scale]=2.0当屏幕分别为320x480时[[UIScreenmainScreen]scale]=1.02:如何正确的绘制1像素的线#defineSINGLE_LINE_WIDTH(1/[UIScreenmainScreen].scale)#defineSING
- iOS开发基础知识--碎片21
aaa1231722
移动开发网络运维
iOS开发基础知识--碎片211:[UIScreenmainScreen].scale知识点当屏幕分别为640x940时[[UIScreenmainScreen]scale]=2.0当屏幕分别为320x480时[[UIScreenmainScreen]scale]=1.02:如何正确的绘制1像素的线#defineSINGLE_LINE_WIDTH(1/[UIScreenmainScreen].sc
- IOS开发基础知识碎片-导航
weixin_33736832
移动开发xcode数据库
1:IOS开发基础知识--碎片1a:NSString与NSInteger的互换b:Objective-c中集合里面不能存放基础类型,比如intstringfloat等,只能把它们转化成对象才可以存放,就是类NSNumberc:NSDATA与NSString互转d:去除输入框空格(NSString也适用)f:IBOutlet,IBAction说明g:获取UIColor的RGBA值h:修改textFi
- iOS开发基础篇:查看APP存储的文件
younger_times
场景应用:当开发的时候,想要知道当前开发的APP中,存储有哪些文件,如何存储,存储的路径如何等状况。window->DevicesandSimlators选中想要查看的APP选中DownloadContainer将路径下载至你想要放的路径下:显示包内容完成
- 面试准备——iOS开发基础
tmachc
APP相关如何添加自定义字体到工程文件格式一般为ttf、ttc、otf。先将字体文件加到项目中,然后在工程plist中添加一项Fontsprovidedbyapplication,这是个数组,然后添加一项,string类型,值为字体文件的文件名,如黑体.ttf。在程序中可以打印[UIFontfamilyNames],检查是否添加成功,并确认字体名称。使用方法:[UIFontfontWithName
- ios开发基础学习笔记(十三)--autorelease(MRC)
miloluo
前言大家好,我是milo,今天这篇文章介绍了MRC下的autorelease,它的作用是能让我们不用再关心对象释放的时间,延长对象的生命周期,让我们不用再关心什么时候调用release,那么具体要怎么用呢?请接着往下看。什么时候用?让我们先看看下面这段代码,从表面上看,创建的对象都对应release了,但是我们忽略了一个问题,就是当我们创建一个myDog指针指向dog指针时,是没有进行retain
- IOS开发基础篇--CAShapeLayer的strokeStart和strokeEnd属性
yixiangboy
IOS开发UI篇ios进度条ShapeLayerstroke
一、案例演示最近有一个小需求,就是要做一个圆形进度条,大概样子如下:。在不知道有CAShapeLayer的strokeStart和strokeEnd属性的时候,我采取的方法就是实时的移除旧的CAShapeLayer然后重绘这个圆形的CAShapeLayer。显然这种方式的效率是不高的。后来在一次看别人Demo的时候,发现别人使用了CAShapeLayer的strokeStart和strokeEnd
- ios开发基础学习笔记(十四)--ARC
miloluo
前言大家好,我是milo,前面对那么多关于MRC的知识做了总结,今天终于过渡到ARC来了,其实学习就是深入浅出,懂得更多基础,能够让你在开发中都做到心中有数,不至于盲目,共勉。ARC简介ARC是ios5.0之后增加的新特性,全称AutomaticReferenceCounting(自动引用计数),不同于MRC手动管理内存的方式,ARC会让编译器会自动在适当的地方插入适当的retain、releas
- ios开发基础学习笔记(六)--单例模式
miloluo
本文转载http://www.cocoachina.com/ios/20171123/21300.html单例模式大概是设计模式中最简单的一个。本来没什么好说的,但是实践过程中还是有一些坑。所以本文小结一下在iOS开发中的单例模式。一、什么是单例模式按照四人帮(GOF)教科书的说法,标准定义是这样的:Ensuresa``classhasonlyoneinstance,andprovideaglob
- iOS开发基础知识
zl520k
1、百度地图在画路线时报BMK_SEARCH_PERMISSION_UNFINISHEDinfo.plist中必须添加Bundledisplayname2、xcode无法debug问题在target的buildsettings中preprocessorMacros=>DEBUG=1$(inherited)
- C语言回顾(四、字符串及其处理函数重写)——iOS开发基础
Zsk_Zane
C语言c语言字符串字符串处理函数iOS开发基础
说明:在学习UI高级知识之前,将利用最近十来天的时间回顾一下C语言,主要按照《C程序设计(谭浩强版)》来回顾。整理一些知识点(不是细节,知识个人觉得较重要或易忘的)以及挑一些课后题目或经典习题编写代码练习。C语言中字符数据应用较广,单独提出来总结!字符串及其处理函数重写1、字符串的实质就是数组的存储(1)C语言规定了一个“字符串结束标志”,以字符’\0’作为结束标志;(2)因此在程序中往往依靠检测
- iOS开发Objective-C学习笔记
study_&
iosobjective-c学习
来源:iOS开发基础班+就业班(100天完整版)之基础班2:Objective-C学习主要对需要注意的概念加以记录1.对象在内存中是如何存储的2.nil和NULL其中有一个问题#defineNULL((void*)0)具体啥意思,看到C-(void*)0与(void)0中解释成(void*)0就是将0强制转化为(void*)类型的指针,比如char*ch=(void*)0;//ch指向地址03.分
- iOS uni-app原生插件制作
Accepted_
照着文档和Demo挺顺利就调通了的。记录下制作和调用过程。阅读提示:1.本文章仅为iOS原生插件制作,无Android部分。2.面向有iOS开发基础的读者。3.我就是参照官方文档做的,如果按照官方文档能直接做好就不用继续看了。4.操作顺序和官方文档有几处不同,但不会影响最终结果。uni-app官方文档:uni-app原生插件(nativeplugin)开发指南uni-appiOS端官方文档:iOS
- ios开发基础学习笔记(十二)--#import和@class
miloluo
前言大家好,我是milo,我今天的这篇文章介绍的是#import和@class的区别。我不做特别深入的探究,仅仅是把它们的基本功能和使用做一个总结以便开发。#include说#import和@class之前,顺带说一说很少见的#include,我们只需要记住一个结论:包含c/c++头文件时用#include就这样,没了。import和@classimport会包含这个类的所有信息,包括实体变量和方
- 回答-阿里、字节:一套高效的iOS面试题①(结构模型)
zhouluyao
最近工作比较闲,想巩固一下自己的iOS开发基础知识,就回答一下阿里、字节:一套高效的iOS面试题,欢迎各位同行批评斧正!runtime是iOS开发最核心的知识了,如果下面的问题都解决了,那么对objc-runtime的理解已经很深了。runtime已经开源了,这有一份别人调试好可运行的源码objc-runtime,也可以去官网找objc4,以下回答用到的源码版本是objc4-756.2。结构模型1
- ios开发基础学习笔记(十一)--@property的使用
miloluo
前言大家好,我是milo,今天这篇文章讲的是@property在MRC和ARC下的使用和对比。@property的参数(1)线程方面 atomic(默认):几乎不用,低性能,仅能保证读写安全(通过互斥锁),并不能保证线程安全。 nonatomic:高性能,一般使用这个。(2)内存管理方面 1.MRC 1>assign(默认):基本数据类型、枚举、结构体(非OC对象),当2个对象相互引用,一
- ios开发基础学习笔记(九)--多对象内存管理(MRC)
miloluo
前言大家好,我是milo,上一篇讲到的是关于单个对象的内存管理,看起来是挺容易的,但是涉及到多对象并且对象之间有关联的时候,就会显得比较复杂,所以我们就接下去看看多对象内存的管理。多对象内存管理大家应该都知道QQ游戏的斗地主吧,其实多个对象的内存管理跟很多游戏的房间管理差不多。为了更加具体,下面我们通过代码的方式实现多对象的内存管理。上代码之前,一定要对下面几条规范心中有数。1、只要还有人在用某个
- iOS开发基础-C语言数据类型和运算符
落泪无痕的博客空间
第2章数据类型和运算符2.1注释程序注释是源代码的一个重要部分,对于一份规范的程序源代码而言,注释应该占到源代码的1/3以上;单行注释//;多行注释/*注释开始和*/注释结束,需要指出的是多行注释不可以嵌套,在/**/多行注释代码块内,不能再次使用/**/添加多行注释;2.2标识符和变量2.2.1分隔符Objective-C语言里的分号(;)、花括号({})、方括号([])、圆括号(())、空格、
- iOS开发基础-C语言数据类型和运算符
ios
第2章数据类型和运算符2.1注释程序注释是源代码的一个重要部分,对于一份规范的程序源代码而言,注释应该占到源代码的1/3以上;单行注释//;多行注释/*注释开始和*/注释结束,需要指出的是多行注释不可以嵌套,在/**/多行注释代码块内,不能再次使用/**/添加多行注释;2.2标识符和变量2.2.1分隔符Objective-C语言里的分号(;)、花括号({})、方括号([])、圆括号(())、空格、
- 【IOS开发基础系列】UILabel专题
Kevin_Junbaozi
主要参考链接:iOS学习5:UILabel的使用http://bbs.9ria.com/thread-244444-1-1.html一、初始化UILabel*myLabel=[[UILabelalloc]initWithFrame:CGRectMake(40,40,120,44)];[self.viewaddSubview:myLabel];二、设置文字①、设置默认文本NSString*text=
- iOS 开发工程师自学计划
全科
iOS开发工程师自学计划来自:http://quanke.name/预备1、文件管理器Finder2、iWork使用Numbers,Keynote,Pages3、Safari浏览器MacOs的使用,iWork的使用iOS开发基础1、Xcode、SVN、Git2、C语言是iOS开发的入门基础语言,本部分主要介绍C语言的基本语法,程序结构,以及指针的各种操作。为接下来Objective-C语言的学习打
- iOS 面试题 --- 100道
Tomboy_Anan
01iOS开发基础概念1.1什么是应用瘦身?在保证应用特性完整的前提下,尽可能地压缩和减少应用程序安装包的体积.也就是尽可能减少应用程序对用户设备内存的占用,从而减小用户下载应用程序的负担,可以通过减少本地大图的存放而采用打开应用后需要用到时下载的方式,减少第三方库的依赖,单一的功能尽量不使用第三方等1.2什么是响应者链?响应者链用于确定事件响应者的一种机制,其中的时间主要指触摸事件.响应触摸事件
- iOS开发基础随笔
放羊的王小二
1.内存可分为代码区、数据区、堆区和栈区·代码区用于存放二进制代码。·常量区用于存放常量,静态变量和全局变量。·堆区一般用来存放OC对象,比如通过alloc或new创建出来的对象,需要由程序员去创建和释放。·栈区一般是在方法内申请的,用于存放局部变量及方法的参数,方法结束时由系统释放。2.iOS多线程有哪几种?·pthread运用C语言可跨平台使用,线程的生命周期由程序员管理,但使用难度较大实际开
- 黑马程序员IOS开发基础班+就业班之基础班2:Objective-C学习笔记(上)
此生仗剑走天涯
ios
P1:OC概述Objective-C:简称OC,面向对象的C语言,OC的本质还是C语言,将C语言复杂的、繁琐的语法封装的更为简单,OC语言完全兼容C语言.P6:源文件后缀名源文件后缀名:.m,m代表OC中最重要的机制——消息机制.main函数:仍然是OC程序的入口和出口,int类型的返回值(main函数的返回值类型为int)代表程序的结束状态.P7:#import指令#import指令:以#号开头
- Objective-C(十六、内存管理,自动释放池,ARC,强指针,弱指针,方法族)——iOS开发基础
路漫漫其修远兮Wzt
转载自:Objective-C(十六、内存管理,自动释放池,ARC,强指针,弱指针,方法族)——iOS开发基础结合之前的学习笔记以及参考《Objective-C编程全解(第三版)》,对Objective-C知识点进行梳理总结。知识点一直在变,只是作为参考,以苹果官方文档为准~十六、内存管理相关知识(二)1、autorelease,自动释放机制(instancetype)autorelease;(1
- Flutter—iOS开发者快速上手
Louis_dm
FlutterforiOS开发者本文档适用那些希望将现有iOS经验应用于Flutter的开发者。如果你拥有iOS开发基础,那么你可以使用这篇文档开始学习Flutter的开发。开发Flutter时,你的iOS经验和技能将会大有裨益,因为Flutter依赖于移动操作系统的众多功能和配置。Flutter是用于为移动设备构建用户界面的全新方式,但它也有一个插件系统用于和iOS(及Android)进行非UI
- 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独立出来,数据持