NSString等Foundation框架提供的类的内存管理


栈               内存地址由高到低


堆               内存地址由低到高


栈区地址   大于     堆区地址


堆区地址   大于     数据区地址

 
int main(){


    定义字符串,字符串在内存常量区
如果你需要的字符串在常量区已经存在了,就不会分配新的内存空间
而是使用已存在的字符串的内存地址 



在内存常量区

NSString *s0 = @"aaa":
NSString *s1 = [[NSString alloc] init];
NSString *s2 = [NSString stringWithString:@"bbb"];
NSString *s3 = [[NSString alloc] initWithString:@"ccc"];



在内存堆区

NSString *s4 = [NSString stringWithFormat:@"eee"];
NSString *s5 = [[NSString alloc] initWithFormat:@"ddd"];

[s4 release];
[s5 release];



NSString *str1 = @"abc";
NSString *str0 = [[NSString alloc] init];
NSString *str2 = [NSString stringWithFormat:@"aaa"];
NSString *str3 = [NSString stringWithString:@"abc"];
NSString *str4 = [[NSString alloc] initWithFormat:@"aaa"];
NSString *str5 = [[NSString alloc] initWithString:@"abc"];



return 0;
}