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

Java中继承、多态、重载和重写介绍(8)

时间:2014-08-01 02:59来源:网络整理 作者:网络 点击:
分享到:
这段代码的运行结果如下: s等于t,它们是同一个对象 这又是为什么呢?原因是这样的,对于常量来讲,它的值是固定的,因此在编译期就能被确定了,


这段代码的运行结果如下:
s等于t,它们是同一个对象
这又是为什么呢?原因是这样的,对于常量来讲,它的值是固定的,因此在编译期就能被确定了,而变量的值只有到运行时才能被确定,因为这个变量可以被不同的方法调用,从而可能引起值的改变。在上面的例子中,A和B都是常量,值是固定的,因此s的值也是固定的,它在类被编译时就已经确定了。也就是说:
Java代码
String s=A+B; 
等同于:
Java代码
String s="ab"+"cd"; 
我对上面的例子稍加改变看看会出现什么情况:
Java代码

public class StringStaticTest { 
  // 常量A 
  public static final String A; 
 
  // 常量B 
  public static final String B; 
 
  static { 
    A = "ab"; 
    B = "cd"; 
  } 
 
  public static void main(String[] args) { 
    // 将两个常量用+连接对s进行初始化 
    String s = A + B; 
    String t = "abcd"; 
    if (s == t) { 
      System.out.println("s等于t,它们是同一个对象"); 
    } else { 
      System.out.println("s不等于t,它们不是同一个对象"); 
    } 
  } 
} 
精彩图集

赞助商链接