java的字符串是常量吗它存 放在内存的哪里
classStringEquals{publicstaticvoidmain(String[]agrs){Stringa=newString("你好");Stringb=...
class StringEquals {
public static void main(String [] agrs) {
String a = new String("你好");
String b = "你好";
if (a == b)
{
System.out.println("b srting equals a string");
}
else {
System.out.println("b string not equals a string");
}
}
}
Srting b 在B这变量是不是装拉内存地址啊? 展开
public static void main(String [] agrs) {
String a = new String("你好");
String b = "你好";
if (a == b)
{
System.out.println("b srting equals a string");
}
else {
System.out.println("b string not equals a string");
}
}
}
Srting b 在B这变量是不是装拉内存地址啊? 展开
5个回答
2013-04-10
展开全部
简答的说,String比较你这样是错误的 String 比较JVM中虚拟地址应该使用equals至于这了内存地址java是不可能获取的,java存在于jvm中 jvm无法获得硬件直接内存地址String str="";str.hashCode(); 获得的是java虚拟机中虚拟的内存暂时地址,java虚拟机最终会在堆创建一个内存地址!java无法超出jvm范围外, java api也没有提供该函数!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java中string是引用变量,不是常量,它是存放在堆内存当中的,每次new的时候会创建一个新的引用对象,虽然内容是一样的,但是引用不一样。a==b是比较引用的对象和内容都相同才会成立。如果只想比较内容,就应该使用equals()方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-10
展开全部
java中的数据类型必须实例化后能才使用,各种数据类型实例化后的表示方式分为两种:变量和常量
变量简单的说就是在程序运行期间可以修改的量,常量就是在程序运行期间不能被修改的量
兄弟,随便找本JAVA入门的书上都会有介绍的,还是先找本书看看吧,这样才能比较系统的入门
变量简单的说就是在程序运行期间可以修改的量,常量就是在程序运行期间不能被修改的量
兄弟,随便找本JAVA入门的书上都会有介绍的,还是先找本书看看吧,这样才能比较系统的入门
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
b为字符串常量,存放在java虚拟机为它分配的内存在常量池中。
如果常量池中存在“你好”,b就会指向其内存地址。
如果不存在Java虚拟机会为“你好”分配一个地址
如果常量池中存在“你好”,b就会指向其内存地址。
如果不存在Java虚拟机会为“你好”分配一个地址
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询