一道java的基础题,请大侠们帮忙,谢谢

Edward1688 2012-06-01 06:41:57
10、String或StringBuffer类的对象在调用以下哪个方法时其自身会发生更改?
A) String类的charAt()方法。
B) String类的toUpperCase()方法。
C) String类的replace()方法。
D) StringBuffer类的reverse ()方法。
E) StringBuffer类的length ()方法。
...全文
347 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdluojing 2012-06-03
  • 打赏
  • 举报
回复
StringBuffer也是final的,String不可变的原因不是因为他是final的
lipan0424 2012-06-03
  • 打赏
  • 举报
回复
就是选D!!!
Rong-- 2012-06-03
  • 打赏
  • 举报
回复
java中调用方方法只是改变它的副本
Firebirds 2012-06-03
  • 打赏
  • 举报
回复
D ..
似梦飞花 2012-06-03
  • 打赏
  • 举报
回复
试一下不就知道了 d吧 没试
YellowBabi 2012-06-03
  • 打赏
  • 举报
回复
Strings are constant; their values cannot be changed after they
are created. String buffers support mutable strings.
xiaobeiweng 2012-06-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
D
String类是final 的,怎么样都不会更改
[/Quote]

will do
huangan0301 2012-06-03
  • 打赏
  • 举报
回复
看api吧
结贴是美德 2012-06-03
  • 打赏
  • 举报
回复
明显是D撒
RDroid 2012-06-02
  • 打赏
  • 举报
回复
附加一条
类的变量里,不能有可更改的实例的。


另外:如果类的变量是final的,可不限制权限修饰符
RDroid 2012-06-02
  • 打赏
  • 举报
回复
实例不可更改的充分必要条件:
1.类必须定义为final,否则如果混进来一个子类,然后子类定义的变量被修改了,这个怎么算?
2.类的所有变量必须不能是public的,如果是非系统类,则必须全部是private,以防止变量直接被修改
3.类不得对外提供会影响类的变量值的方法,比如set方法。如果有的话,不得对外开放。类似于第2条,如果是系统类,这些方法不能是public,如果是非系统类,则必须是private

4.如果使用反射语法,则以上条件统统作废....

总结: 在不使用反射的情况下,必须满足1,2,3条,一个类的实例的内容才是不可改变的
流星陨落 2012-06-02
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

D
引用《Thinking in JAVA》里面的句子:
“String对象是不可变的。查看jdk文档你就会发现,String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象,以包含修改后的字符串内容。而最初的String对象则丝毫未动。”
[/Quote]
++
NerverGiveUp 2012-06-02
  • 打赏
  • 举报
回复
你们真是搞笑,照本宣科的人真是多。
你们只知道书上写了String是final的 所以 String怎样也不会更改的
那我问问你们
StringBuffer 就不是 final的了?看过API吗?
jueshengtianya 2012-06-02
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
D
引用《Thinking in JAVA》里面的句子:
“String对象是不可变的。查看jdk文档你就会发现,String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象,以包含修改后的字符串内容。而最初的String对象则丝毫未动。”
[/Quote]

+++
JProc 2012-06-02
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]

引用 11 楼 的回复:

1.String实例的不可改变,并非仅仅因为String是final类

2.实际上,如果使用反射的话,还是可以改变String的内容。

就题目来说,毫无悬念是选 D

选D没错
[/Quote]
D
Van_chan 2012-06-02
  • 打赏
  • 举报
回复
晕死,那么基础的题目!!把基础知识好好补一下!!
v-AUGUST-v 2012-06-02
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

1.String实例的不可改变,并非仅仅因为String是final类

2.实际上,如果使用反射的话,还是可以改变String的内容。

就题目来说,毫无悬念是选 D
[/Quote]
选D没错
RDroid 2012-06-02
  • 打赏
  • 举报
回复
1.String实例的不可改变,并非仅仅因为String是final类

2.实际上,如果使用反射的话,还是可以改变String的内容。

就题目来说,毫无悬念是选 D
ceclinux 2012-06-02
  • 打赏
  • 举报
回复
D
引用《Thinking in JAVA》里面的句子:
“String对象是不可变的。查看jdk文档你就会发现,String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象,以包含修改后的字符串内容。而最初的String对象则丝毫未动。”
grthxuejava 2012-06-01
  • 打赏
  • 举报
回复
一点都不基础~~
加载更多回复(8)

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