发布网友 发布时间:2023-10-16 16:44
共3个回答
热心网友 时间:2024-11-15 17:00
当然有区别在函数初始化时用final声明了变量之后,变量值一旦被设定,就不能被改变.你后面再次对它赋值都不会被编译器接受.所以final通常用来声明常量热心网友 时间:2024-11-15 17:01
这涉及到引用类型的问题,String是引用类型;在类new时,程序就为成员变量分配了内存;'a'、'b'可以想象为类中两个实体(即内存空间),而(String a = "ab"; final String bb = "b"; String b = "a" + bb; )中;我打个比方,'a'的内存地址是1,'b'的内存地址是2;所以(String a = "ab")中变量a的地址为12(就是'a''b'的内存地址的结合);而(String b = "a" + bb;) 中变量b的地址也为12;所以(a==b)为true;( String a = "ab"; final String bb = getBB(); String b = "a" + bb; )中,方法getBB()的内存是3;所以变量bb指向的是内存地址为3的内存空间,此时变量a指向的还是内存地址为12的实体,而b指向的却是13;所以(a==b)为false这程序考查的是引用类型变量的理解热心网友 时间:2024-11-15 17:01
final String a=get(); 返回值可以改变final String a="b"; 值永不变