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;
}