一、String类
1、String类的特点:
a,Java语言中用于描述最常见的字符串数据的对象。
b,字符串数据都是一个对象。
c,字符串数据一旦初始化就不可以被改变了。双引号表示的都是字符串常量。
d,字符串对象都存储在常量池中(字符串常量池)。
2、字符串的构造方法:一般在定义字符串时,不用new关键字。
String s1 = new String();//创建了一个空内容的字符串。
String s2 = null;//s2没有任何对象指向,是一个null常量值。
String s3 = "";//s3指向一个具体的字符串对象,只不过这个字符串中没有内容。
String s4 = new String("abc");
String s5 = "abc";
new String(char[]);//将字符数组转成字符串。
new String(char[],offset,count);//将字符数组中的一部分转成字符串。
3、字符串的方法:
public class StringDemo {
/**
* @param args
*/
public static void main(String[] args) {
定义一个字符串。
String str = "abcd";
String s1 = "abcd";//这时在常量池中创建了一个字符串对象。
System.out.println(str==s1);//true,str和s1都指向了同一个对象。
String s2 = new String("abcd");//这是在堆内存创建一个String类的对象。并在常量池创建了"abcd"对象。
System.out.println(s1);
System.out.println(s2);
System.out.println(s1==s2);//false s1和s2不是同一个对象
//对于字符串对象的比较,应该用equals方法完成。
//基本数据用==进行比较相同。 对象比较相同都用equals方法。
System.out.println(s1.equals(s2));//String类覆盖了Object中的equals方法,比较的是字符串内容是否相同。
String s3 = "ab"+"cd";
System.out.println(s1==s3);//true.
}
}
二、StringBuffer字符串缓冲区
特点:
a,缓冲区就是用来缓存数据,意味着它是一个容器。
b,该容器的长度是可变的。
c,提供了对容器中内容的操作的方法(最多无外乎四种:增删改查.)
d,该缓冲区中可以添加多种类型的元素,基本类型和引用类型。
e,无论怎么样的改变容器中的数据,最终要使用结果,还是必须要将其转成字符串,使用toString方法。
三、StringBuilder字符串缓冲区
1、含义:JDK1.5出现一个StringBuilder,区别是StringBuffer是同步的,StringBuilder是非同步的。
2、方法和StringBuffer一样。
四、StringBuffer 和 StringBuilder 的区别
1、StringBuffer是线程安全的。(用在多线程中)
2、StringBuilder是线程不安全的。为了提高效率。 因为不用判断同步锁。(用在单线程里)
3、实际开发时,建议使用StringBuilder,只有在多线程时,才使用StringBuffer。
五、StringBuffer和数组容器的区别
1,数组容器是固定长度的。
StringBuffer是可变长度的。
2,
数组容器一旦初始化就明确了元素的类型。
StringBuffer可以存储任意类型。包括基本和引用。
3,
数组存储完元素可以对元素进行操作(通过角标)。
StringBuffer存储完元素后,都会变成字符串,只能用字符串的方法来操作。
六、基本数据类型对象包装类
1、是按照面向对象思想将基本数据类型封装成了对象。
2、好处:
1)可以通过对象中的属性和行为操作基本数据。
2)可以实现基本数据类型和字符串之间的转换。
3、对应的类名:
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
七、Integer对象
1、特性:JDK1.5以后,简化了定义方式。
Integer x = new Integer(2);可以直接写成Integer x = 2;//自动装箱。
x = x + 3;//自动拆箱。通过intValue方法。
2、数字格式的字符串转成基本数据类型:
将该字符串封装成了Integer对象,并调用对象的方法intValue();
Integer i = new Integer("20");//创建一个20对象
int num = i.intValue();//将320这个对象转换成20数值。
System.out.println(num+1);//打印结果为21