1.包装类
byte---java.lang.Byte
char---java.lang.Character
short—java.lang.Short
int---java.lang.Integer
float—java.lang.Float
double-java.lang.Double
long—java.lang.Long
boolean—java.lang.Boolean
2.装箱和拆箱
JDK5.0提供的新特性
装箱:就是把基本数据类型可以直接赋给对应的包装类
拆箱:就是把包装类对象可以直接赋值给所对应的基本数据类型
3.String类
字符串定义:有多个字符组成的序列
特点:
String类是一个final的类,给字符串赋值不能更改。
原理:
字符串会存放在一个字符串池中,当第一次存放字符串时,字符串池会判断当前池中是否已经存在同样的字符串,如果存在直接指向已经存在的字符串内存地址,如果不存在则存放到字符串池中。
String采用的是Unicode国际统一编码,一个字符占两个字节。
在创建字符串对象时,无需通过new关键字,可以直接给String赋值。如
String str = "hello java";
String str=new String(“abc”); //该句代码创建了两个对象,一个对象是构造方法中的字符串,另个一个则该字符串的副本。
3.字符串相关类
1) java.lang.String: 代表不可变的字符序列。特殊的引用数据类型。
a) String str = "abc"; //最常用
String str2 = new String("abc");
b) 字符串可以使用“+”来连接:String str3 = "abc" + "中国";
也可以用“+”跟其它类型数据进行连接:String str4 = "abc" + 12.345;
c) String类有一个方法length()可以获取它的长度。
String str5 = "salkdf";
str5.length(); // "salkdf".length();
d) 字符串的比较
① == : 比较两个字符串的内存地址。 //用得少
② boolean equals(Object object): 比较的是两个字符串的内容。最常用的方法。
③ boolean equalsIgnoreCase(): 忽略大小写比较两个字符串的内容。
④ int compareTo(String str2): 比较两个字符串的字典顺序。
如果相等,返回0
如果在参数字符串位置之前,返回负数。
如果在参数字符串位置之后,返回正数。
⑤ int compareToIgnoreCase(String str2): 忽略大小写比较两个字符串的字典顺序。
⑥ boolean startsWith(String str): 是否以参数字符串开头
⑦ boolean endsWith(String str): 是否以参数字符串结尾
e) 搜索字符串
① int indexOf(int ch): 搜索指定字符在本串中的索引(从0开始)
② int indexOf(String str): 搜索指定字符串在本串中的索引(从0开始)
③ int lastIndexOf(int ch)
④ int lastIndexOf(String str)
f) 提取子字符串
① char charAt(int index): 提取指定索引处的那个字符。
② String substring(int beginIndex):提取从指定索引处到结尾的子串。
③ String substring(int beginIndex, int endIndex):提取从 beginindex开始直到 endindex(不包括此位置)之间的这部分字符串
④ String concat(String str):跟“+”的功能一样。
⑤ String replace(char oldChar,char newChar):返回一个新的字符串,它是通过用newChar 替换此字符串中出现的所有oldChar而生成的。
⑥ String trim(); 去掉字符串的前后空格。
g) 转大小写
① String toUpperCase(); 转成大写
② String toLowerCase(); 转成小写
h) 其它类型转换成字符串:
static String valueOf(…)可以将基本类型数据、Object类型转换为字符串。
i) 与正则表达式相关的方法:
① String[] split(String regex); 根据给定正则表达式的匹配拆分此字符串
② String replaceAll(String regex, String replacement)使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串.
③ public boolean matches(String regex)告知此字符串是否匹配给定的正则表达式
4.StringBuffer特点:
1.StringBuffer是一个动态的字符串类,所谓动态即表示修改了字符串实际上修改的是字符串的本身,不会产生新的字符序列。
2.StringBuffer底层实际上是通过一个动态的字符数组实现的。
3.StringBuffer是一个线程安全的类。
4.StringBuilder是JDK5.0以后新增的一个和StringBuffer操作完全一致的类,只不过StringBuilder是一个线程不安全的类。从效率方面而言,StringBuilder效率最高其次StringBuffer,String效率最慢
5.静态导入要使用静态成员(方法和变量)我们必须给出提供这个方法的类。
在JDK5.0中,使用静态导入可以使被导入类的所有静态变量和静态方法在当前类直接可见,使用这些静态成员无需再给出他们的类名。
语法:
import static 包名.类名.*;