你的位置:
问答吧
-> JAVA
-> 问题详情
几道java程序的输出结果
1、Java code
publicclasstest2 {publicstaticvoidmain(String[] args)
{inti=9;switch(i){default:
System.out.println("default");case0:
System.out.println("zero");break;case1:
System.out.println("one");case2:
System.out.println("two");
}
}
}
为什么输出结果是:default
zero
2Java code
publicclassTuxextendsThread{staticString sName="vandeleur";publicstaticvoidmain(String[] args)
{
Tux t=newTux();
t.piggy(sName);
System.out.println(sName);
}publicvoidpiggy(String sName){
sName=sName+"wiggy";
start();
}publicvoidrun(){for(inti=0;i<4; i++)
{
sName=sName+""+i;
}
}
}
输出结果是vandeleur,是怎样运行出来的?
作者: wangyuxi1989
发布时间: 2010-10-16
switch运行过程:
通过switch的条件选择case情况,如果没有就执行default,在没有break的情况下忽略case条件选择,将每个case后的语句都执行
String是final的,每次对string的更改都是创建一个新的string的对象~原始String无法改变
作者: W250508320
发布时间: 2010-10-17
1.switch里面是顺序执行的,9先和defalut匹配,然后由于缺少break,而继续往下执行,所以就输出了zero,碰到break,就退出。不过,default写在最后面。上面的情况,就属于case穿透。
2.String是final的,每次对string的更改都是创建一个新的string的对象~原始String无法改变
作者: hudie1234567
发布时间: 2010-10-17
顶。。。
作者: yexiongMYBH
发布时间: 2010-10-17
第一问是case语法,每个case都应该有break,否则会一直匹配
第二问是java基础,java是传引用的拷贝,string是特殊对象,string的拼接会新生成对象实例,原来的引用已丢失,所以在java方法里不要将string作为引用传递
作者: qingyuan18
发布时间: 2010-10-17
我倒觉得第二个问题是局部变量与全局变量的问题
作者: wsdhla
发布时间: 2010-10-17
1.由于switch语句中首选执行default语句,符合条件,输出default,又由于缺少break语句,程序忽略case条件,继续执行输出语句,所以是上述结果!
2.String是final的,每次对String 的更改是新建一个新的String对象,而原来的String不变。。。
作者: seetang
发布时间: 2010-10-17
而且,在打印输出sName的时候,另一个线程可能还没有运行到for循环
作者: wsdhla
发布时间: 2010-10-17
Java code
publicclassTuxextendsThread{staticString sName="vandeleur";publicstaticvoidmain(String[] args)throwsException
{
Tux t=newTux();
t.piggy(sName);
Thread.sleep(300);
System.out.println(sName);
}publicvoidpiggy(String sName){
Tux.sName=sName+"wiggy";
start();
}publicvoidrun(){for(inti=0;i<4; i++)
{
sName=sName+""+i;
}
}
}
这样就对了
作者: wsdhla
发布时间: 2010-10-17
引用 4 楼 qingyuan18 的回复:
第一问是case语法,每个case都应该有break,否则会一直匹配
第二问是java基础,java是传引用的拷贝,string是特殊对象,string的拼接会新生成对象实例,原来的引用已丢失,所以在java方法里不要将string作为引用传递
传的就是引用··玩的就是心跳··
作者: cenhuineng
发布时间: 2010-10-17