当前位置:  技术问答>java相关

新手请教一个关于使用String类修改的简单问题。谢谢

    来源: 互联网  发布时间:2015-09-09

    本文导语:  书上说:由String类创建的对象在创建之后是不允许在改变和修改的,所以称为字符串常量。 那现在我在程序中开始   String str=new String("Myjava"); 到后面又 str="MyDelphi"; 那不是对str来说,改变了么?? 请问应该怎样...

书上说:由String类创建的对象在创建之后是不允许在改变和修改的,所以称为字符串常量。

那现在我在程序中开始
  String str=new String("Myjava");
到后面又 str="MyDelphi";
那不是对str来说,改变了么??

请问应该怎样理解上面的话呢??到底是什么不能修改?? 谢谢

|
所谓的string类创建后不可以改变,并不是指它的值不可以改变
而是说一旦定义了一个string变量之后,那么会在内存中为这个变量留出一个位置,那么在内存中这个值是不可以改变的,一旦你改变了string变量的值,虽说表面上还是这个变量,但其实在内存中已经又生成了另外一个对象
也就是说string对像一旦发生改变,就会生成一个新的对象

|
它指的修改是对对象而言的,所以你并没有改变String对象的值,而只是改变了句柄所指的对象。也就是说现在内存中出现了两个String对象,"Myjava"和"Mydelphi"

|
你的str是一个reference,指向了不同的对象

stringbuffer就是在同一个对象上修改

|
改变啦

后面str="MyDelphi"
是赋值给str,所以改变啦

最初String str=new String("Myjava");可以说是初始化吧

|
对象改变和它的值改变是不同的。

|
str = "MyDelphi",
str指向另一个String

reference  Object
str   --> "Myjava"
 |
 |    --> "MyDelphi"

|
同意楼上

|
实际上有两个String对象,内容分别是"Myjava"和"MyDelphi"
str="MyDelphi";
创建一个新的String Object,再将str参数指向"MyDelphi"

    
 
 

您可能感兴趣的文章:

  • 新手请教,我用VI时按ESC键,总是回嘟嘟嘟嘟响,请问如何去掉!谢谢!
  • 新手请教Linux和ubuntu
  • Linux新手请教声卡驱动!!!!!!!!!!!
  • 新手来请教一个关于IDE的问题
  • 大家好,我是linux新手,有些问题请教
  • 新手,有问题请教!
  • 新手,请教关于文件编辑问题...
  • 新手请教:RedHat Linux 7.3下的网络连接问题
  • 新手请教arm与linux的问题
  • 新手虚心请教.在线等复....vsftp配置成功后,本机可以FTP上,但其他系统通过FTP工具不能上.防火墙不能关..
  • 新手请教啦~~能不能帮忙推荐几本书
  • 新手,请教安装SCO Unix的问题
  • 新手请教!!!!
  • 编程语言 iis7站长之家
  • 新手请教:我的声卡所附光盘提供了下面的这些文件,我怎么安装驱动?
  • 新手的问题,请教高手
  • 新手请教安装问题!
  • 新手向大家请教jsp,servlet的调试,发布问题
  • 我是新手,请教LINUX下如何访问光驱里的文件。
  • 新手请教一下学习GCC的经验
  • 新手:用WEB页面修改数据库中的表?
  • 新手求助:修改profile文件后,重启登录不了了?
  • 【新手】又有问题,该如何修改tomcat4默认路径?
  • 怎样在saloris2.6下 修改和查看 ip地址,以及网关和子网掩码,我是新手,望指教。
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • JDBC的问题,新手高手都来看看吧,说不定能帮帮我这个新手呢,谢谢!
  • 做一位新手,求一个内核讨论群,都是喜欢内核的,谢谢了,
  • 我是新手,请问在哪里更改系统时间?谢谢
  • LINUX新手的几个问题,谢谢
  • 新手在线急问,谢谢!
  • 新手学Linux,请问有没有不需要安装的在一张光盘上的啊?谢谢。
  • [求助]新手问题 请大家帮一下 谢谢了
  • Linux新手,多多帮助!!谢谢
  • 新手 有一个不明白的问题,先谢谢大家
  • 刚装了redhat Linux9,进入csdn发现左边的目录是乱码,我是新手请大家帮帮忙,谢谢!
  • 新手提问,关于qt、qt/embedded方面的在哪个板块有啊,谢谢
  • 新手求解linux编程两个问题,谢谢!!!
  • 我是新手,各位大虾,请问学习JAVA有没有什么好用的书!!谢谢。有分挣哦!
  • 我是一个LINUX新手,请问哪有基础教程的好书,最好是电子版的,谢谢各位大哥~~~!!
  • 作为一个刚刚接触linux的新手来说,应该如何学习?从哪里开始?谢谢高手赐教!
  • [求救]新手有问题求助,谢谢帮忙!
  • 请问suse或ubuntu有没有中文版本?在哪能下载到光盘影像文件?我是新手,希望大家指点。谢谢!
  • 请问Jbuilder5与AppServer如何配置?我是新手,谢谢
  • 新手上路,请帮一下,谢谢了!!
  • 新手提问@@@高手解答@@@多答多分@@@谢谢帮忙
  • 新手如何加入开源项目 有什么好的c++,java 开源适合新手 请指点!
  • 想找共同学习Linux的新手,一起学习,共同成长
  • 新手关于驱动开发的疑问
  • 新手有关linux的问题!
  • 新手急求~~~~~~~~~~~~~~~~~~~
  • 新手学习该用哪个版本
  • 面向新手的终端辅助工具 Clicompanion
  • 我是个新手,请各位老兄给介绍基本好书?
  • 我是新手
  • Java新手上路之问题
  • 我是一名新手,请问如何学java


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3