java中不建议直接获取字符串内存地址,因为java不像c语言,获取内存地址是C语言的强项,java的弱项。但是java内存地址还是有一个应用场景,就是判断两个字符串内存地址是否相等来判断是否是同一个对象,用双等号“==”来比较的。参考代码如下:
public class Test01 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str1="abc";
String str2=new String("abc");
System.out.println(str1 == str2);//输出false
}
}
你可以看下java内存地址分配相关的资料。你的这个问题我也不知道,因为我对jvm了解的不深。
String str = "23wwwww";
String[] s = new String[]{"111","AAA"};
System.out.println(str.getBytes());----结果是[B@459189e1
System.out.println(s);---结果是:[Ljava.lang.String;@527c6768
结果中的@后面的就是内存地址,不过我不知道这个结果是不是你想要问的那个,我不清楚是否是和C里面的那种一样。
一般Java里面如果你直接打印对象的话,会打印出内存地址。
java是面向对象的语言,看不但内存地址
hashCode();