常用API

API概述

API (Application Programming Interface) :应用程序编程接口

Java中的API

指的就是 JDK 中提供的各种功能的 Java 类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API 如何使用。

推荐API帮助文档

jdk-9_汉化版

百度网盘提取:https://pan.baidu.com/s/1j2mjJaWGnBokkg00u5s9kg 

提取码:8691

常见的一些类型

1.String 类

String 类概述【理解】
String 类代表字符串, Java 程序中的所有字符串文字(例如 “abc” )都被实现为此类的实例。也就是说, Java 程序
中所有的双引号字符串,都是 String 类的对象。 String 类在 java.lang 包下,所以使用的时候不需要导包!
String 类的特点【理解】
字符串不可变,它们的值在创建后不能被更改
虽然 String 的值是不可变的,但是它们可以被共享
字符串效果上相当于字符数组 ( char[] ) ,但是底层原理是字节数组 ( byte[] )
String 类的构造方法【记忆】
方法名                                                     说明
public String()                              创建一个空白字符串对象,不含有任何内容
public String(char[] chs)              根据字符数组的内容,来创建字符串对象
public String(byte[] bys)              根据字节数组的内容,来创建字符串对象
String s = “abc”;                          直接赋值的方式创建字符串对象,内容就是abc

代码展示

public class StringDemo01 { 
    public static void main(String[] args) {

//public String():创建一个空白字符串对象,不含有任何内容
 String s1 = new String(); 
System.out.println("s1:" + s1);

 
//public String(char[] chs):根据字符数组的内容,来创建字符串对象 
char[] chs = {'a', 'b', 'c'};
 String s2 = new String(chs);
 System.out.println("s2:" + s2);


 //public String(byte[] bys):根据字节数组的内容,来创建字符串对象 
byte[] bys = {97, 98, 99};
 String s3 = new String(bys); 
System.out.println("s3:" + s3);


 //String s = “abc”; 直接赋值的方式创建字符串对象,内容就是abc 
String s4 = "abc";
 System.out.println("s4:" + s4);
     } 
}

(1)equals方法的作用

        * == 号的作用
                比较基本数据类型:比较的是具体的值
                比较引用数据类型:比较的是对象地址值        

        *方法的介绍

public boolean equals(String s) 比较两个字符串内容是否相同、区分大小写

         *示例代码

public class StringDemo02 {
  public static void main(String[] args) {
     //构造方法的方式得到对象 
    char[] chs = {'a', 'b', 'c'}; 
    String s1 = new String(chs);     
    String s2 = new String(chs);
    //直接赋值的方式得到对象 
    String s3 = "abc"; 
    String s4 = "abc"; 
//比较字符串对象地址是否相同 
    System.out.println(s1 == s2); 
    System.out.println(s1 == s3); 
    System.out.println(s3 == s4); 
    System.out.println("--------"); 
//比较字符串内容是否相同 
    System.out.println(s1.equals(s2)); 
    System.out.println(s1.equals(s3)); 
    System.out.println(s3.equals(s4)); 
    } 
}

常见案例

(1)用户登录案例

已知用户名和密码,请用程序实现模拟用户登录。总共给三次机会,登录之后,给出相应的提示
         *代码实现
/*
 思路:
1:已知用户名和密码,定义两个字符串表示即可 
2:键盘录入要登录的用户名和密码,用 Scanner 实现 
3:拿键盘录入的用户名、密码和已知的用户名、密码进行比较,给出相应的提示。字符串的内容比较,用 equals() 方法实现 
4:用循环实现多次机会,这里的次数明确,采用for循环实现,并在登录成功的时候,使用break结束循环 
*/ 
public class StringTest01 {
 public static void main(String[] args) {
    //已知用户名和密码,定义两个字符串表示即可 

    String username = "itheima"; 
    String password = "czbk"; 

    //用循环实现多次机会,这里的次数明确,采用for循环实现,并在登录成功的时候,使用break结束循环

    for(int i=0; i<3; i++) {
 
    //键盘录入要登录的用户名和密码,用 Scanner 实现
 
    Scanner sc = new Scanner(System.in); 
    System.out.println("请输入用户名:"); 
    String name = sc.nextLine();     
    System.out.println("请输入密码:"); 
    String pwd = sc.nextLine(); 

    //拿键盘录入的用户名、密码和已知的用户名、密码进行比较,给出相应的提示。字符串的内容比较, 用equals() 方法实现

        if (name.equals(username) && pwd.equals(password)) {
             System.out.println("登录成功"); 
             break;
            }     
            else {
                 if(2-i == 0) {
                     System.out.println("你的账户被锁定,请与管理员联系");
                 } else {
  
                   System.out.println("登录失败,你还有" + (2 - i) + "次机会"); 
                } 
            } 
        } 
    } 
}

