黑马程序员技术交流社区
标题:
输出结果为NULL的问题
[打印本页]
作者:
公子-醉香
时间:
2013-12-17 09:13
标题:
输出结果为NULL的问题
private static String a;
private static String b;
public static void main(String[] args) {
String c = a+b;
System.out.println(c);
}
复制代码
输出是
”nullnull”
。
为什么是这样呢?
作者:
zzkang0206
时间:
2013-12-17 09:25
你定义了私有的a和b,即没有提供set和get访问,又不给他赋值,c在做a+b的计算时肯定取不到值,系统默认的就是null,所以计算的值就是null值。
作者:
谢文斌
时间:
2013-12-17 09:28
本帖最后由 谢文斌 于 2013-12-17 09:29 编辑
任何类型的数据与字符串进行“+”运算,“+”表“连接符”而非数学里的“加号”
作者:
恨死我了
时间:
2013-12-17 09:29
因为a,b没有赋值,String的默认值是null,+为字符串连接符,c=null+null,打印出来就是nullnull字符串
作者:
❦_H_t
时间:
2013-12-17 09:32
因为你初始化的时候没有给他赋值,而它的默认值是null
当你把它赋予String类型时,等同于"null"
那么此时a和b都是null,故结果输出就变成了nullnull
private static String a;
private static String b;
public static void main(String[] args) {
String c = a+b;
System.out.println(c);
}
这个String c = a+b; 的效果等同于String c ="null"+"null";
作者:
侠客梦的懒猫
时间:
2013-12-17 10:38
private static String a;
private static String b;
这两句代码虽然你没有初始化,但是系统已经帮你完成了这个工作,字符串就是null,如果你这里定义的是int,那初始化就是0.
String c = a+b;
字符串与字符串之间用“+”,表示的是将两个字符串连接起来,如:
(简写)Syso(“你好”+i),这就是连接。
所以当我们输出时就是nullnull
作者:
litaojisuanji
时间:
2013-12-17 11:06
private static String a;
private static String b;
这是成员变量,在没有初始化的时候,JVM会对成员变量进行默认初始化,String初始化是null,
两个String做+运行,其它就是连接运算,null+null,不就是nullnull吗
作者:
绕世界流浪丶
时间:
2013-12-17 11:10
private static String a;
private static String b;
public static void main(String[] args) {
String c = a+b;
System.out.println(c);
}
复制代码
你定义的a b都是静态字符串
a+b的这个+就相当于是字符串连接符,
比如 字符串“5”+“6”= “56”而不是11
然后你的a b都没有赋初始化值,所以他输出的事默认的值 null
null+null= nullnull;
作者:
豆晨阳
时间:
2013-12-17 12:25
你在定义字符串变量a,b时没有对他们初始化,系统就默认对他们初始化为null,而String c = a +b;运算就相当于String c = null +null;就像楼上说的字符串的运算跟数字运算不一样;数字运算:1+2=3;而字符串运算1+2=12;因此String c = null +null;结果就为nullnull;
作者:
段光宇
时间:
2013-12-17 12:54
初始化了两个静态值a和b,却没有给其赋值,则系统默认它们为null值,
在主函数里,c=a+b;则c=“null null”;
作者:
75100313
时间:
2013-12-17 14:11
{:soso_e134:}我也晕了
作者:
瞎溜达玩玩
时间:
2013-12-17 14:27
创建了两个私有未付值的静态变量,然后把两个空字符串拼合在一起,获得一个新的空字符串。打印出来就是两个空。
作者:
城市儒侠
时间:
2013-12-17 19:29
成员变量,如果你不手动赋值,那么系统会默认给他们初始化,String类型默认是null,所以两个字符串都是null。
之后 加号 是连接符。 你的代码等于把a和b两个字符串连接,然后把结果赋值给c了。
所以结果就是nullnull
注释:
private static String a; //默认初始化,默认值是null
private static String b; //默认初始化,默认值是null
public static void main(String[] args) {
String c = a+b; //"null"+"null"
System.out.println(c);
}
作者:
冯国强
时间:
2013-12-17 22:15
首先,上述定义了两个私有字符串变量,但并为赋值。所以,两个字符串变量默认值为null,在主函数中字符串变量c=a+b;则是字符串加法运算,"null"+“null”="nullnull".
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2