常用API
什么是API?
·API(Application Programming interface):应用程序编程接口
·就是ava帮我们已经写好一些程序,如:类、方法等,我们直接拿过来用就可以解决一些问题。
一.Object类
Object类是Java中所有类的祖宗类,因此,Java中所有类的对象都可以直接使用0bject类中提供的一些方法。
Object类的常见方法
方法名
public String toString()
返回对象的字符串表示形式。
public boolean equals(0bject o)
判断两个对象地址是否相等。
public class Student {
private String name;
private int age;
public Student() {
}
//重写比较内容
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return age == student.age && Objects.equals(name, student.name);
}
public class test {
public static void main(String[] args) {
//目标:掌握object类提供的常用方法
Student s1=new Student("刘敏",23);
System.out.println(s1);
Student s2=new Student("刘敏",23);
System.out.println(s2);
System.out.println(s2.equals(s1));
}
}
protected Object clone()
对象克隆:
浅克隆
拷贝出的新对象,与原对象中的数据一模一样(引用类型拷贝的只是地址)
深克隆
对象中还包含的其他对象,不会拷贝地址,会创建新对象。
public class test2 {
public static void main(String[] args) throws CloneNotSupportedException {
//目标:掌握object类提供的对象克隆的方法
//1.protected Object clone(),对象克隆
User u1=new User(1,"张三","wo666",new double[]{99.0,99.5});
System.out.println(u1.getId());
System.out.println(u1.getPassname());
System.out.println(u1.getScores());
System.out.println(u1.getUsername());
User u2=(User) u1.clone();
System.out.println(u2.getId());
System.out.println(u2.getPassname());
System.out.println(u2.getScores());
System.out.println(u2.getUsername());
}
}
包装类
·包装类就是把基本类型的数据包装成对象。
基本数据类型
byte short int long char float double boolean
对应的包装类(用数据类型)
Byte Short Integer Long Character Float Double Boolean
包装类的其他常见操作
可以把基本类型的数据转换成字符串类型。
public static String toString(double d)
public String toString()
可以把字符串类型的数值转换成数值本身对应的数据类型。
public static int parselnt(String s)
public static Integer value0f(String s)
StringBuilder
StringBuilder代表可变字符串对象,相当于是一个容器,它里面装的字符串是可以改变的,就是用来操作字符串的好处:StringBuilder比String更适合做字符串的修改操作,效率会更高,代码也会更简洁。
1.支持拼接内容
支持链式编程
2.支持反转
public class Test {
public static void main(String[] args) {
//目标·:搞清楚StringBuilder的用法和作用。
StringBuffer s1=new StringBuffer("yue");//无任何内容
//1.拼接内容
s1.append(12);
s1.append("黑马");
s1.append(11.1);
s1.append(true);
// 支持链式编程
s1.append(666);
System.out.println(s1);
//2.反转操作
s1.reverse();
System.out.println(s1);
//3.返回字符串的长度
System.out.println(s1.length());
//4.把StringBuilder对象转变成String类型
String rs=s1.toString();
System.out.println(rs);
}
}
对于字符串相关的操作,如频繁的拼接、修改等,建议用StringBuidler,效率更高!注意:如果操作字符串较少,或者不需要操作,以及定义字符串变量,还是建议用String。
public class Test2 {
public static void main(String[] args) {
//目标:掌握StringBuilder的好处
//需求:拼接100万次abc;
//String 方法
// String rs="";
// for (int i = 0; i <1000000 ; i++) {
// rs=rs+"abc";
// System.out.println(rs);
//使用StringBuilder方法
StringBuffer sb=new StringBuffer();
for (int i = 0; i <1000000 ; i++) {
sb.append("abc");
}
System.out.println(sb);
}
}
StringBuffer与StringBuilder
注意:
StringBuffer的用法与StringBuilder是一模一样的但StringBuilder是线程不安全的StringBuffer是线程安全的。
StringJoiner
·JDK8开始才有的,跟StringBuilder一样,也是用来操作字符串的,也可以看成是一个容器,创建之后里面的内容是可变的。
·好处:不仅能提高字符串的操作效率,并且在有些场景下使用它操作字符串,代码会更简洁