1、public class test2 {
public static void main(String[] args)
{
int i = 9;
switch(i){
default:
System.out.println("default");
case 0:
System.out.println("zero");break;
case 1:
System.out.println("one");
case 2:
System.out.println("two");
}
}
}
为什么输出结果是:default
zero
2public class Tux extends Thread{
static String sName = "vandeleur";
public static void main(String[] args)
{
Tux t = new Tux();
t.piggy(sName);
System.out.println(sName);
}
public void piggy(String sName){
sName = sName + "wiggy";
start();
}
public void run(){
for(int i = 0 ;i < 4 ; i++)
{
sName = sName + " " + i;
}
}
}
输出结果是vandeleur,是怎样运行出来的?
public static void main(String[] args)
{
int i = 9;
switch(i){
default:
System.out.println("default");
case 0:
System.out.println("zero");break;
case 1:
System.out.println("one");
case 2:
System.out.println("two");
}
}
}
为什么输出结果是:default
zero
2public class Tux extends Thread{
static String sName = "vandeleur";
public static void main(String[] args)
{
Tux t = new Tux();
t.piggy(sName);
System.out.println(sName);
}
public void piggy(String sName){
sName = sName + "wiggy";
start();
}
public void run(){
for(int i = 0 ;i < 4 ; i++)
{
sName = sName + " " + i;
}
}
}
输出结果是vandeleur,是怎样运行出来的?
解决方案 »
- win2008下JAVA的问题
- 魔术棒算法的边缘提取与记录
- 急!!跪求openssl md5标准算法(JAVA)
- Statement可插入2K汉字,PreparedStatement就不到1K汉字
- 不知java有没有象BCB那样的TDBGrid或TDBEdit一样的数据库元件?
- Java frame中调用了setContentPane(new Panel());方法,但不显示Panel
- 十万火急,请帮忙!
- 讨论一下 interface 的问题
- 请教高手,在用 ResultSet得到数据库查询结果时,如何通过它得到表的栏位名称?如:
- 关于数据库联接代码调试事的错误判断?
- 安装了eclipse就可以用了,就可以编写程序了?
- 高手帮我解释一下数组法求阶乘具体什么意思
通过switch的条件选择case情况,如果没有就执行default,在没有break的情况下忽略case条件选择,将每个case后的语句都执行
String是final的,每次对string的更改都是创建一个新的string的对象~原始String无法改变
2.String是final的,每次对string的更改都是创建一个新的string的对象~原始String无法改变
2.String是final的,每次对String 的更改是新建一个新的String对象,而原来的String不变
static String sName = "vandeleur";
public static void main(String[] args)throws Exception
{
Tux t = new Tux();
t.piggy(sName);
Thread.sleep(300);
System.out.println(sName);
}
public void piggy(String sName){
Tux.sName = sName + "wiggy";
start();
}
public void run(){ for(int i = 0 ;i < 4 ; i++)
{
sName = sName + " " + i;
}
}
}这样就对了
sName = sName + "wiggy";
中sName都是参数变量,没有对sName成员变量进行过修改。
2.传值。。
这句话会先把"vandeleur"这个对象取出,然后连接上"wiggy",组成新的对象,然后再赋给sName,这里的sName都是局部变量 不是属性……而输出的是属性 它的仍然是"vandeleur"对象的引用 没有改变
为什么会输出vandeleur 0 1 2 3,我在10楼有说过。
this.
所以是废的而start()把改值函数传入了了新的线程 对返回值没有影响 看下例class Misc extends Thread
{
static String str="WOLEGECAO";
public void run()
{this.str=this.str+" "+1;}
public static void main(String[] args)
{
Misc misc=new Misc();
misc.run();
System.out.println(str);
}
}这个返回
WOLEGECAO 1class Misc extends Thread
{
static String str="WOLEGECAO";
public void run()
{this.str=this.str+" "+1;}
public static void main(String[] args)
{
Misc misc=new Misc();
misc.start();
System.out.println(str);
}
}这个返回
WOLEGECAO不知道你们是怎么学的 String就是Final了?搞笑
在说别人之前先看下你自己,你也无法保证println执行时misc线程还没结束,上面也有人出现了子线程先结束的情况,一棍子打死也是不对的
JAVA 里面有传引用的吗? 只能理解成那个样子 但是不是传的引用
大家可以看看这个 String i = '111';
String w = "222";
public void chage(String i, String w){
String inde = i;
String i = w;
String w = inde;
}如果是引用的话
会把两个值 换过来
但是运行下 各自的字符串都没有变 这个我觉得是这样的 我们把每个对象在栈内的 地址传入(就是数值)过去了 我们每次改变的是 对字符串操作从而生成了新的字符串。得到在栈里面新的空间 而不是改变以前的。。 所以 所以传入进来String 对象是没有改变的
JAVA 里面有传引用的吗? 只能理解成那个样子 但是不是传的引用
大家可以看看这个 String i = '111';
String w = "222";
public void chage(String i, String w){
String inde = i;
String i = w;
String w = inde;
}如果是引用的话
会把两个值 换过来
但是运行下 各自的字符串都没有变 这个我觉得是这样的 我们把每个对象在栈内的 地址传入(就是数值)过去了 我们每次改变的是 对字符串操作从而生成了新的字符串。得到在栈里面新的空间 而不是改变以前的。。 所以 所以传入进来String 对象是没有改变的