包装类
装箱
把基本类型的数据,包装到包装类中(基本类型的数据->包装类)
构造方法
- Integer(int value)构造一个新分配的Integer对象,它表示指定的int值。
- Integer(String s)构造一个新分配的Integer对象,它表示String参数所指示的int值。
传递的字符串,必须是基本数值类型的字符串,否则会异常
静态方法
- static Integer valueOf(int i) 返回一个表示指定的int值的Integer实例。
- static Integer valueOf(String s) 返回保存指定的String的值的Integer对象。
拆箱
在包装类中取出基本类型的数据(包装类->基本类型的数据)
成员方法:
int intValue()以int类型返回该Integer的值。
- 因为是成员方法,所有的Integer类的变量都能调用这个方法,即 变量.inValue();
自动装箱和自动拆箱
基本类型的数据和包装类之间可以自动的相互转换
JDK1.5之后出现的新特性
自动装箱:直接把int类型的整数赋值给包装类
Integer in = 1;就相当于 Integer in = new Integer(1);
自动拆箱:in是包装类,无法直接参与运算,可以自动转换为基本类型的数据,再参与计算
- in+2;就相当于in.intValue() + 3 = 3
- in = in + 2;就相当于in = new Integer(3)自动装箱
ArrayList集合无法直接存储整数,可以存储Integer包装类
-
ArrayList集合无法直接存储整数,可以存储Integer包装类
ArrayList list = new ArrayList<>(); -
list.add(1);//自动装箱 list.add(new Integer(1));
-
int a = list.get(0);//自动拆箱list.get(0).inValue();
StringBuilder类
字符串缓冲区,可以提高字符串的效率
构造方法
-
Public StringBuilder():构造一个空的StringBuilder容器。
-
Public StringBuilder(String str):构造一个StringBuilder容器,并将字符串添加进去。
StringBuilder bu2 = new StringBuilder(“abc”);
成员方法
-
Public StringBuilder append(…):添加任意类型数据的字符串形式,并返回当前对象自身。
StringBuilder bu2 = bu1.append(“abc”).append(1);
System.out.println(bu1);
System.out.println(bu2);
System.out.println(bu1==bu2);//true 两个对象是同一个对象- 参数: 可以是任意的数据类型
- 使用append方法无需接收返回值
StringBuilder和String可以相互转换:
public static void main(String[] args) {
//String->StringBuilder
String str = "Hello";
System.out.println("str:"+str);
StringBuilder bu = new StringBuilder(str);
//往StringBuilder中添加数据
bu.append("world");
System.out.println("bu:"+bu);
//StringBuilder->String
String s = bu.toString();
System.out.println("s:"+s);
}
}
-
String ->StringBuilder:可以使用StringBuilder的构造方法
String str = “Hello”;
System.out.println(“str:”+str);
StringBuilder bu = new StringBuilder(str);- StringBuilder(String str)构造一个字符串生成器,并初始化为指定的字符串内容。
-
StringBuilder -> String:可以使用StringBuilder中的toString方法
StringBuilder bu = new StringBuilder(str);
//往StringBuilder中添加数据
bu.append(“world”);
System.out.println(“bu:”+bu);//StringBuilder->String
String s = bu.toString();
System.out.println(“s:”+s);
链式编程:方法的返回值是一个对象,可以根据对象继续调用方法
bu1.append("abc").append(1).append(true).append(8.8);
System.out.println(bu1);
Object类
所有抽象类的父类
成员方法
-
toString方法
- String toString() 返回该对象的字符串表示
- 直接打印对象的名字,其实就是调用对象的toString方法p=p.toString();
- 看一个类是否重写了toString方法,直接打印这个类对应对象的名字即可
如果没有重写toString方法,那么打印就是对象的地址值(默认)
如果重写了,那么就按照重写的方式打印
/*直接打印对象的地址值没有意义,需要重写Object类的toString方法
* 打印对象的属性(name,age)*/
@Override
public String toString(){
return "Person{name = "+name+",age = "+age+"}";
}
-
equals方法
-
boolean equals(Object obj)指示其他某个对象是否与此对象”相等“。
-
Object 类equals方法的源码:
public boolean equals(Object obj){
return (this == obj);
}- 参数:Object obj:可以传递任意的对象
方法体:
- 参数:Object obj:可以传递任意的对象
-
==:比较运算符,返回的就是一个布尔值 true,false
this:哪个对象调用的方法,方法中的this就是哪个对象;p1调用的equals方法,所以this就是p1
obj:是传过来的参数p2
this==obj -->p1==p2
基本数据类型:比较的是值
引用数据类型:比较的是两个对象的地址值