龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

java初学者必须理解这几个问题(2)

时间:2014-10-21 11:35来源:网络整理 作者:网络 点击:
分享到:
复制代码 代码如下: public class Demo { private String s; … public Demo { s = "Initial Value"; } … } 而非 s = new String("Initial Value"); 后者每次都会调用结构器,生成新

复制代码 代码如下:

  public class Demo {
  private String s;
  …
   public Demo {
  s = "Initial Value";
  }
  …
  }
 

  而非
  s = new String("Initial Value");
 
后者每次都会调用结构器,生成新方针,功能低下且内存开支大,而且没有意义,由于String方针不行改动,所以关于内容一样的字符串,只需一个String方针来表明就能够了。也就说,屡次调用上面的结构器创立多个方针,他们的String类型特点s都指向同一个方针。
上面的定论还根据这样一个现实:关于字符串常量,若是内容一样,广州Java培训以为它们代表同一个String方针。而用关键词new调用结构器,总是会创立一个新的方针,无论内容能否一样。
至于为什么要把String类描绘成不行变类,是它的用处决议的。其实不只 String,许多Java规范类库中的类都是不行变的。在开发一个体系的时分,咱们有时分也需求描绘不行变类,来传递一组关联的值,这也是面向方针思维的表现。不行变类有一些长处,比方由于它的方针是只读的,所以多线程并发拜访也不会有任何问题。当然也有一些缺陷,比方每个不一样的状况都要一个方针来代表,能够会形成功能上的问题。所以Java规范类库还供给了一个可变版别,即StringBuffer。

精彩图集

赞助商链接