黑马程序员技术交流社区

标题: 关于字符串相加的问题 [打印本页]

作者: HM黄祥为    时间: 2013-4-9 10:27
标题: 关于字符串相加的问题
如下代码
public class Demo {

        private static String a;
        private static String b;

        public static void main(String[] args) {
                String c = a + b;
                System.out.println(c);
        }
}


这段代码输出时 nullnull
为什么会这样 a和b都为空 相加后 c应该为空才对 怎么会打印nullnull呢

作者: 随便    时间: 2013-4-9 10:35
private static String a;
a,b是因为没有初始化就是用所以是null。
c是定义的局部变量,而且赋值了。所以不会是null。a,b都是null,字符串的相加就是字符串连接。所以两个null连接。
”nullnull“。
只有当c没有初始化值的时候才会是null。
还有就是null跟“null”是有区别的。
作者: 杜鹏飞    时间: 2013-4-9 10:42
学习了!
作者: hacket    时间: 2013-4-9 11:15
  1. public static void main(String[] args)
  2.         {
  3.                 String c = a + b;
  4.                 String d = "nullnull";
  5.                 System.out.println(c);//nullnull
  6.                 System.out.println("equals:"+c.equals(d));//true,从这句可以看到,a和b的null转换成了字符串进行了比较,也就是我的理解是运算符"+"会将两边的转成字符串
  7.                 System.out.println("==:"+(c==d));//false
  8.                
  9.         }
复制代码

作者: 王大斌    时间: 2013-4-9 13:14
由于在类中定义的类变量都有一个默认值,引用数据类型默认为null,局部变量没有默认值




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2