- 浏览: 37980 次
- 性别:
- 来自: 杭州
最新评论
-
ahopedog2:
NSRange *range1; 应该写成NSRange r ...
objective-C笔记(六) -
DynamicMan:
你的意思是实现t_folder和t_role这两张表的多对多关 ...
关于多字段多对多关系的映射
文章列表
java多线程体系主要以包 java.util.concurrent 构建。
api主要囊括了 原子操作,锁,并发容器,线程池四大块的内容,有此构成了java的多线程体系
1.final关键字:final的使用有3种情况
(1)数据:在成员变量中用final修饰,表示了该数据的不变性,根据参数的类型又可以分为两种不同情况。如果该成员变量是基本类型,那么通过final修饰,该变量就不可以改变,如果加上static就表示了该成员变量,作为全局变量使用;如果该成员变量是引用类型,用final修饰,那么该引用不可再变,即引用的指向不可变,但是引用所指向的对象的值可以改变。
final数据的初始化在域的定义处或构造处进行,即final在使用前必须初始化。
final可以修饰方法中的参数,但是只能读不可修改。
(2)方法:方法用final修饰作用主要 ...
1.涉及基本类型参数的重载:如果传入参数类型为 char,byte,short ,有接收方法的参数列表类型为int,那么就会调用该int参数的方法。参数类型会向上提升。提升的顺序:byte-short-int-long-float-double,char直接提升为int。
2.finalize不能作为通用的清理方法,只有在垃圾回收时调用,垃圾不回收时就不会调用。在涉及到本地方法的使用中,可能会用到finalize来控制内存泄漏。
3.垃圾回收的工作机制,在《thinking in java 4th》中提到,较新的jvm 采用一种 停止-复制,标志-清除 自适应转换的方式。
...
1.数据存储的位置大致包括了以下4种:
(1).寄存器:存在与cpu中,所以访问的速度也是最快的。所空间的局限性,所以很少有能直接操作的机会。在java中不能对寄存器做任何操作,在C/C++中可以实现建议对寄存器进行操作。
(2).RAM 随机访问存储器:java中的大部分变量都存在与此,包括栈变量以及堆变量 。
(3).ROM 只读存储器:主要包括了静态常量池中的变量(字符串)
(4).硬盘,光盘等移动介质:以文件的形式存储,以流的形式读写。
2.java中的基本数据类型当是成员变量时都有一个默认值。
char \u0000(null) ...
主要是一些相关背景的了解:
Apache Tomcat 是apache软件基金会 (即ASF )下的一个开源项目,最初的设计目的是作为 sun公司推出的servlet容器的一种实现,sun公司将servlet的源代码捐献给ASF后,以次立项,推出第一个版本tomcat 3.x, 支持servlet2.2和jsp 1.1规范。在tomcat4.0版本开始,代码重构,实现都做了比较大的变动,并支持了新的servlet2.3和jsp 1.2规范。
tomcat原先是apache jakarta下的子项目,后被提升为顶级项目。tomcat包含了apache的许可证,是免费开源 ...
汉诺塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内(Hanoi)为越战时北越的首都,即现在的胡志明市;1883年法国数学家 Edouard Lucas曾提及这个故事,据说创世纪时Benares有一座波罗教塔,是由三支钻石棒(Pag)所支撑,开始时神在第一根棒上放置64个由上至下依由小 至大排列的金盘(Disc),并命令僧侣将所有的金盘从第一根石棒移至第三根石棒,且搬运过程中遵守大盘子在小盘子之下的原则,若每日仅搬一个盘子,则当 盘子全数搬运完毕之时,此塔将毁损,而也就是世界末日来临之时。
以三根柱子 ...
- 2009-11-23 14:37
- 浏览 1038
- 评论(0)
整个接口的使用分为两部分:
第一部分为和表对应的实体类的定义,下面以表TAB_MOA_PACKAGES为例,sequence以默认的SEQ_MOA_PACKAGES建立。对应的类如下:
@Table(tableName="TAB_MOA_PACKAGES") //可省略
@Seq(seqName="SEQ_MOA_PACKAGES") ...
- 2009-11-12 10:35
- 浏览 1179
- 评论(0)
一 核心接口类:DbCommon
1.核心方法
(1).
public static Configuration getXMLCon(Object obj,boolean isGetObj,String paramName,String paramValue)
主要完成从数据库中的对应表中取出xml格式(clob)的文本,转存成Configuration对象(org.apache.avalon.framework.configuration.Configuration),并返回。并根据需要,决定是否要持久化该表对应的对象。
(2).
public static voi ...
- 2009-11-09 15:19
- 浏览 1206
- 评论(0)
1.要使用一个对象必须经过两个过程:分配(allocation)和初始化(initialization)。
通过向类发送alloc消息从而分配一块内存来存储,并且将分配的内存初始化为0;通常init方法来完成初始化,如下一段为一个car对象的分配初始化的过程:
Car *car=[[Car alloc] init];
2.一般在init方法中,会有一句
if(self=[super init]){
...
使父类先完成自己的初始化操作,并且init方法可能返回完全不同的对象,此时就需要更新self对象。
*该赋值操作只影响init方法中的self。不影响方法以外的任何内容。
...
- 2009-10-29 17:24
- 浏览 1162
- 评论(0)
1.objective-c中,对象的生命周期通过 引用计数来标示,当使用 alloc,new方法或通过copy消息时,引用计数就会加一,通过retain方法可以为对象再增加引用计数,要减少对象的引用计数,可以向该对象发送一条release消息。要获得对象引用对象的引用数量时,可以向对象发送retainCount消息来获取数量。
当引用计数0时,会调用dealloc方法销毁对象。
2.对象的自动释放
使用NSAutoreleasePool对象,可以创建一个自动释放池,给对象发送一个autorelease消息时,就可以将该对象放入到池中,当池被销毁时(即池对象调用了release方法), ...
- 2009-10-22 14:42
- 浏览 2740
- 评论(0)
1.两种常用的结构体:
范围:
typedef struct _NSRange {
NSUInteger location;
NSUInteger length;
} NSRange;
用来表示字符串中字符的位置和数组中的元素范围。
location表示存放该范围的起始位置。
length表示该范围内的所含元素的个数。
例:在字符串"objective-C is a cool language"中,要表示cool的范围,可以用三种形式表示
NSRange *range1;
range1.location=17;
ra ...
- 2009-10-20 16:55
- 浏览 12360
- 评论(1)
1 .@class
创建一个向前引用,使类之间可以相互引用。比如,类a和类b需要相互引用,但是使用#import会出现编译错误,这时可以在A.h中添加@class B ,然后在B.h中添加@class A来解决。
注意:
a.类中对其他类的引用是以指针的形式实现,这样可以使用@class。
b.如果是继承关系就不能使用@class ,因为编译器需要知道父类的详细信息,并编译成功才能保证子类的编译成功,使用@class只能达到 "相信我,你最终能够了解这个名称的类" ,所以只能用#import的方式引入。
- 2009-10-15 15:39
- 浏览 1589
- 评论(0)
@interface Tire: NSObject
@end //Tire
@implementation Tire
-(NSString *) description{
return (@"i am a tire . i last a while");
}
1.description方法的作用类似于java中的 toString(),可以通过定义description方法来达到自定义NSLog输出的类的内容的目的。如:
Tire* tire=[Tire new]
NSLog(@"%@",tire);
输出的结果就是 ...
- 2009-10-15 14:07
- 浏览 2243
- 评论(0)
1.objective-C中没有多继承,但是可以通过其他特性来实现
2.fraglie base class problem(脆弱的基类问题):变量在内存中的位置是通过基地址+偏移量来确定的,偏移位置通过硬编码实现,如果向NSObject中添加其他实例变量,会改变所有实例变量的偏移位置。(已经通过间接寻址方式确定偏移量的位置解决)。
3.超类的访问
[super setFillColor:KBColor];
- 2009-10-14 10:57
- 浏览 2521
- 评论(0)