java简单问题,答案都书本都给出来了,可是都没懂,求助高手解释一下哈!先谢了..

6,下列程序的执行结果是(B)PublicclassTest7{Publicstaticvoidmain(Stringargs[]){Strings1=newString... 6,下列程序的执行结果是(B)
Public class Test7
{
Public static void main(String args[])
{
String s1=new String(“Hello world”);
String s2=new String(“Hello world”);
System.out.println(s1==s2);
}
}
A,true B,false C,Hello world D, 都不正确
答案不怎么不是A捏??它们两个不是相等么?帮解释一下哈!

13,下面哪一个不是创建数组的正确语句(C)
A,float f[ ][ ] =new float[6][6]; B,float [ ]f[ ] =new float[6][6];
C,float f[ ][ ] =new float[][6]; D, float [ ][ ]f =new float[6][];
这题的C答案不对,D答案怎么又对呀?还是不懂,A,B答案怎么又对捏??我刚学JAVA的,不懂哦...

26,关于下面Application的说明,正确的是(C)。
1,class ex37
2,{
3, static int x=10;
4, static{x+=5;}
5. Public static void main(String args[ ])
6,{
7. System.out.println(“x=”+x);
8,}
9,static {x/=3 ;}
10,}
A,第`4行与第9行不能通过编译,因为缺少方法名和返回类型
B,第9行不能通过编译,因为只能有一个静态初始化器
C,编译通过,执行结果为:x=5;
D,编译通过,执行结果为:x=3
最后执行的结果怎么得:x=5,麻烦帮解释,我不懂哦...????

29,给出下面的程序(A)
Public class ex42
{
Public int aMethod()
{
Static int i=0;
I++;
Return I;
}
Public static void main(String args[ ])
{
Ex42 test =new ex42;
Test.aMethod();
Int j=test.aMethod();
System.out.println(j);
}
}
下列选项中正确的是(A)
A,编译错误 B,编译成功并输出0
C,编译成功并输出1 D,编译成功并输出2
这题答案:编译错误??错误在哪里呢??还是不懂??

28,给出下面的程序(D)
Public class ex40
{
Public static void main(String sgf[ ])
{
StringBuffer a=new StringBuffer(“A”);
StringBuffer b=new StringBuffer(“B”);
Method(a,b);
System.out.println(“a+”,”+b”);
}
Static void method(StringBuffer x, StringBuffer y)
{
x.append(y);
y=x;
}
}
A, A,B B, A,A
C, B,B D, AB,B
解释一下D怎么得的?D答案怎么不是:AB,A ???
上面的28题呀,有哪个高高手会做呀??怎么都不会捏??这样说这题很难咯...
展开
 我来答
dkchina
2009-08-05 · TA获得超过2473个赞
知道大有可为答主
回答量:3504
采纳率:0%
帮助的人:2068万
展开全部
6.因为S1和S2对应的不是同一对象,对于两个对象之间使用“==”比较的是他们对应的内存地址是否相同,用equals比较才是比较之间的内容是否相同

13 数组必须这样定义,可以定义a[1][],a[][],a[1][1],但是不可以定义a[][1]因为产生数据的时候,会发现二维数组无法找到固定的一维数组作为支撑。至于B数组可以这样写

26 在生成类的对象的时候,首先初始化的是静态变量和方法,所以x=10,然后+5,等于15,最后除以3,最后得出5

29 Ex42 test =new ex42; 这行错误,应该是Ex42 test =new ex42();

28 这道题,我也不明白

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
迷糊,完全迷糊……
把这道题弄到公司内网了,被人家鄙视了 =。=
丢老人了…… T_T

假设a,b内存中地址为aAddress,bAddress
调用method(StringBuffer x, StringBuffer y)时
将地址传给x,y
也就是x,y的地址为aAddress,bAddress

x.append(y);这句话让x对应的内存中的值修改为AB
也就是aAddress内存空间中的值变成AB
a指向的内存空间也是aAddress,所以最后打印出来的值为AB

y=x;这句话让y对应的内存空间修改为x的内存空间
也就是当前y指向aAddress
但是b依旧指向bAddress,所以最后打印出来的值为B
百度网友5195152
2009-08-05 · TA获得超过1164个赞
知道大有可为答主
回答量:1314
采纳率:0%
帮助的人:705万
展开全部
28题
如果不考虑其他的28的答案也应该是AB,AB

但是呢:因为Java调用的方法都是地址传递,即引用传递,方法中不能改变参数的引用,所以main方法中输出的b是B,a输出为AB看来你应该知道为什么。

再给你几个例子

Java语言的参数调用
1. 基本数据类型;
private void DoTest(int i)
{
i= 1;
}
int i=0;
DoTest(i);
i的值还是0;而不是1;

2. Object类型

1.无法改变参数本身
private void DoTest(Order ord)
{
ord = new Order();
ord.OrderID = "100";
}
Order ord = new Order();
ord.OrderID = "200";
DoTest(ord);
此时ord.OrderID仍然是200;

2.可以改变参数的属性值
private void DoTest(Order ord)
{
//ord = new Order();
ord.OrderID = "100";
}
Order ord = new Order();
ord.OrderID = "200";
DoTest(ord);
此时ord.OrderID已是100;

另例:
private void DoTest(Order ord)
{
ord.customer.cusNo = "100";
}
Order ord= new Order();
ord.customer.cusNo = "200";
此时ord.customer.cusNo已是100;

结论:
Java语言中;在被调用的方法中;参数如果是Object类型;参数的属性原始值;可以在方法中被修改;如果是基本数据类型;那就不可以;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lianda220
2009-08-05
知道答主
回答量:39
采纳率:0%
帮助的人:10.5万
展开全部
第六题吧: s1和s2分别是持有String对象的两个引用,知道了吧 所以s1!=s2啊
13题是个很基本的题,你自己到网上去搜下二围数组就有很详细的说明了
26题是个初始化的问题 .......
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hamankarn
2009-08-05 · 超过19用户采纳过TA的回答
知道答主
回答量:91
采纳率:0%
帮助的人:52.2万
展开全部
6.因为s1和s2指向的不是同一个对象,所以用“==”比较的话,是false。用“String.equals()”方法比较的话,就是true了。

13.多维数组必须从左到右来创建,所以c不对。

26. 在一个类中,无论变量的定义是在方法之前还是方法之后,都会在方法之前进行初始化。而且,static变量初始化位于非static变量初始化之前。所以,在进入main方法之前,x就已经被赋成5了。

29.static int i=0;不对。
定义成类成员变量的话,static int i=0;是可以的。
定义在方法内部的话,只能是int i=0;。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
daodiba3
2009-08-05 · TA获得超过588个赞
知道小有建树答主
回答量:1236
采纳率:0%
帮助的人:465万
展开全部
天纳...你都不分大小写的`随便拿来编译下18个错...我写不下去了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-08-05
展开全部
28 题 题不难 就是说不清
a --> A <--x , b--> B <--y
x.append(y);就是说x指向的‘A’后面添加了y指向的‘B’ 结果为 a --> AB <-- x,b--> B <--y

y=x ;就是赋值地址 本来y指向‘B’变成y指向x所指向的‘AB’, 结果为 a --> AB <-- x
|
y
但是 b所指向的东西未变,b--> B
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式