这是因为在声明String类型的对象时,它分配内存空间,刚开始它到一个字符串池中查找是否有符合要求的字符串,如果有则将指针指向它,没有则重新分配一个新的空间。
你给出的例子是这样的,因为它先声明了s对象,并分配空间,而声明s1时,因为它与s的内容相同,则直接分配同样的内存地址给s1,因此两者相同
引用类型,类和数组都是引用类型
s和s1的类型和值都一样,所以是"true"
Java有八种不同的基本数据类型,他们是byte、short、int、long、float、double、char、boolean。整数类──byte, short, int, long。浮点类──float,double。字符------ char和String:一个char代表一个16-bit无符号的(不分正负的)Unicode字符;String不是原始类型,而是一个类(class),它被用来表示字符序列。布尔类型------boolean
字符在计算机领域好比是一张带有编号的图画,计算机好比画馆的工作人员,它不知道图画上的是什么内容,但是它知道这个“图画”是属于哪个类别,是用来表现什么的。
字符都有属于它的编码,字母对应ASCII码,汉字对应UNICODE码,还有GBK什么的,显示的是一个字符,其实计算机只认识这个字符的代号——编码。