---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
StringBuffer类和包装类
StringBuffer
(1)字符个数可以发生改变的字符串类。字符串缓冲区类。
(2)与String的区别?
String一旦被赋值,值不能发生改变。而StringBuffer,值还可以改变。
为什么呢?
StringBuffer采用的是缓冲区机制。
一开始,首先开辟一些空间,然后,随着数据的最多,然后,还可以继续开辟空间。这些操作针对的是同一个对象。
A:StringBuffer()
B:StringBuffer(int capacity)
C:StringBuffer(String str)
(4)成员方法:
A:添加功能
public StringBuffer append(int i):在末尾追加元素
public StringBuffer insert(int index,int i):在指定位置添加元素
B:删除功能
StringBuffer deleteCharAt(int index):删除指定位置字符
StringBuffer delete(int start, int end):删除指定开始位置和结束位置间的字符
C:替换功能
StringBuffer replace(int start, int end, String str)
把开始到结束位置的字符用一个新的字符串给替换。
D:截取功能
String substring(int start):从指定位置到末尾截取
String substring(int start, int end): 从指定位置到结束位置截取
E:反转功能
StringBuffer reverse():字符串反转
包装类
(1)基本类型的数据我们只能使用值,不能做更多的操作。为了方便我们操作,
java就把每种基本类型进行了包装。提供方法供我们使用。
(2)基本类型和包装类的对应关系
byte
short
int Integer
long
float
double
char Character
boolean
(3)Integer构造方法
A:Integer i = new Integer(int num);
B:Integer i = new Integer(String s);
注意:s必须是一个由数字字符组成的字符串。
(4)String和int类型的转换
A:String -- int
Integer:
public static int parseInt(String s)
B:int -- String
Integer:
public static String toString(int i)
String:
public static String valueOf(int i)
(5)JDK5以后的新特性
A:自动装箱 基本类型--引用类型
B:自动拆箱 引用类型--基本类型
举例:
java就把每种基本类型进行了包装。提供方法供我们使用。
(2)基本类型和包装类的对应关系
byte
short
int Integer
long
float
double
char Character
boolean
(3)Integer构造方法
A:Integer i = new Integer(int num);
B:Integer i = new Integer(String s);
注意:s必须是一个由数字字符组成的字符串。
(4)String和int类型的转换
A:String -- int
Integer:
public static int parseInt(String s)
B:int -- String
Integer:
public static String toString(int i)
String:
public static String valueOf(int i)
(5)JDK5以后的新特性
A:自动装箱 基本类型--引用类型
B:自动拆箱 引用类型--基本类型
举例:
Integer i = 100;
// 默认相当于new Integer(100)
i += 200;
// 等价于 ii = new Integer(ii.intValue()+200);
(6)面试题:byte常量池
Integer i1 = new Integer(127);
Integer i2 = new Integer(127);
System.out.println(i1 == i2);// false
System.out.println(i1.equals(i2));// true
Integer i3 = new Integer(128);
Integer i4 = new Integer(128);
System.out.println(i3 == i4);// false
System.out.println(i3.equals(i4));// true
Integer i5 = 128;
Integer i6 = 128;
System.out.println(i5 == i6);// false
System.out.println(i5.equals(i6));// true
Integer i7 = 127;
Integer i8 = 127;
System.out.println(i7 == i8);// true
//因为有byte常量池,所以在byte表示的数范围内的会在byte常量池中找
System.out.println(i7.equals(i8));// true
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------