目录
常用类API
常用类:Java系统中提供的一些使用频率较高的类
API:(Application Programming Interface):应用程序编程接口
Java系统中所提供的一系列类和接口
api文档:官方给广大Java开发者、学习者提供对类和接口功能的说明文档
object
java.lang.object是Java类体系中的最顶级的类,万类之祖,
- package com.ffyc.javaapi.objectdemo;
-
- public class Person extends Object{
- private String name;
- private int age;
-
- public Person() {
- }
-
- public Person(String name, int age) {
- this.name = name;
- this.age = age;
- }
-
- /*
- 重写父类中toString方法
- */
- @Override
- public String toString() {
- return "Person{" +
- "name='" + this.name + '\'' +
- ", age=" + this.age +
- '}';
- }
- }
toString()
当输出一个对象时,会默认调用类中toString()方法,把对象以字符串形式输出,
类中如果没有toString(),那么会调用父类(Object.toString)
public String toString(){
//Object类中默认输出类的名字和对象在内存中的地址(10进制 转为16进制)
return getClass().getName() + "@" + Integer.toHexString(hashCode())
}
- package com.ffyc.javaapi.objectdemo;
-
- public class ToStringDemo {
- */
-
- public static void main(String[] args) {
- Person person1 = new Person("三儿",18);
- Person person2 = new Person("小舞",100000);
- System.out.println(person1);//没有进行对toString方法重写前输出:com.ffyc.javaapi.objectdemo.Person@1b6d3586
- System.out.println(person2);
- }
-
- }
重写前

重写后

- package com.ffyc.javaapi.objectdemo;
-
- public class Person extends Object{
- private String name;
- private int age;
-
- public Person() {
- }
-
- public Person(String name, int age) {
- this.name = name;
- this.age = age;
- }
-
- /*
- 重写父类中equals方法
- */
- @Override
- public boolean equals(Object obj) {
- Person p = (Person)obj;
- return this.name.equals(p.name) && this.age == p.age;
- }
- }
public boolean equals(Object obj){
return (this == obj);
}
== 用于基本类型,比较值是否相等
== 用于引用类型比较时,比较的是两个引用的地址是否相等
- package com.ffyc.javaapi.objectdemo;
-
- import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;
-
- public class TestEquals {
- public static void main(String[] args) {
- int a = 10;
- int b = 10;
- System.out.println(a==b);
- Person person1 = new Person("三儿",18);//凡是new出来的,内存地址肯定不同
- Person person2 = new Person("三儿",18);
- Person person3 = person2;
- System.out.println(person1.equals(person2));
- //以后如果比较两个对象的地址是否相等时,直接使用==比较即可
- System.out.println(person1==person2);
- System.out.println(person3==person2);
- //所以其他的类为了比较两个对象中包含的内容是否相等,都对Object中的equals(),进行了重写,改为判断内容是否相等
- System.out.println(person1.equals(person2));
-
- //equals()用来比较对象中的内容是否相等
- String s1 = new String("aaa");
- String s2 = new String("aaa");
- System.out.println(s1==s2);//false
- System.out.println(s1.equals(s2));//true
- }
- }
重写前

重写后

equals是object类中的方法,只能用于判断引用类型
equals方法默认判断的是地址是否相等,子类中往往重写该方法,用于判断内容是否相等。
比如String和Integer类中的equals源代码
- package com.ffyc.javaapi.arraysdemo;
-
- import java.util.Arrays;
-
- public class ArraysEquals {
-
- public static void main(String[] args) {
- int[] a = {1,2,3,4,5,6};//数组也是对象,也是继承Object
- int[] b = {1,2,3,4,5,6};
- System.out.println(a==b);//false 比较的是两个数组对象的地址
- System.out.println(a.equals(b));//false 数组也是对象,也继承了Object类,数组名.equals() 调用的是Object类中的equals
- System.out.println(Arrays.equals(a,b)); //true比较的两个数组中的内容是否相等
- }
- }
-

