String:字符串
字符串池:第一次创建字符串变量时,会到池中找这个变量值,
如果没有找到就会创建一个并放入池中,后面再创建变量时直接从池中拿这个值,
而使用"="赋初值是存放在字符串变量池中;
new 的方法:会开辟新的内存空间 (==比较的是地址)
使用"=="比较new创建的变量时;比较的是内存地址
使用"=="比较"="赋初值的变量时会去变量池中寻找
使用equals进行比较那么两者都会比较字符串内的字符串序列。
IndexOf:索引指定的字符串在给定的字符串中第一次出现的位置;
可以指定索引的开始值然后索引;
可以从指定的地方开始索引;
LastIndexOf和IndexOf有相同的用法,索引指定字符在字符串中最后一次出现的位置
Length():返回指定字符串的长度
ToString()返回对象本身,(继承object中的重写方法)
StringBuffer:能够追加字符串 (解决字符串常量问题)
使用append方法直接追加到变量后面并保存到同一个内存中
例如:使用string创建变量
String s = "hello" + " world";
//内存中占用了4个内存空间
//内存分配分别为(s占用一个栈内存,hello,world和helloworld分别占用一个堆内存)
使用stringbuffer创建变量
StringBuffer s2 = new StringBuffer("hello").append("world");
//StringBuffer共占用了2块内存区域(s2占一个栈内存,helloworld占一个堆内存)
reverse()将此字符序列用其反转形式取代
StringBuilder 与 StringBuffer 一样,只是线程不安全