如何在Java中获取字符串位置

如何在Java中获取字符串位置,java,android,Java,Android,也许我在问一些奇怪的问题,但我想知道,我的字符串在java中保存在哪里。我使用哈希代码 我得到了散列码。所以这是我字符串的唯一地址,或者还有其他方法,来获取字符串的位置 更新 实际上,我在两个活动之间传递字符串。每次我得到同样的字符串。即使我改变了值,我也得到了我第一次传输的相同字符串 活动一 活动二 首先,使用这个: Intent i=new Intent(context,SendMessage.class); i.putExtra("test", "This is a test"); con

也许我在问一些奇怪的问题,但我想知道,我的字符串在java中保存在哪里。我使用哈希代码

我得到了散列码。所以这是我字符串的唯一地址,或者还有其他方法,来获取字符串的位置

更新

实际上,我在两个活动之间传递字符串。每次我得到同样的字符串。即使我改变了值,我也得到了我第一次传输的相同字符串

活动一

活动二

首先,使用这个:

Intent i=new Intent(context,SendMessage.class);
i.putExtra("test", "This is a test");
context.startActivity(i);
然后在另一个活动中,使用getIntent方法获取启动活动的意图:

Intent intent = getIntent();
如果额外数据表示为字符串,则可以使用intent.getStringExtraString名称方法。在本测试中:

String test = intent.getStringExtra("test");
在您的情况下,请尝试:

一:

二:

首先,对象的哈希代码与其地址完全无关

其次,在Java中,地址并不是真正需要处理的东西

不过,Java确实有指针。所有非基本字段都是指针引用类型,您可以相互比较:

string1 == string2
这将实际比较两个字符串的地址

正如JLS所说:

在运行时,如果操作数值都为null或都引用同一对象或数组,则==的结果为真;否则,结果为假

此外:

虽然==可用于比较String类型的引用,但这种相等性测试确定两个操作数是否引用同一个String对象。如果操作数是不同的字符串对象,即使它们包含相同的字符序列,结果也为false


哈希代码不是一个位置。它只是一个让你使用哈希表的工具。你到底想做什么?嗯,我只是好奇,为什么你想知道变量存储的确切位置?您是否正在试图找出getIntent.getStringExtratitle;是否存储?您所说的活动是什么意思?您能否共享正在通信的活动/进程的代码?@CrazyCoder获取字符串的位置。您正在询问它存储在内存或字符串池中的什么位置?欢迎使用Java并向引用和不可变对象问好。答案本身格式不错,切中要害,所以我认为不应该被否决。请看这个请看这个
Intent intent = getIntent();
String test = intent.getStringExtra("test");
Intent notificationIntent = new Intent(context,SendMessage.class);

notificationIntent.putExtra ("title_",message);

context.startActivity(notificationIntent);
Intent intent = getIntent();

String ext = intent.getStringExtra("title_");

Log.e("path", ext);
string1 == string2