java基础问题疑惑
12、分析下面的代码,其输出结果是( )。
1. public class Test {
2. public static void main (String [] args) {
3. string foo = "blue";
4. string bar = foo;
5. foo = "green";
6. System.out.printIn(bar);
7. }
8. }
A. 一个异常抛出
B. 代码无法编译
C. null
D. blue
E. green
知识点列表:4.1 系统定义的类(包)。
正确答案是选择D,我是选择E,我是认为在第四行,bar不是已经引用了foo的内存地址,然后又把”green“赋予给foo,不就相当与给foo里"blue"重新赋予green值吗,我搞混了,望高手请教下
string bar = foo;
这句话只是把 foo的值"blue"赋值上去
而不是地址啊,
你可以在第4句后面加
System.out.println(foo.equals(bar));
System.out.println(foo==bar);
第一个打印出true,第二个为false
表示值一样,而指向的内存地址不一样
答案应该选D
bar不是已经引用了foo的内存地址
bar和foo的内存地址是不同的
他们都指向相同的内容blue
之后foo的内容变成了green
但bar的内容还是blue
这题跟下面的道理是一样的:
Java code:
public static void change(String s) {
s = "222";
}
public static void main(String[] args) {
String s = "111";
相关问答:
我目前在本地的linux上写了一个swing的界面,想通过这个界面来控制其它电脑的linux重启。
我知道用Runtime.getRuntime().exec("shutdown -r");可以控制本机Linux重启,但是怎么控制远程的linux重启呢? ......
不知道是什么原因,我该如何处理,请大虾们指教了,小弟在此谢过。。。。
错误信息如下:
The program being debugged was signaled while in a function called from GDB.
GDB has restored the context t ......
我在jsp页面存上一个session,本页面还可以取出值来.
但是一刷新,或者打开新的页面就取不出值来了.
奇怪的是,我测试另一个程序时候
在jsp页面存上一个session,本页面可以取出值来,刷新或打开新页面值能取出来了.
......
java问题
悬赏分:0 - 离问题结束还有 14 天 22 小时
public class ThreadPrint{
static Thread makeThread(final String id,boolean doemon)
{
Thread t=new Thread(id){
public ......