黑马程序员——String类和基本数据类型包装类
2015-08-20 19:53
405 查看
——- android培训、java培训、期待与您交流! ———-
黑马程序员String类和基本数据类型包装类
String类
StringBuffer
基本数据类型对象包装类
字符串一旦初始化就不可以被改变。
java运行环境有一个字符串池,由String类维护,执行语句String str = “abc”时:
首先查看字符串池中是否存在字符串”abc”,如果存在则直接将“abc”赋给str,如果不存在则先在字符串池中新建一个字符串”abc”,然后再将其赋给str.
执行语句String str = new String(“abc”)时。不管字符串池中是否存在字符串“abc”,直接新建一个字符串“abc”,(注意,新建的字符串“abc”不是在字符串池中),然后将其赋给str
由此可见1的效率要高于2。
String类部分方法
返回指定索引处的 char 值。索引范围为从 0 到 length() - 1。序列的第一个 char 值位于索引 0 处,第二个位于索引 1 处,依此类推,这类似于数组索引。
返回此字符串的长度。
将此字符串转换为一个新的字符数组。
返回指定子字符串在此字符串中第一次出现处的索引。
测试此字符串是否以指定的后缀结束。
根据给定正则表达式的匹配拆分此字符串。
返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从指定索引处的字符开始,直到此字符串末尾。
返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex。
分配一个新的 String,使其表示字符数组参数中当前包含的字符序列。该字符数组的内容已被复制;后续对字符数组的修改不会影响新创建的字符串。
String内存图:
StringBuffer可以对字符串内容进行增删。
StringBuffer是一个容器。
很多方法与String相同。
StingBuffer是可变长度的。
StringBuffer特有方法
将参数的字符串表示形式追加到序列。
移除此序列的子字符串中的字符。该子字符串从指定的 start 处开始,一直到索引 end - 1 处的字符,如果不存在这种字符,则一直到序列尾部。如果 start 等于 end,则不发生任何更改。
按顺序将参数中的字符插入此序列中的指定位置,将该位置处原来的字符向后移,此序列将增加该参数的长度。
将此字符序列用其反转形式取代。
JDK1.5出现一个StringBuilder,区别是StringBuffer是同步的,StringBuilder是非同步的。
将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。
常用的操作之一:用于基本数据类型与字符串之间的转换。
例:Integer的parseInt方法,intValue方法。
JDK1.5以后,简化了定义方式。
Integer x = new Integer(4);可以直接写成
Integer x = 4;//自动装箱。
x = x + 5;//自动拆箱。通过intValue方法。
需要注意:
在使用时,Integer x = null;上面的代码就会出现NullPointerException。
黑马程序员String类和基本数据类型包装类
String类
StringBuffer
基本数据类型对象包装类
黑马程序员——String类和基本数据类型包装类
String类
字符串是一个特殊的对象。Stings = new String();和
String s1="";两种写法都是在创建对象,使用起来一样。
字符串一旦初始化就不可以被改变。
String str = "abc"; String str1 = new String("abc");有什么区别 ?
java运行环境有一个字符串池,由String类维护,执行语句String str = “abc”时:
首先查看字符串池中是否存在字符串”abc”,如果存在则直接将“abc”赋给str,如果不存在则先在字符串池中新建一个字符串”abc”,然后再将其赋给str.
执行语句String str = new String(“abc”)时。不管字符串池中是否存在字符串“abc”,直接新建一个字符串“abc”,(注意,新建的字符串“abc”不是在字符串池中),然后将其赋给str
由此可见1的效率要高于2。
String类部分方法
char charAt(int index)
返回指定索引处的 char 值。索引范围为从 0 到 length() - 1。序列的第一个 char 值位于索引 0 处,第二个位于索引 1 处,依此类推,这类似于数组索引。
int length()
返回此字符串的长度。
char[] to CharArray()
将此字符串转换为一个新的字符数组。
int indexOf(String str)
返回指定子字符串在此字符串中第一次出现处的索引。
boolean endsWith(String str)
测试此字符串是否以指定的后缀结束。
String[] split(String reg)
根据给定正则表达式的匹配拆分此字符串。
String substring(int index)
返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从指定索引处的字符开始,直到此字符串末尾。
String substring(int beginIndex, int endIndex)
返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex。
String(char[] arr)
分配一个新的 String,使其表示字符数组参数中当前包含的字符序列。该字符数组的内容已被复制;后续对字符数组的修改不会影响新创建的字符串。
String内存图:
StringBuffer
字符串的组成原理就是通过该类实现的。StringBuffer可以对字符串内容进行增删。
StringBuffer是一个容器。
很多方法与String相同。
StingBuffer是可变长度的。
StringBuffer特有方法
StringBuffer append(int x)
将参数的字符串表示形式追加到序列。
StringBuffer delete(int start, int end )
移除此序列的子字符串中的字符。该子字符串从指定的 start 处开始,一直到索引 end - 1 处的字符,如果不存在这种字符,则一直到序列尾部。如果 start 等于 end,则不发生任何更改。
StringBuffer insert(int index,String str)
按顺序将参数中的字符插入此序列中的指定位置,将该位置处原来的字符向后移,此序列将增加该参数的长度。
StringBuffer reverse();
将此字符序列用其反转形式取代。
JDK1.5出现一个StringBuilder,区别是StringBuffer是同步的,StringBuilder是非同步的。
基本数据类型对象包装类
对应关系:基本类型 | 包装类型 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
boolean | Boolean |
float | Float |
double | Double |
char | Character |
常用的操作之一:用于基本数据类型与字符串之间的转换。
例:Integer的parseInt方法,intValue方法。
JDK1.5以后,简化了定义方式。
Integer x = new Integer(4);可以直接写成
Integer x = 4;//自动装箱。
x = x + 5;//自动拆箱。通过intValue方法。
需要注意:
在使用时,Integer x = null;上面的代码就会出现NullPointerException。
相关文章推荐
- 115个Java面试题和答案——终极列表(下)
- 115个Java面试题和答案——终极列表(上)
- 15个顶级Java多线程面试题及回答
- 9个Java初始化和回收的面试题
- 黑马程序员——异常&IO、其他流&编码表、Properties
- 黑马程序员——多线程
- 黑马程序员-JAVA基础之面向对象
- 黑马程序员——Java基础---面向对象
- 迅雷面试题 多线程编程,开启三个线程每个线程输出一个字符
- 黑马程序员——集合框架的使用及其注意事项
- 黑马程序员——面向对象
- 黑马程序员——Java基础语法(二)---函数与数组
- 黑马程序员——内部类、异常、包
- 关于面试中的fork()问题
- 面试题
- 黑马程序员——Java概
- 如何识别真正的程序员
- 黑马程序员-oc内存管理(Q)
- 黑马程序员-----IO流(3)File类、打印流、序列化、管道流、字符编码等
- 黑马程序员——继承、抽象类、接口、多态