包装类:
1.为什么需要包装类:
JAVA并不是纯面向对象的语言。Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的。但是我们在实际使用中经常需要将基本数据转化成对象,便于操作。比如:集合的操作中。这时,我们就需要将基本类型数据转化成对象!
2.包装类的优点:
1.java中有些方法的参数必须是引用数据类型
2.包装类的功能非常强大
3.包装类可以实现字符串与基本数据类型的转换
3.包装类的缺点:
基本数据类型:只占栈内存,更方便,更灵活,更节省空间
包装类:栈 + 堆 浪费空间
4.包装类的使用:
1.基本数据类型与包装类的转换:
基本数据类型--->包装类
Integer in = new Integer(123);
Integer in = Integer.valueOf(123);
Double d = Double.valueOf(12.4);
包装类--->基本数据类型
int i = in.intValue();
JDK1.5以后新增的功能
Integer in1 = 123; 自动装箱,底层调用的是Integer.valueOf(123)
int i1 = in1; 自动拆箱
2.字符串与基本数据类型的转换
字符串转基本数据类型
int i2 = Integer.parseInt("123");
基本数据类型转成字符串
String str = Integer.toString(i2);
字符串:
1.String:
不可变字符串:一旦被创建,就不能修改它的值。对于已经存在的String对象的修改都是再重新创建一个新的对象,然后把新的值保存进去。
2.字符串常量储存在方法区的常量池中
字符串的比较用equals
建议把字符串常量写到前边,变量写到后边
3.字符串创建的其中三种方法
String str1 = new String();
String str2 = new String("ABC");
char[] chArr = {'A','B','C'};
String str3 = new String(chArr);
4.字符串的常用方法
char ch = str1.charAt(5);//索引为5的字符
String str2 = str1.substring(5);//从索引为5开始后面的字符串
str2 = str1.substring(5, 9);//从索引为5开始 提取4个
int index = str1.indexOf("别吃");//查询索引
System.out.println(str1.contains("饱"));//是否包含某个字符串
System.out.println(a1.equalsIgnoreCase(a2));//比较 忽略大小写
String a3 = new String("老一#老二#老三#老四#老五");
String[] names = a3.split("#");//根据给定正则表达式的匹配拆分此字符串。
String[] names = a3.split("#");//根据给定正则表达式的匹配拆分此字符串。
a4 = a4.concat(" thank").concat(" you");//将指定字符串连接到此字符串的结尾。
可变字符串:
StringBuffer
1.可变的字符序列
2.常用方法
StringBuffer sql = new StringBuffer("selece * from table where 1=1");
sql.qppend(" and profession = " + profession);//在字符串后面加入指定内容
sql.toString(); //返回字符串内容
3.StringBuilder:可变序列
StringBuilder与StringBuffer的区别与联系
1.都是可变字符序列,方法基本相同
2.StringBuffer早期的,StringBuilder JDK1.5以后提供的。
3.StringBuffer效率低,StringBuilder效率高。
4.StringBuffer安全的,StringBuilder不安全的。
5.StringBuffer是线程同步的synchronized