java中内存分配的问题

来源:百度知道 编辑:UC知道 时间:2024/06/20 06:19:04
还是这个问题String a="123",String b="123",
boolean c=(a==b)的值是true,既然==两边比较的是内存地址。那么就是说a和b在一个内存位置了?什么意思啊?xiexie !
有的朋友告诉我是比较的是内存地址。我觉得应该是指的是char型指针,哪位大侠能给个标准点的答案?第二,指针有没有内存?
还有个问题,比如成员变量int a=1,那么这个成员变量是不是被分配了内存而且在堆区呢?那么请问,如果类没有创建对象,就没有实例,那么这个成员变量是怎么存在的呢?千恩万谢!

String 是一个引用类型的变量。

String a="123",
//现在内存的栈里建一个“123”的常量。然后a指向这个常量。。

String b="123",
//先查找内存中是否有“123”的常量,如果有就不再创建,直接把b指向它。

==和equest的区别

==是比较两边变量指向的地址是否相等
a,b指向的地址是一样的所以返回ture。。

equest是比较两边变量的值是否相等

==比较的是值吧.