目录
一、Java API概述
API(Application Programming Interface)应用程序编程接口
是对java预先定义的类或接口功能和函数功能的说明文档,目的是提供
给开发人员进行使用帮助说明。
二、基本数据类型包装类
1、Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面
向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设
计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和
基本数据类型对应的类统称为包装类.
2、包装类(如:Integer,Double等)这些类封装了一个相应的基本数据
类型数值,并为其提供了一系列操作方法。
3、基本数据类型封装类
对于包装类来说 这些类的用途主要包含两种:
(1)作为和基本类型对应的类类型存在
(2)包含每种基本类型的相关属性 如 最大值、最小值 等,以及相关的操作方法。
包装类常用属性方法
以java.lang.Integer为例
public static void main(String[] args) {
int num=10;
Integer n=new Integer(12);
System.out.println(num);
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
System.out.println(Integer.SIZE);
System.out.println(Integer.BYTES);
Integer m=new Integer("10");
System.out.println(m.equals(n)); //是否相等 返回false/true
System.out.println(m.compareTo(n)); //前面比后面大返回1,相等返回0,小于返回-1
}
}
4、装箱和拆箱Auto-boxing/unboxing
装箱
(1) 自动将基本数据类型转换为包装器类型
(2) 装箱的时候自动调用的是Integer的valueOf(int)方法
拆箱
(1) 自动将包装器类型转换为基本数据类型
(2) 拆箱的时候自动调用的是Integer的intValue方法
int a=12;
//装箱
Integer b=Integer.valueOf(a);
//拆箱
int c= b.intValue();
int n=10;
//装箱
Integer m=n;
//拆箱
int y=m;
Integer a=Integer.valueOf(127); //同一个地址在 -127-128之间 都为true
Integer b=127;
System.out.println(a==b); //true
Integer c=new Integer(128); //创建了两个新的地址 不管数值为多少都为false
Integer d=new Integer(128);
System.out.println(c==d); //false
三、Object类
/*
● Object类是所有Java类的祖先(根基类)。每个类都使用 Object 作为
超类(父类)。所有对象(包括数组)都实现这个类的方法。
● 如果在类的声明中未使用extends关键字指明其基类,则默认基类为
Object类
public class Person { ... }
● 等价于:
public class Person extends Object {
...
}
*/
public class ObjectDemo {
public static void main(String[] args) {
Person person=new Person();
person.setName("小明");
person.setAge(22);
System.out.println(person);
}
}
public static void main(String[] args) {
//没有重写equals方法 此时调用的是Object类的方法
Person a=new Person();
a.setName("小黑");
a.setAge(11);
Person b=new Person();
b.setName("小黑");
b.setAge(11);
System.out.println(a==b); //false
System.out.println(a.equals(b)); //false 若重写String方法 变为 true
String q="abc";
String z="abc";
System.out.println(q==z); //true
System.out.println(q.equals(z)); //true
String s=new String("128");
String s1=new String("128");
System.out.println(s==s1); //false ==对比的是地址
System.out.println(s.equals(s1)); //true equals 对比的是值是否相等
}
}
public class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
/*
Object类中定义有public String toString()方法,其返回值是 String
类型,描述当前对象的有关信息。
*/
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
//重写equalsDemo中的equals方法
/*
Object类中定义有:
public boolean equals(Object obj)方法: 提供定义对象是否“相等”的逻辑。
Object 的 equals 方法 定义为:x.equals ( y ) ,当 x 和 y是同一
个对象的引用时返回 true 否则返回 false
JDK提供的一些类,如String,Date等,重写了Object的equals方
法,调用这些类的equals方法, x.equals (y) ,当x和y所引用的对象
是同一类对象且属性内容相等时(并不一定是相同对象),返回
true 否则返回 false。
*/
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age &&
name.equals(person.name);
}
}
四、Arrays类
import java.util.Arrays;
public class ArraysDemo {
public static void main(String[] args) {
/*
java.util.Arrays类 用于操作数组工具类,里面定义了常见操作数组的静态方法。
equ