zoukankan      html  css  js  c++  java
  • java中String初始化的两种方式

         字符串可能是不论什么程序语言中都会出现的对象,java中创建并初始化一个String对象,最常见的方式有两种: 
    String str=new String("XXX"); 
    String str="XXX";    

          二者看似同样,事实上有非常大的区别。

     
          前者是java中标准的对象创建方式,其创建的对象将直接放置到堆中。每调用一次就会创建一个新的对象。后者则会在栈中创建一个对象引用变量str,然后查看栈中是否存在"XXX",假设没有,则将"XXX"存放进栈。并令引用变量str指向它;假设已经有"XXX"。则直接令str指向它。这样充分利用了栈的数据共享长处,当然也可能是一个陷阱,对象非常有可能没有创建,仅仅只是指向一个先前已经创建的对象;而new()方法则能保证每次都创建一个新的对象。

     
          下述代码展示了二者的不同:


    输出结果: 
    true 
    false


  • 相关阅读:
    HDOJ 4747 Mex
    HDU 1203 I NEED A OFFER!
    HDU 2616 Kill the monster
    HDU 3496 Watch The Movie
    Codeforces 347A A. Difference Row
    Codeforces 347B B. Fixed Points
    Codeforces 372B B. Hungry Sequence
    HDU 1476 Sudoku Killer
    HDU 1987 How many ways
    HDU 2564 词组缩写
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/7054672.html
Copyright © 2011-2022 走看看