gpt4 book ai didi

java - 最终引用变量的重要性

转载 作者:搜寻专家 更新时间:2023-11-01 01:55:59 25 4
gpt4 key购买 nike

String a="A";
String b="B";
final String c="C";
final String d="D";

String e=a+b;
String f=a+b;
System.out.println(e==f);//false

String g=c+d;
String h=c+d;
System.out.println(g==h);//true

为什么会这样?字符串对象创建在一个特殊的内存中,称为字符串常量池。但是这里final变量的意义是什么。

最佳答案

final 关键字可防止您重新分配 变量给字符串的不同实例。因此,虽然 String 本身是不可变的,但引用它的变量可以更改,除非明确标记为 final。

现在,我不太确定您在这里遇到的确切语义。但一般来说,由于变量是最终变量,c+d 现在可以被视为编译器常量(它永远不能有 "CD" 以外的值。该值是在编译时计算的,它本身可以被视为一个常量,被放入驻留字符串池中。

关于java - 最终引用变量的重要性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9083931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com