Java中两种String对象创建和初始化方式比较

原创 2007年09月30日 20:10:00
字符串可能是任何程序语言中都会出现的对象,java中创建并初始化一个String对象,最常见的方式有两种:
  • String str=new String("XXX");
  • String str="XXX";
      二者看似相同,其实有很大的差别。

      前者是java中标准的对象创建方式,其创建的对象将直接放置到堆中,每调用一次就会创建一个新的对象;后者则会在栈中创建一个对象引用变量str,然后查看栈中是否存在“XXX”,如果没有,则将“XXX”存放进栈,并令引用变量str指向它;如果已经有“XXX”,则直接令str指向它。这样充分利用了栈的数据共享优点,当然也可能是一个陷阱,对象很有可能没有创建,只不过指向一个先前已经创建的对象;而new()方法则能保证每次都创建一个新的对象。
      下述代码展示了二者的不同:
/**
 *
 * 
@author Jeffery
 
*/

public class Main {

    
/**
     * 
@param args the command line arguments
     
*/

    
public static void main(String[] args) {
        String strA 
= "abc";
        String strB 
= "abc";
        String strAA 
= new String("abc");
        String strBB 
= new String("abc");
        System.out.println(strA 
== strB);
        System.out.println(strAA 
== strBB);
    }

}
输出结果:
true
false

相关文章推荐

java中创建String类型对象的两种方式以及在使用equals()和“==”两种方法时的区别

string 对象创建的两种方式 String aString="a"; String bString = new String("a"); 其中aString是通过直接赋值的方式创建,bStr...

java_String类的对象的两种赋值方式

a) String类的对象的两种赋值方式  b) 为什么String类的对象可以直接赋值 a) 1 类似普通对象,通过new创建字符串对象。String str = new String("Hel...

Java中String类的两种创建方式

Java中String类的一些发现和思考遇到的问题之前在网上浏览别人家的博客时,看到这样的小程序: public static void main(String[] args){ ...

java中通过放射机制创建对象的两种方式

import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Metho...

java多线程总结一: 线程的两种创建方式及优劣比较

1、通过实现Runnable接口线程创建 (1).定义一个类实现Runnable接口,重写接口中的run()方法。在run()方法中加入具体的任务代码或处理逻辑。 (2).创建Runnable接口...
  • Magina3
  • Magina3
  • 2011年12月02日 09:23
  • 924

java多线程总结一:线程的两种创建方式及优劣比较

1、通过实现Runnable接口线程创建 (1).定义一个类实现Runnable接口,重写接口中的run()方法。在run()方法中加入具体的任务代码或处理逻辑。 (2).创建Runnable接口...
  • li_yaya
  • li_yaya
  • 2012年02月14日 10:28
  • 267

Java线程的两种创建方式及优劣比较

1、通过实现Runnable接口线程创建 (1).定义一个类实现Runnable接口,重写接口中的run()方法。在run()方法中加入具体的任务代码或处理逻辑。 (2).创建实现Runnable...

java多线程总结一: 线程的两种创建方式及优劣比较

赠人玫瑰,手留余香.人生最大的快乐不在于占有什么而在于追求什么的过程. 转自:http://software.intel.com/zh-cn/blogs/2011/11/16/java-...

java多线程总结一:线程的两种创建方式及优劣比较

1、通过实现Runnable接口线程创建 (1).定义一个类实现Runnable接口,重写接口中的run()方法。在run()方法中加入具体的任务代码或处理逻辑。 (2).创建Runnable接口...

java多线程总结一: 线程的两种创建方式及优劣比较

1、通过实现Runnable接口线程创建 (1).定义一个类实现Runnable接口,重写接口中的run()方法。在run()方法中加入具体的任务代码或处理逻辑。 (2).创建Runnable接口...
  • pzw0416
  • pzw0416
  • 2011年11月22日 14:51
  • 391
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中两种String对象创建和初始化方式比较
举报原因:
原因补充:

(最多只允许输入30个字)