学习JAVA的第07天

String类的学习(未涉及String流)

关于String的一些方法:
String(String original):把字符串数据封装成字符串对象
String(char[] value):把字符数组的数据封装成字符串对象
String(char[] value, int index, int count):把字符数组中的一部分数据封装

关于string的学习中,由String s1="abd";
与String s2=new String("abc");

在内存开辟的空间是不同的,第一种方式是常量的方式,会在方法区中的常量池里面,第二种方法是通过对象去调用的会在堆内存中开辟一个空间,但是其中的字符串还是存储在方法区的常量池中得到!

其中学习的很多String的方法自己通过API可以查询的到,而其中有比较自我难以理解的地方就是:

第一张图片因为都是常量,都存在常量池之中,也就是说不论是通过==或者equals得到的值都是ture

第二张图其实在追加字符串的时候相当于是创建了一个对象,所以实在堆中开辟了一个空间,就算是通过二次索引找到了常量池的地址两者对比也是返回false!

原文地址:https://www.cnblogs.com/cxrblog/p/13955796.html