- package com.ffyc.javaapi.arraysdemo;
-
- import java.util.Arrays;
-
- public class ArraysBinarySearch {
-
- public static void main(String[] args) {
- int [] a = {1,2,3,4,5,6,7};
-
- //二分查找算法, 需要数组是有序,如果数组中不包含要找的key,返回负数,找到了返回元素所在的索引位置
- int index = Arrays.binarySearch(a,8);
- System.out.println(index);
-
- //指定区间的查找 包含开始索引,到结束索引-1.
- int index1 = Arrays.binarySearch(a,0,4,5);
- System.out.println(index1);
- }
- }
-

数组复制:
java中的数组在创建时,指定长度,一旦给定长度不能改变
30--->扩容40 new 40
将原数组中的内容复制到一个指定长度的新数组中
- package com.ffyc.javaapi.arraysdemo;
-
- import java.util.Arrays;
-
- public class ArraysCopyof {
-
- public static void main(String[] args) {
-
- int [] a = {1,2,3,4,5};
- int[] b = Arrays.copyOf(a,10);
- System.out.println(Arrays.toString(b));
- }
- }
-

即对一个数组的所有元素进行排序
而且排序的时候是从小到大
- package com.ffyc.javaapi.arraysdemo;
-
- import java.util.Arrays;
-
- public class ArraysSort {
- public static void main(String[] args) {
-
- //基本数据类型
- int [] a = {5,2,3,4,1,6};
- Arrays.sort(a);//对整个数组默认进行升序排序
- Arrays.sort(a,0,4);//对指定区间进行升序排序,包含开始位置,不包含结束位置(显示结束位置的上一位)
- System.out.println(Arrays.toString(a));
-
- //引用数据类型
- String[] s = {"b","a","c","d"};
- Arrays.sort(s);
- System.out.println(Arrays.toString(s));
- }
- }

当存在两种或两种以上数据类型时,通过重写sort()方法进行排序
- package com.ffyc.javaapi.arraysdemo;
-
- public class Student implements Comparable
{ - private int num;
- private String name;
-
- public Student(int num, String name) {
- this.num = num;
- this.name = name;
- }
-
- @Override
- public String toString() {
- return "Student{" +
- "num=" + num +
- ", name='" + name + '\'' +
- '}';
- }
-
- /*
- 此方法用来制定和排序规则
- 此方法会在sort()进行调用
- */
- @Override
- public int compareTo(Student o) {
- return this.num - o.num;//小于0 等于0 大于0(通过num排序)
- //return this.name.compareTo(o.name);(通过name排序)
- }
- }
- package com.ffyc.javaapi.arraysdemo;
-
- import java.util.Arrays;
-
- public class ArraysSort {
- public static void main(String[] args) {
-
- Student s1 = new Student(001,"三儿");
- Student s2 = new Student(002,"十三");
- Student s3 = new Student(003,"洛雪");
- Student s4 = new Student(004,"一心");
- Student[] students = new Student[4];
- students[0] = s2;
- students[1] = s1;
- students[2] = s4;
- students[3] = s3;
- Arrays.sort(students);
- System.out.println(Arrays.toString(students));
-
- //System.out.println("a".compareTo("b"));字符串比较大小,返回一个int值
-
- }
- }

Java中基本数据类型,由8种关键字设声明的,不是面向对象的设计。
为了对基本类型更加方便的操作,Java为每一种基本类型创建了一个类来进行表示。
核心是类中还是包含了一个基本数据类型,还包含了很多关于基本类型操作的方法。
这样我们使用包装类型,表示一个数据,符合面向对象思想
- package com.ffyc.javaapi.datatype;
-
- public class MyInt {
-
- int value;
-
- public MyInt(int value) {
- this.value = value;
- }
-
- public int maxint(){
- return Integer.MAX_VALUE;
- }
-
- public int minint(){
- return Integer.MIN_VALUE;
- }
-
- public static void main(String[] args) {
- int a = 10;
- MyInt b = new MyInt(10);
- System.out.println(b.maxint());
- System.out.println(b.minint());
- System.out.println(Integer.toBinaryString(3));
- }
- }

- package com.ffyc.javaapi.datatype;
-
- public class IntegerDemo1 {
- public static void main(String[] args) {
- int x = 10;
- Integer a = new Integer(x);
-
- System.out.println(Integer.MAX_VALUE);
- System.out.println(Integer.MIN_VALUE);
- System.out.println(Integer.SIZE);
- System.out.println(Integer.BYTES);
- System.out.println(Integer.toBinaryString(333));
- }
- }
