Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进表示,这样八个和基本数据类型对应的类统称为包装类.
定义: 包装类(如:Integer,Double等)这些类封装了一个相应的基本数据类型数值,并为其提供了一系列操作方法
基本类型与其对应包装类:
byte —Byte
short —Short
char— Character
int —Integer
long —Long
float —Float
double —Double
boolean —Boolean
对于包装类来说,这些类的用途主要包含两种:
● 作为和基本数据类型对应的类类型存在。
● 包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法
● 装箱和拆箱Auto-boxing/unboxing
装箱
自动将基本数据类型转换为包装器类型
装箱的时候自动调用的是Integer的valueOf(int)方法(以Integer类为例)
拆箱
自动将包装器类型转换为基本数据类型
拆箱的时候自动调用的是Integer的intValue方法
例:
//装箱
int a = 12;
Integer b = Integer.valueOf(a);
//拆箱
int c = b.intValue();
int a = 12;
//自动装箱
Integer b = a;
//自动拆箱
int c = b;
String类
String类概述:字符串是由多个字符组成的一串数据(字符序列)的字符串常量,java中所有字符串都是String类的实例对象.
创建形式:
一、
String s = “abc”;
先在栈中创建一个对String类的对象引用变量s,然后去字符串常量池中查找有没有"abc", 如果没有则在常量池中添加”abc”, s引用变量指向常量池中的”abc”,如果常量池中有,则直接指向改地址即可,不用重新创建.
二、
一概在堆中创建新对象,值存储在堆内存的对象中。
String s = new String(“abc”);
特点: String对象不可以更改内容,每次改变都要创建一个新的字符串对象
String类中方法功能
** 判断功能**
boolean equals(Object obj)//判断内容是否相同
boolean equalsIgnoreCase(String str)//判断字符串内容是否相同并忽略大小写区别
boolean contains(String str)//判断是否包含字符串
boolean isEmpty()//判断字符串内容是否为空
boolean startsWith(String prefix)//判断是否以指定字符串开始
boolean endsWith(String suffix)//判断是否以指定字符串结尾
获取功能
int length()//获取字符串长度
char charAt(int index)//获取字符串指定位置的字符
int indexOf(String str)//获取指定字符串在原字符串中第一次出现的索引
int indexOf(String str,int fromIndex)//获取指定字符串在原字符串中指定索引开始时第一次出现的索引
String substring(int start)//获取原字符串在指定索引分割后的一部分字符串
String substring(int start,int end)//获取字符串在指定索引范围分割后的范围中的字符串
转换功能
byte[] getBytes()//转为字节数组
char[] toCharArray()//转成字符数组
static String valueOf(char[] chs)//转为字符串
String toLowerCase()//转小写
String toUpperCase()//转大写
Stirng[] split(分割符);//将含某特殊分割符的原字符串以分隔符为界分开的各个字符串转化为字符串数组
替换功能
String replace(char old,char new)
String replace(String old,String new)
replaceAll(String regex, String replacement)
replaceFirst(String regex, String replacement)
去除字符串两边的空格:String trim()
StringBuffer类
StringBuffer类概述:我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。而StringBuffer就可以解决这个问题。线程安全的可变字符序列
● 构造方法
public StringBuffer()
public StringBuffer(String str)
● 添加功能
public StringBuffer append(String str)
public StringBuffer insert(int offset,String str)
● 删除功能
public StringBuffer deleteCharAt(int index)
public StringBuffer delete(int start,int end)
● 替换功能
public StringBuffer replace(int start,int end,String str)
● 反转功能
public StringBuffer reverse()
● 截取功能
public String substring(int start)
public String substring(int start,int end)
● 截取功能和前面几个功能的不同
返回值类型是String类型,本身没有发生改变
StringBuilder
StringBuilder类功能和StringBuffer功能完全一致, StringBuffer是线程安全的(底层实现为同步:synchronized关键字)
String:是字符常量,适用于少量的字符串操作的情况
StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况
StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况