关于String类声明的一个小问题,想不明/(ㄒoㄒ)/~~

String a = "aabb";
我看视频的老师说,字符串也是一个对象,"aabb"是常量,一旦赋值不可再改变,
存放在方法去中的常量池,a指向这个字符串,可是String类型声明了a,为什么a是引用
变量,它不是被String声明成常量了吗?
难道说String只是为了加载String类的信息

string a;这段代码是创建一个string类型的变量a,保存在栈内存空间中,他没有任何指向。

"aabb"是创建了一个字符串对象,它首先会看常量池中存不存在这个对象,如果不存在,才创建后保存到常量池中。存在了就不会了。。。

String a = "aabb";这句话就是把a指向常量池中字符串对象的地址,以后使用直接从地址中取值。

ps:多去理解一下java的内存模型和分区,建议看一下:http://blog.csdn.net/chenbaige/article/details/57115858

我只知道String是特殊的引用类型。

先定义String类,生成一个变量a,它是一个指向常量"aabb"的引用。

a是变量的一个引用,是存放在栈中的,而你字符串的值是在常量池中的