我们都知道,Java中的String类具有如下特性:String是一个不可变类,当直通过用字符串方式使用String对象时,Jvm实际上在内存中只存有一份,且存在字符串常量池中。当对字符串直接进行修改时(如直接联接另一个字符串常量),Jvm会首先去字符串常量池中查找是否已经存在此字符串,不存在则创建...
分类:
其他好文 时间:
2014-06-06 17:25:03
阅读次数:
281
NSSet与NSArray的区别:
NSSet里面存储的元素没有顺序,NSArray中的元素有顺序。 NSSet *s = [NSSet set]; // 创建一个空的Set,永远是空,不可变。
NSSet *s2 = [NSSet setWithObjects:@"jack",@"rose"...
分类:
其他好文 时间:
2014-05-30 10:04:17
阅读次数:
237
Hibernate使用对象标识符(OID)来建立内存中对象和数据库表中记录的对应关系,对象的OID和数据库的主键对应。为了保证OID的唯一性和不可变性,应该让Hibernate来为OID赋值。Hibernate通过标识符生成器来为OID赋值。一、指定标识符生成器:
使用元素的子元素来指定。Hi...
分类:
系统相关 时间:
2014-05-26 13:13:12
阅读次数:
428
一、什么是线程安全性
编写线程安全的代码
核心在于要对状态访问操作进行管理。
共享,可变的状态的访问 - 前者表示多个线程访问, 后者声明周期内发生改变.
线程安全性
核心概念是正确性。某个类的行为与其规范完全一致。
多个线程同时操作共享的变量,造成线程安全性问题。
* 编写线程安全性代码的三种方法:
不在线程之间共享该状态变量
将状态变量修改为不可变的变量
在访问...
分类:
编程语言 时间:
2014-05-26 05:31:40
阅读次数:
282
本文主要通过3个例子论述了final修饰基本类型变量及引用变量时的差异,特别是final修饰引用变量时要注意的安全问题,否则容易被黑客利用。最后从前面的例子及博客中讨论Java中String被设计成不可变类的深层次原因...
分类:
编程语言 时间:
2014-05-26 04:59:16
阅读次数:
347
在学习Java的过程中,我们时常会遇到这样一个概念——不可变类。本文旨在对此做一简单的解释。
1. 不可变类:创建该类的实例后,该实例的属性是不可改变的,java提供的包装类和java.lang.String类都是不可变类。当创建它们的实例后,其实例的属性是不可改变的。...
分类:
编程语言 时间:
2014-05-26 03:20:06
阅读次数:
339
#import NSInteger myCompare(id obj1,id obj2,void
*context){ //不分大小写进行升序排序 //return [obj1 caseInsensitiveCompare:obj2]; return
-[obj1 caseInsensitive.....
分类:
其他好文 时间:
2014-05-25 20:36:35
阅读次数:
250
第一、复制对象的基本概念
复制一个对象为副本,开辟一块新的内存来存储副本对象。
第二、如果一个对象想具备复制的功能,必须实现协议和协议
NSObject自带的常用的对象有:NSNumber、NSString、NSArray、NSDictionary、NSMutableArray、NSMutableDictionay、NSMutableString,copy产生的对象时不可变的,mutable...
分类:
移动开发 时间:
2014-05-22 12:34:46
阅读次数:
345
---------------------- IOS开发、Android培训、期待与您交流!
----------------------
一、OC数组
OC数组是一个类,它也分不可变数组NSArray和可变数组NSMutableArray。
1?不可变数组的创建
// 创建一个不可变数组,元素为一个OC字符串对象 @"小桥"
NSArray *arra...
分类:
其他好文 时间:
2014-05-22 07:30:56
阅读次数:
311
一、final1.final变量:
当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变。其初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构...
分类:
编程语言 时间:
2014-05-21 23:09:45
阅读次数:
296