(2)字符串拼接案例

          定义一个方法,把 int 数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,

并在控制台输出结果。例如,数组为 int[] arr = {1,2,3}; ,执行方法后的输出结果为: [1, 2, 3]
        
        *代码示例
/* 
思路:
1:定义一个 int 类型的数组,用静态初始化完成数组元素的初始化 
2:定义一个方法,用于把 int 数组中的数据按照指定格式拼接成一个字符串返回。 返回值类型 String,参数列表 int[] arr 
3:在方法中遍历数组,按照要求进行拼接 
4:调用方法,用一个变量接收结果 
5:输出结果 
*/ 


public class StringTest04 {
 public static void main(String[] args) {
 //定义一个 int 类型的数组,用静态初始化完成数组元素的初始化 
    int[] arr = {1, 2, 3}; 
//调用方法,用一个变量接收结果 
    String s = arrayToString(arr); 
//输出结果 
    System.out.println("s:" + s); 
    }
//定义一个方法,用于把 int 数组中的数据按照指定格式拼接成一个字符串返回
/* 
两个明确: 返回值类型:String 
参数:int[] arr 
*/ 
    public static String arrayToString(int[] arr) {
//在方法中遍历数组,按照要求进行拼接 
        String s = ""; 
        s += "["; 
        for(int i=0; i<arr.length; i++) {
             if(i==arr.length-1) {
                 s += arr[i];
             } else {
                 s += arr[i];
                 s += ", "; 
              } 
        }
        s += "]"; 
    return s;
    }
}

2.StringBuilder类

(1)StringBuilder类的概述

StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是 StringBuilder 对象中的内容是可变的

(2)StringBuilder类和String类的区别

String 类:内容是不可变的
StringBuilder 类:内容是可变的

(3)常用的构造方法

方法名                                                                  说明
public StringBuilder()                        创建一个空白可变字符串对象,不含有任何内容
public StringBuilder(String str)          根据字符串的内容,来创建可变字符串对象
*代码示例
public class StringBuilderDemo01 {
  public static void main(String[] args) {
//public StringBuilder():创建一个空白可变字符串对象,不含有任何内容 
     StringBuilder sb = new StringBuilder(); 
     System.out.println("sb:" + sb); 
     System.out.println("sb.length():" + sb.length()); 
//public StringBuilder(String str):根据字符串的内容,来创建可变字符串对象 
     StringBuilder sb2 = new StringBuilder("hello"); 
     System.out.println("sb2:" + sb2); 
     System.out.println("sb2.length():" + sb2.length()); 
    } 
}

 (4)StringBuilder类添加和反转方法 [记忆]

方法名                                                                         说明
public StringBuilder append( 任意类型 )           添加数据(直接接着数据后面写),并返回对象本身
public StringBuilder reverse()                             返回相反的字符序列

  *代码示例

public class StringBuilderDemo01 {
 public static void main(String[] args) {
 //创建对象 
       StringBuilder sb = new StringBuilder(); 
//public StringBuilder append(任意类型):添加数据,并返回对象本身 

    // StringBuilder sb2 = sb.append("hello"); 
    // System.out.println("sb:" + sb); 
    // System.out.println("sb2:" + sb2); 
    // System.out.println(sb == sb2); 


    // sb.append("hello"); 
    // sb.append("world"); 
    // sb.append("java"); 
    // sb.append(100); 

//链式编程 
//添加的字符之间没有逗号分隔
    sb.append("hello").append("world").append("java").append(100); 
    System.out.println("sb:" + sb);
 
//public StringBuilder reverse():返回相反的字符序列 
    sb.reverse(); 
    System.out.println("sb:" + sb); 
    } 
}
(5)StringBuilder String 相互转换【应用】
        StringBuilder转换为 String
        public String toString():通过 toString() 就可以实现把 StringBuilder 转换为 String
        String转换为 StringBuilder
        public StringBuilder(String s):通过构造方法就可以实现把 String 转换为 StringBuilder

案例展示

*字符串反转

public class StringBuilderTest02{
   public static void main(String[] args){
    //输入一个字符串,用Scanner实现
        Scanner sc = new Scanner(System.in);
        System.out.printIn("请输入一个字符串:");
        String line = sc.Nextline();
    //调用方法 ,用一个变量接收结果
        String s = myReverse(line);
        System.out.printIn("s:" + s);  
  }
    //定义一个方法,实现字符反转。返回值类型:String, 参数:String s

/*
两个明确:返回值类型:String 
         参数:String s

*/
    public static String myReverse(String s){
        //在方法中用StringBuilder 实现字符串反转,并把结果转换为String返回
        //StringBuilder sb = new StringBuilder(s);
        //sb.reverse();
        //String ss = sb.toString();
        //return ss;

        return new StringBuilder(s).reverse().toString();
    }

}

