相关疑难解决方法(0)

Java字符串:"String s = new String("傻");"

我是一个学习Java的C++人.我正在阅读Effective Java,有些事让我很困惑.它说从不写这样的代码:

String s = new String("silly");
Run Code Online (Sandbox Code Playgroud)

因为它会创建不必要的String对象 但相反它应该写成这样:

String s = "No longer silly";
Run Code Online (Sandbox Code Playgroud)

好吧到目前为止......但是,鉴于这个课:

public final class CaseInsensitiveString {
    private String s;
    public CaseInsensitiveString(String s) {
        if (s == null) {
            throw new NullPointerException();
        }
        this.s = s;
    }
    :
    :
}

CaseInsensitiveString cis = new CaseInsensitiveString("Polish");
String s = "polish";
Run Code Online (Sandbox Code Playgroud)
  1. 为什么第一个陈述好吗?不应该

    CaseInsensitiveString cis = "Polish";

  2. 我如何使CaseInsensitiveString行为String如此上述声明是可以的(有和没有扩展String)?它是什么让它能够传递像这样的文字?根据我的理解,Java中没有"复制构造函数"概念?

java string

84
推荐指数
8
解决办法
17万
查看次数

java中字符串的可重用性?

String h = "hi";
Run Code Online (Sandbox Code Playgroud)

这里我们将字符串h引用到字符串文字hi.JVM有一个字符串文字池来存储字符串文字,所以我们可以重用字符串,因为它们是不可变的...

当我们说出reusable,这个的确切含义是什么时候?我们在谈论这个address吗?是从同一地址evey时间挑选出来的吗?

java

9
推荐指数
3
解决办法
3914
查看次数

标签 统计

java ×2

string ×1