该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-03-07
不错,很值得重温一遍。
|
|
返回顶楼 | |
发表时间:2011-03-07
基础的知识还是有些没掌握牢.
|
|
返回顶楼 | |
发表时间:2011-03-07
自己也弄错了几道
|
|
返回顶楼 | |
发表时间:2011-03-07
第六题大意了..然后就是a==(x+y),其他都没问题.
|
|
返回顶楼 | |
发表时间:2011-03-07
最后修改:2011-03-07
。。。没事看看scjp认证那本书,绝对受益啊。。。
引用fellatioyzx 的解释: 由于java方法传值是值传递,所以方法里面的ab虽然和方法外的ab指向的对象一样,但是这两个引用在栈中的位置不一样。 过程大概是首先在栈中复制引用a为a',b为b',并令a'指向a所指的在堆中的StringBuffer对象,b'指向b所指的在堆中的StringBuffer对象。 因此方法中的b=a只是起到了b'=a'的作用,并没有影响方法外b的指向。 |
|
返回顶楼 | |
发表时间:2011-03-07
fellatioyzx 写道 我都答对了
关于最后一题的话,由于java方法传值是值传递,所以方法里面的ab虽然和方法外的ab指向的对象一样,但是这两个引用在栈中的位置不一样。 过程大概是首先在栈中复制引用a为a',b为b',并令a'指向a所指的在堆中的StringBuffer对象,b'指向b所指的在堆中的StringBuffer对象。 因此方法中的b=a只是起到了b'=a'的作用,并没有影响方法外b的指向。 楼上高手。 事实上,你在eclipse等IDE里,他会提醒你说(the parameter should not be assigned)。也就是说,这么做是没意义的。 |
|
返回顶楼 | |
发表时间:2011-03-07
fastbo 写道 zofuthan 写道 第二道题,我觉得是这样的。a+b是字符串相加,我记得字符串相加是重新构建了个new StringBulider类的,所以是false
第七道题,你解释的不够清楚,我补充下。首先,Java的方法传递其实是值传递!基础数据大家都明白;主要是对象,对象它其实传递的是地址数值。所以,形参a,b是局部变量,在调用时,他们都指向main方法中的a,b局部变量,因为a.append(b)是对main方法中a变量地址的操纵,所以append方法调用后,a的值变化了,但是append方法中局部变量b它最后指向了main方法中a的地址,可是这个b和main中的b却不是一样的,main中的b所指向的地址中,值并未发生改变。所以syso的结果就是ab,b 第2.但前面也是字符串相加呀。我更相信有一个哥们说的:因为x+y不是编译时确定值而是运行时确定值。 第7.基本是这样说的,但期待有进一步深化的分析。 没那么复杂,就是equals 和==的区别。 为什么操作字符串用stringbuffer你肯定经常听说原因:因为z=x+y生成了三个对象。既如此相当于a new 了一个String,x+y new 了一个。当然不等。 a=="hello"+"world"则不然。 因为"hello"+"world" 没有new 一个String |
|
返回顶楼 | |
发表时间:2011-03-07
最后修改:2011-03-07
第一个 switch 问题 属于基本常识, 不应该不会, 否则就不要用switch 语句。
第二个,浪费时间, 我已经 不会去看, 因为即使搞懂了, 也是在浪费时间 3, easy ,我明白,也知道原因, 但写程序, 静态最好不要去 override, 太容易出错。 自己给自己下套。 4, 也应该属于常识了, 不过还是很容易犯错的地方。隐含的类型转换, 楼主应该再加上 byte类型的增加难度。 byte 运算是自动转换为int 再运算; 其他同类型运算, 就不转换; 不同类型, 自动转换为高级类型再运算。 5, 几乎无语。。假构造函数 。 虽然可以编译, 不过应该属于程序员的错误, 否则是自己给自己下套 6 无语,。。。。。。。。。。。考试可以, 还是别折腾了。 7,属于基本常识, 不应该不知道。 传值?传址?--------------- 不过对于我的理解是 所有 函数 都是在传值。 估计马上就会有人对我的看法发起进攻。 所以解释一下: A。 基本类型, 里面就是一个值, 只能把这个传的形参里。没什么可争执的。 B。 class的, 参数变量就是一个指针, 里面的值是一个地址,传过去的就是就是这个地址的值。 所以实参 原来指到哪里, 就是哪里, 函数里面 不会改变的; 但是它 指向的东西是可以改变的。 C。 String, BigDecimal等特殊类型, 所有上面改变值的操作都会, 产生一个新的实例。 常常看似不同与B,但实际上B 依然有效。 |
|
返回顶楼 | |
发表时间:2011-03-07
确实挺基础的,不过陷阱挺多。。。我就被构造方法那个给坑了- -不过话说在开发中肯定不会出现这个问题。。。。eclipse会有提示
|
|
返回顶楼 | |
发表时间:2011-03-07
挺有意思的!就当复习复习基础知识了
|
|
返回顶楼 | |