3.Math类

     

Math类概述

Math 包含执行基本数字运算的方法

Math中方法的调用方式

Math 类中无构造方法,但内部的方法都是静态的,则可以通过 类名 . 进行调用

Math类的常用方法

 方法名                                                                            说明
public static int abs(int a)                              返回参数的绝对值
public static double ceil(double a)                返回大于或等于参数的最小double 值,等于一个整数
public static double flfloor(double a)             返回小于或等于参数的最大double 值,等于一个整数
public static int round(flfloat a)                      按照四舍五入返回最接近参数的int
public static int max(int a,int b)                      返回两个int 值中的较大值
public static int min(int a,int b)                       返回两个int 值中的较小值
public static double pow (double a,double b)      返回a b 次幂的值
public static double random()                          返回值为double 的正值, [0.0,1.0)
代码示例:
/*
    Math类的常用方法
 */
public class MathDemo {
    public static void main(String[] args) {
        //public static int abs​(int a):返回参数的绝对值
        System.out.println(Math.abs(88));
        System.out.println(Math.abs(-88));
        System.out.println("--------");

        //public static double ceil​(double a):返回大于或等于参数的最小double值,等于一个整数
        System.out.println(Math.ceil(12.34));
        System.out.println(Math.ceil(12.56));
        System.out.println("--------");

        //public static double floor​(double a):返回小于或等于参数的最大double值,等于一个整数
        System.out.println(Math.floor(12.34));
        System.out.println(Math.floor(12.56));
        System.out.println("--------");

        //public static int round​(float a):按照四舍五入返回最接近参数的int
        System.out.println(Math.round(12.34F));
        System.out.println(Math.round(12.56F));
        System.out.println("--------");

        //public static int max​(int a,int b):返回两个int值中的较大值
        System.out.println(Math.max(66,88));
        System.out.println("--------");

        //public static int min​(int a,int b):返回两个int值中的较小值(自学)

        //public static double pow​(double a,double b):返回a的b次幂的值
        System.out.println(Math.pow(2.0,3.0));
        System.out.println("--------");

        //public static double random​():返回值为double的正值,[0.0,1.0)
//        System.out.println(Math.random());
        System.out.println((int)(Math.random()*100) + 1);
    }
}

4.System类

     (1)System类的常用方法

                方法名                                                        说明

public  static void exit(int status)                         终止当前运行的java虚拟机,非零表示异常终止

public static long  currenTimeMillis()                  返回当前时间(以毫秒为单位计时)

示例代码

public class SystemDemo {
  public static void main(String[] args) {
        // 获取开始的时间节点 
        long start = System.currentTimeMillis(); 
        for (int i = 1; i <= 10000; i++) {
             System.out.println(i);
         }
        // 获取代码运行结束后的时间节点 
        long end = System.currentTimeMillis(); 
        System.out.println("共耗时:" + (end ­ start) + "毫秒"); 
    } 
}

5.Object类的toString方法

Object类概述

Object 是类层次结构的根,每个类都可以将 Object 作为超类。所有类都直接或者间接的继承自该类, 换句话说,该类所具备的方法,所有类都会有一份

查看方法源码的方式

选中方法,按下 Ctrl + B

重写toString方法的方式

1. Alt + Insert 选择 toString
2. 在类的空白区域,右键 -> Generate -> 选择 toString
toString方法的作用:
以良好的格式,更方便的展示对象中的属性值
示例代码:
public class Student extends Object {
    private String name;
    private int age;

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = 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;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}



/*
测试类
*/

/*
    Object 是类层次结构的根,每个类都可以将 Object 作为超类。所有类都直接或者间接的继承自该类

    看方法源码:选中方法,按下Ctrl+B

    建议所有子类重写此方法:toString()

    怎么重写呢?自动生成即可
 */
public class ObjectDemo {
    public static void main(String[] args) {
        Student s = new Student();
        s.setName("林青霞");
        s.setAge(30);
        System.out.println(s); //com.itheima_01.Student@3f3afe78
        System.out.println(s.toString()); //com.itheima_01.Student@3f3afe78

        /*
        public void println(Object x) { //x = s;
            String s = String.valueOf(x);
            synchronized (this) {
                print(s);
                newLine();
            }
        }

        public static String valueOf(Object obj) { //obj = x;
            return (obj == null) ? "null" : obj.toString();
        }

        public String toString() {
            return getClass().getName() + "@" + Integer.toHexString(hashCode());
        }
         */

    }
}


运行结果:  Student{name='林青霞', age=30}
           Student{name='林青霞', age=30}

