Java基础17-常用API

本文深入讲解Java中的核心类和概念,包括Math类的随机数生成,System类的使用,Object类的方法重写,Arrays类的排序方法,基本类型包装类的特性,以及日期类的操作。通过实例代码详细介绍了如何实现这些功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Math

## 1.1
在这里插入图片描述

public class MathDemo {
    public static void main(String[] args) {
        // Math.random() 输出[0-1)的随机数,前闭后开
        System.out.println(Math.random());
        // 输出1-100之间的整数
        System.out.println((int)((Math.random())*100) + 1);

    }

}

2.System

2.1 System类的概述

System包含几个有用的类字段和方法,不能被实例化

2.2 System 类常用方法

在这里插入图片描述

public class SystemDemo {
    public static void main(String[] args) {
        System.out.println("start");
        System.exit(0);
        System.out.println("end");
    }
}
输出结果:
start

3. Object

3.1 object类的概述

在这里插入图片描述

3.2 Object类的toString()方法

看方法的源码,选中方法,按下Ctrl+B
建议都重写此方法

public class Student {
    public String name;
    public int age;


    public String getName() {
        return name;
    }
    public Student() {
    }
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    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 +
                '}';
    }
}

public class ObjectDemo {
    public static void main(String[] args) {
        Student student = new Student();
        student.setAge(20);
        student.setName("alisa");
        System.out.println(student);
        System.out.println(student.toString());

    }
}
输出结果:
Student{name='alisa', age=20}
Student{name='alisa', age=20}

3.2 Object类的equals()方法

package learn;

public class Student {
    public String name;
    public int age;


    public String getName() {
        return name;
    }
    public Student() {
    }
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    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 +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof Student)) return false;

        Student student = (Student) o;

        if (age != student.age) return false;
        return name != null ? name.equals(student.name) : student.name == null;
    }

    @Override
    public int hashCode() {
        int result = name != null ? name.hashCode() : 0;
        result = 31 * result + age;
        return result;
    }
}

public class ObjectDemo {
    public static void main(String[] args) {
        Student student1 = new Student();
        student1.setAge(20);
        student1.setName("alisa");
        Student student2 = new Student();
        student2.setAge(20);
        student2.setName("alisa");
        System.out.println(student1 == student2);
        System.out.println(student1.equals(student2));

    }
}
输出结果:
false
true

4.Arrays

4.1 冒泡排序

排序:将一组数据按照固定的规则进行排列
冒泡排序:一种排序的方式,对要进行排序的数据两两相邻进行比较,将较大的数据放在后面,依次对所有的数据进行操作,直至所有的数据按要求进行排序
如果有n个数据进行排序,总共需要比较n-1次
每一次比较完毕,下一次比较的数据就会少一个参与

public class SortTest {
    public static void main(String[] args) {
     /*   如果有n个数据进行排序,总共需要比较n-1次
        每一次比较完毕,下一次比较的数据就会少一个参与*/
        int a[] = {6, 20, 3, 8, 1};
        for (int i = 0; i < a.length - 1; i++) {
            for (int j = 0; j < a.length - 1 - i; j++) {
                if (a[j] > a[j + 1]) {
                    int temp = a[j];
                    a[j] = a[j + 1];
                    a[j + 1] = temp;
                }
            }
        }
        System.out.println(arrayPrint(a));
    }

    public static String arrayPrint(int[] arr) {
        StringBuffer sb = new StringBuffer();
        sb.append("[");
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                sb.append(arr[i]);
                sb.append("]");
            } else {
                sb.append(arr[i]).append(",");
            }
        }
        return sb.toString();

    }
}
输出结果:
[1,3,6,8,20]

4.2 Arrays 类的概述和常用方法

在这里插入图片描述

public class ArraysDemo {
    public static void main(String[] args) {
        int a[] = {6, 20, 3, 8, 1};
        System.out.println(Arrays.toString(a));
        Arrays.sort(a);
        System.out.println(Arrays.toString(a));
    }
}
输出结果:
[6, 20, 3, 8, 1]
[1, 3, 6, 8, 20]

5. 基本类型包装类

5.1 基本类型包装类概述

在这里插入图片描述

5.2 Integer 类的概述和使用

在这里插入图片描述

5.3 int 和String的相互转换

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
具体代码如下:

import java.util.Arrays;

public class IntegerTest {
    public static void main(String[] args) {
        String s = "20 44 2 4 66";
        String[] ss = s.split(" ");
        int[] arr = new int[ss.length];
        for(int i=0;i< ss.length;i++){
            arr[i] = Integer.parseInt(ss[i]);
    }
        Arrays.sort(arr);
        System.out.println(arrayPrint(arr));
    }
    public static String arrayPrint(int[] arr) {
        StringBuffer sb = new StringBuffer();
        sb.append("[");
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                sb.append(arr[i]);
                sb.append("]");
            } else {
                sb.append(arr[i]).append(",");
            }
        }
        return sb.toString();

    }
}

5.4 自动装箱和拆箱

在这里插入图片描述

6. 日期类

6.1 Date 类概述和构造方法

在这里插入图片描述
在这里插入图片描述

6.2 Date 类的常用方法

在这里插入图片描述

import java.util.Date;

public class DateDemo {
    public static void main(String[] args) {
        Date d = new Date();
        System.out.println(d.getTime());
        //long time = System.currentTimeMillis();
        long time =1515650841079L;
        d.setTime(time);
        System.out.println(d);
    }
}
输出结果:
1585651110785
Thu Jan 11 14:07:21 CST 2018

6.3 SimpleDateFormat 类概述

在这里插入图片描述

6.4 SimpleDateFormat 的构造方法

在这里插入图片描述

6.5 SimpleDateFormat 格式化和解析日期

在这里插入图片描述

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateDemo {
    public static void main(String[] args) throws ParseException {
        // 格式化:从Date到String
        Date d = new Date();
        //SimpleDateFormat sdf = new SimpleDateFormat();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String s = sdf.format(d);
        System.out.println(s);
        // 格式化:从String到 Date
        String ss = "2020-03-31 18:49:19";
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = sdf1.parse(ss);
        System.out.println(date);

    }
}
输出结果:
2020-03-31 18:53:55
Tue Mar 31 18:49:19 CST 2020

6.6 Calendar 类概述

在这里插入图片描述

6.7 Calendar 的常用方法

在这里插入图片描述

import java.util.Calendar;

public class CalendarDemo {
    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        //System.out.println(c);
        // public int get (int field)
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH) + 1;//月从0开始,当期月份必须要加1
        int date = c.get(Calendar.DATE);
        System.out.println(year +"年"+month+"月"+date+"日");
        c.add(Calendar.YEAR,1);
        System.out.println(c.get(Calendar.YEAR) +"年"+month+"月"+date+"日");
        c.set(2028,10,11);
        System.out.println(c.get(Calendar.YEAR)+"年"+c.get(Calendar.MONTH)+"月"+c.get(Calendar.DATE)+"日");

    }
}
输出结果:
2020年3月31日
2021年3月31日
2028年10月11日

在这里插入图片描述
具体代码如下:


import java.util.Calendar;
import java.util.Scanner;

public class CalendarDemo {
    public static void main(String[] args) {
        System.out.println("请输入年份");
        Scanner sc = new Scanner(System.in);
        int year = sc.nextInt();
        isLeap(year);
    }
    public static void isLeap(int year){
        Calendar c = Calendar.getInstance();
        c.set(year,2,1);
        c.add(Calendar.DATE,-1);
        System.out.println(year +"年的2月份有"+c.get(Calendar.DATE)+"天");

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值