踏破九重天阙
2019-08-02 11:56
采纳率: 54.5%
浏览 1.2k
已采纳

Java可不可以把字符串当作变量处理?

例如:String a="aaaa";
String b="a";
String c=b;

可不可得到c="aaaa"呢?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • threenewbee 2019-08-02 12:10
    已采纳

    普通变量不可以,成员变量(放在类的定义里面)可以用反射获取/设置。

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • strong_mz 2019-08-02 12:51

    没看懂你要问啥,字符串可以当作变量处理

    评论
    解决 无用
    打赏 举报
  • 光哥_帅 2019-08-02 13:08

    你这个不可以,因为String b="a",这个a不是一个变量了,他是一个值
    String a="aaaa" 表示的是a指向了存有内容为aaaa的地址空间 ,这个地址空间我们假设为RRR
    String b="a" 表示的是b指向了存有内容为a的地址空间 ,,这个地址空间我们假设为qqq
    String c=b 表示的是c和b指向了同一个地址空间,这个地址空间为qqq,内容为a
    里面可能有些专业术语不准确,还望包涵

    评论
    解决 无用
    打赏 举报
  • 打杂的程序员 2019-08-02 13:43

    你要是 String c= a 不就得到了 c="aaaa"

    评论
    解决 无用
    打赏 举报
  • 杨园亮 2019-08-02 15:29

    图片说明

    评论
    解决 无用
    打赏 举报
  • TinaMooN 2019-08-02 17:17

    变量是存储在线程栈的局部变量表中,字符串会在常量池 或者堆中存储这个具体看你创建对象的方式。变量只是保存了对象的地址,相当于是个指针,你把a代表
    的地址给了c说明c也指向了“aaaa”这个是不矛盾的。(对象也有可能在线程工作内存栈中,虚拟机加了逃逸分析后,当这个对象不能进行逃逸的话有可能分配在栈中)。

    评论
    解决 无用
    打赏 举报
  • C君. 2019-08-02 17:44

    把变量包裹在对象里,然后使用反射获取赋值。

    评论
    解决 无用
    打赏 举报
  • yyjjttww 2019-08-06 11:09

    值和变量的定义方式不一样。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题