Object类中equals方法

   

equals方法的作用

用于对象之间的比较,返回 true false 的结果
举例: s1.equals(s2); s1 s2 是两个对象
重写equals方法的场景
不希望比较对象的地址值,想要结合对象属性进行比较的时候。
重写equals方法的方式
1. alt + insert 选择 equals() and hashCode() IntelliJ Default ,一路 next fifinish 即可
2. 在类的空白区域,右键 -> Generate -> 选择 equals() and hashCode() ,后面的同上。
示例代码:
  1. /*
        测试类
    
        public boolean equals​(Object obj):指示一些其他对象是否等于此
     */
    public class ObjectDemo {
        public static void main(String[] args) {
            Student s1 = new Student();
            s1.setName("林青霞");
            s1.setAge(30);
    
            Student s2 = new Student();
            s2.setName("林青霞");
            s2.setAge(30);
    
            //需求:比较两个对象的内容是否相同
    //        System.out.println(s1 == s2);
    
            System.out.println(s1.equals(s2));
    
            /*
                public boolean equals(Object obj) {
                    //this -- s1
                    //obj -- s2
                    return (this == obj);
                }
             */
    
        }
    }
    

6.Arrays的常用方法

 Arrays的常用方法

方法名                                                                      说明
public static String toString(int[] a)                     返回指定数组的内容的字符串表示形式
public static void sort(int[] a)                                   按照数字顺序排列指定的数组

示例代码:

  1. import java.util.Arrays;
    
    /*
        Arrays 类包含用于操作数组的各种方法
    
        public static String toString​(int[] a):返回指定数组的内容的字符串表示形式
        public static void sort​(int[] a):按照数字顺序排列指定的数组
     */
    public class ArraysDemo {
        public static void main(String[] args) {
            //定义一个数组
            int[] arr = {24, 69, 80, 57, 13};
    
            System.out.println("排序前:" + Arrays.toString(arr));
    
            Arrays.sort(arr);
    
            System.out.println("排序后:" + Arrays.toString(arr));
    
    //        Math;
    //        System;
        }
    }
    

7.包装类

(1)基本类型包装类

    基本类型包装类的作用

          将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据
常用的操作之一:
         用于基本数据类型与字符串之间的转换
              基本数据类型                                                     包装类
  1.                byte                                                                    Byte
  2.                short                                                                    Short
  3.                  int                                                                      Integer
  4.                  long                                                                      Long
  5.                  flfloat                                                                     Float
  6.                 double                                                               Double
  7.                 char                                                                 Character
  8.                 boolean                                                               Boolean

数据更新中..........    不喜勿喷!欢迎大佬们评论提意见

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
CompletableFuture是Java 8中引入的一个类,用于支持异步编程和并发操作。它提供了丰富的API来处理异步任务的结果和操作。以下是CompletableFuture的一些常用API: 1. `CompletableFuture.supplyAsync(Supplier<U> supplier)`:创建一个CompletableFuture对象,该对象会在异步执行给定的Supplier任务后返回结果。 2. `CompletableFuture.runAsync(Runnable runnable)`:创建一个CompletableFuture对象,该对象会在异步执行给定的Runnable任务后返回结果。 3. `CompletableFuture.thenApply(Function<? super T,? extends U> fn)`:对CompletableFuture的结果应用给定的函数,并返回一个新的CompletableFuture对象。 4. `CompletableFuture.thenAccept(Consumer<? super T> action)`:对CompletableFuture的结果应用给定的消费者函数,不返回任何结果。 5. `CompletableFuture.thenRun(Runnable action)`:在CompletableFuture完成后执行给定的Runnable任务。 6. `CompletableFuture.thenCombine(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)`:将两个CompletableFuture的结果进行组合,并将结果应用给定的函数。 7. `CompletableFuture.thenCompose(Function<? super T,? extends CompletionStage<U>> fn)`:对CompletableFuture的结果应用给定的函数,并返回一个新的CompletableFuture对象。 8. `CompletableFuture.exceptionally(Function<Throwable,? extends T> fn)`:在CompletableFuture发生异常时,应用给定的函数处理异常,并返回一个新的CompletableFuture对象。 9. `CompletableFuture.whenComplete(BiConsumer<? super T,? super Throwable> action)`:在CompletableFuture完成后,应用给定的函数处理结果或异常。 10. `CompletableFuture.allOf(CompletableFuture<?>... cfs)`:返回一个CompletableFuture对象,该对象在所有给定的CompletableFuture对象都完成后完成。 以上是CompletableFuture的一些常用API,你可以根据具体的需求选择适合的方法来处理异步任务。如果你有具体的问题或需要更多的示例,请告诉我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值