string对象的2种创建方法比较
2009-11-14 09:44
381 查看
一、String的两种初始方法
1.String str1=new String("abc");
2.String str2="abc";
这两个方法都可以得到String的对象。
二、两种初始化String方法的区别
执行语句String str1=new String("abc")时,不管"String常量池"中是否存在字符串"abc",直接在堆内存中新建一个字符串"abc",然后将其赋给str1,并且在"String常量池"中创建"abc",故第一种方法共创建了2个对象(一个在堆内存上,一个在"String常量池"上)和一个引用变量。
执行语句String str2="abc"时,首先查看"String常量池"中是否存在字符串"abc",如果存在则直接将"abc"赋给str2,如果不存在则先在"String常量池"中新建一个字符串"abc",然后再将其赋给str2。
所以两种初始化的方法的区别是第一种方法不仅会在堆内存上建立相应的对象,还会在一块特殊的内存区域建立相应的对象,而第二种方法只在特殊的内存区域("String常量池")建String对象。
1.String str1=new String("abc");
2.String str2="abc";
这两个方法都可以得到String的对象。
二、两种初始化String方法的区别
执行语句String str1=new String("abc")时,不管"String常量池"中是否存在字符串"abc",直接在堆内存中新建一个字符串"abc",然后将其赋给str1,并且在"String常量池"中创建"abc",故第一种方法共创建了2个对象(一个在堆内存上,一个在"String常量池"上)和一个引用变量。
执行语句String str2="abc"时,首先查看"String常量池"中是否存在字符串"abc",如果存在则直接将"abc"赋给str2,如果不存在则先在"String常量池"中新建一个字符串"abc",然后再将其赋给str2。
所以两种初始化的方法的区别是第一种方法不仅会在堆内存上建立相应的对象,还会在一块特殊的内存区域建立相应的对象,而第二种方法只在特殊的内存区域("String常量池")建String对象。
相关文章推荐
- java中string对象的”equal“方法和“==”运算符 与 c#中的比较
- 1.import和include区别 2.NSLog 和printf区别 3.创建对象做的事情 4. 类和对象方法比较 5 匿名对象优缺点 6. 封装 7.作用域范围 8.id和instancetype 9.自定义构造方法规范 10.nil和Nil及NULL、NSNull区别
- 探究.net对象的创建,质疑《再谈Activator.CreateInstance(Type type)方法创建对象和Expression Tree创建对象性能的比较》
- 3.3OC视频笔记(respondsToSelect)3.4,3.5(字符串的创建与比较方法)(详解isEqualToString)(详解isEqual)
- 浅谈String创建对象与String的intern()方法
- java中创建String类型对象的两种方式以及在使用equals()和“==”两种方法时的区别
- JavaScript六种比较常见的原型创建对象的方法
- String字面值对象和构造方法创建对象的区别:String s = new String("hello")和String s = "hello";的区别
- Activator.CreateInstance 方法创建对象和Expression Tree创建对象性能的比较(构造函数含多参数的情况)
- String 对象的几种创建方法和它的特殊性
- 1105 Java中String字面值对象和构造方法创建对象的区别
- String字面值对象和构造方法创建对象的区别的两个有关==和equals的面试题。
- 5.编写一个程序,有两个类,其中类MAX中具有两个方法,方法名都是max,一个方法能够比较两个数的大小,另外一个方法能够比较三个数的大小。在另外一个类中创建对象,调用这两个方法,分别输出两组数:2、6
- 收集的比较全的automation服务器不能创建对象 异常原因和解决方法第1/2页
- 学习笔记之 equals() vs. == 和String对象的2种创建过程
- Activator.CreateInstance(Type type)方法创建对象和Expression Tree创建对象性能的比较(终结版)
- Javascript 创建对象的三种方法及比较【转载+整理】
- 再谈Activator.CreateInstance(Type type)方法创建对象和Expression Tree创建对象性能的比较(更新版)
- 字符串与正则表达式1、字符串 String类对象是不可改变的,对于String对象的重新赋值在本质上是重新创建了一个String对象并将新值赋予该对象,其方法ToString对性能的提高并非很显著。
- String字面值对象和构造方法创建对象的区别的两个有关==和equals的面试题。