Java常用API

目录

一、API概述

二、Object类

1.public String toString()

2.public boolean equals(Object o)

三、Arrays类

1.public static String toString​(类型[] a)

2.public static void sort​(类型[] a)

3.public static void sort​(类型[] a, Comparator c)

4.public static int binarySearch​(int[] a, int key)

四、Objects类

1.public static boolean equals(Object a, Object b)

2.public static boolean isNull(Object obj)

五、StringBuilder类

1.StringBuilder 构造器

①public StringBuilder() 

②public StringBuilder(String str)

2.StringBuilder常用方法

①public StringBuilder append(任意类型)

②public StringBuilder reverse()

③public int length()

④public String toString()

六、Math类

1.public static int abs(int a)

2.public static double ceil(double a)

3.public static double floor(double a)

4.public static int round(float a)

5.public static int max(int a, int b)

6.public static double pow(double a, double b)

7.public static double random()

七、System类

1.public static void exit(int status)

2.public static long currentTimeMills()

3.public static void arraycopy(数据源数组,起始索引,目的数组,起始索引,拷贝个数)

八、BigDecimal类

九、Date类

1.概述

2.Date的构造器

①public Date()

②public Date(long time)

3.Date的常用方法

①public long getTime()

②public void setTime(long time)

十、SimpleDateFormat

1.构造器

public SimpleDateFormat​(String pattern)

2.格式化方法

①public final String format(Date date)

②public final String format(Object time)

 ③public Date parse​(String source)

十一、Calendar类

1.概述

2.Calendar日历类创建日历对象的方法

public static Calendar getInstance()

3.Calendar常用方法

①public int get(int field)

②public void set(int field,int value)

③public void add(int field,int amount)

④public final Date getTime()

⑤public long getTimeInMillis()

十二、JDK8新增日期类

1.LocalDate/LocalTime/LocalDateTime

①区别

②获取信息的API

③LocalDateTime的转换API

④修改相关的API

2.Instant时间戳

3. DateTimeFormatter

4.Duration/Period

①Period

②Duration

5.ChronoUnit


一、API概述

API,即应用程序接口(JAVA已经写好的方法)

二、Object类

一个类要么默认继承了Object类,要么间接继承了Object类,Object类是Java中的祖宗类。

Object作为所有类的父类,提供了很多常用的方法给每个子类对象拿来使用。

1.public String toString()

默认是返回当前对象在堆内存中的地址信息:类的全限名@内存地址

父类toString()方法存在的意义就是为了被子类重写,以便返回对象的内容信息,而不是地址信息

2.public boolean equals(Object o)

默认是比较当前对象与另一个对象的地址是否相同,相同返回true,不同返回false

equals存在的意义是为了被子类重写,以便子类自己来定制比较规则(比如比较对象内容)

三、Arrays类

数组操作工具类,专门用于操作数组元素

1.public static String toString​(类型[] a)

返回数组的内容(字符串形式)

2.public static void sort​(类型[] a)

对数组进行默认升序排序

3.public static void sort​(类型[] a, Comparator c)

使用比较器对象自定义排序

设置Comparator接口对应的比较器对象,来定制比较规则。

public static void main(String[] args){
        Integer[] age = {34, 12, 42, 23};
        /*
            规则:  如果认为左边数据 大于 右边数据 返回正整数
                    如果认为左边数据 小于 右边数据  返回负整数
                    如果认为左边数据  等于 右边数据  返回0
                    按照这个规则就会升序排序,返过来就会降序排序
        */
        //Comparator是接口,所以在这里使用匿名内部类实现该接口
        Arrays.sort(age, new Comparator() {
            @Override
            public int compare(Integer o1, Integer o2) {
                if(o1 > o2)
                    return 1;
                else if(o1 < o2)
                    return -1;
                return 0;
                //若直接return o1-o2 则默认升序
                //若直接return o2-o1 则默认降序
            }
        });
        System.out.println(Arrays.toString(age));
    }

4.public static int binarySearch​(int[] a, int key)

二分搜索数组中的数据,存在返回索引,不存在返回-1

四、Objects类

1.public static boolean equals(Object a, Object b)

比较两个对象的,底层会先进行非空判断,从而可以避免空指针异常。再进行equals比较

与Object的equal相比,比较的结果是一样的,但是Objects提供的equals更安全

2.public static boolean isNull(Object obj)

判断变量是否为null ,为null返回true ,反之

五、StringBuilder类

StringBuilder是一个可变的字符串的操作类,我们可以把它看成是一个对象容器。

String是不可变类型,StringBuilder是可变类型,StringBuilder可以提高效率,如拼接、修改

但StringBuilder只是拼接字符串的手段,一般还是会使用String

故会使用String rs = s.toString()        其中s是StringBuilder类型

1.StringBuilder 构造器

①public StringBuilder() 

创建一个空白的可变的字符串对象,不包含任何内容

②public StringBuilder(String str)

创建一个指定字符串内容的可变字符串对象

2.StringBuilder常用方法

①public StringBuilder append(任意类型)

添加数据到对象末尾,并返回StringBuilder对象本身

支持链式编程,即连续.append().append().append()

②public StringBuilder reverse()

将对象的内容反转,即反序输出

③public int length()

返回对象内容长度

④public String toString()

通过toString()就可以实现把StringBuilder转换为String

六、Math类

该类的成员都是静态的,可以直接使用,不需要创建对象

常用方法:

1.public static int abs(int a)

获取参数绝对值

2.public static double ceil(double a)

向上取整

3.public static double floor(double a)

向下取整

4.public static int round(float a)

四舍五入

5.public static int max(int a, int b)

获取两个int值中较大的值

6.public static double pow(double a, double b)

返回a的b次幂的值

7.public static double random()

返回值为double的随机值,范围[0.0, 1.0)

七、System类

System的功能是通用的,直接用类名即可,System不能被实例化

常用方法:

1.public static void exit(int status)

终止当前运行的Java虚拟机,非0表示异常终止

2.public static long currentTimeMills()

返回当前系统的时间毫秒值形式

计算机起始时间:1970年1月1日 00:00:00

3.public static void arraycopy(数据源数组,起始索引,目的数组,起始索引,拷贝个数)

数组拷贝

八、BigDecimal类

用于解决浮点型运算精度失真的问题

(我实在是不太会,建议看看b站和API文档)

九、Date类

1.概述

Date类代表当前所在系统的日期时间信息。

2.Date的构造器

①public Date()

创建一个Date对象,代表的是系统当前此刻日期时间。

②public Date(long time)

把时间毫秒值转换成Date日期对象。

3.Date的常用方法

①public long getTime()

返回从1970年1月1日    00:00:00走到此刻的总的毫秒数

②public void setTime(long time)

设置日期对象的时间为当前时间毫秒值对应的时间

十、SimpleDateFormat

代表简单日期格式化,可以用来把日期时间格式化成为我们想要的形式

1.构造器

public SimpleDateFormat​(String pattern)

创建简单日期格式化对象,并封装格式化的形式信息

2.格式化方法

①public final String format(Date date)

将日期格式化成日期/时间字符串

②public final String format(Object time)

将时间毫秒值式化成日期/时间字符串

Java常用API_第1张图片

 ③public Date parse​(String source)

解析字符串时间成为日期对象

public static void main(String[] args) throws ParseException {
        Date date = new Date();
        SimpleDateFormat simpleDate = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
        System.out.println(simpleDate.format(date));
        System.out.println(simpleDate.format(date.getTime()));
        Date date2 = simpleDate.parse("22-10-26 18:21:32");
        System.out.println(date2);
    }

十一、Calendar类

1.概述

Calendar代表了系统此刻日期对应的日历对象。

Calendar是一个抽象类,不能直接创建对象。

calendar是可变日期对象,一旦修改后其对象本身表示的时间将产生变化。

2.Calendar日历类创建日历对象的方法

public static Calendar getInstance()

获取当前日历对象

3.Calendar常用方法

①public int get(int field)

取日期中的某个字段信息。

public static void main(String[] args){
        Calendar calendar = Calendar.getInstance();
        //使用Calendar中的常量填在int field的位置
        System.out.println(calendar.get(Calendar.YEAR));
        System.out.println(calendar.get(Calendar.MONTH));   //月份是从0开始记的,所以输出时会少1
        System.out.println(calendar.get(Calendar.DATE));
        System.out.println(calendar.get(Calendar.HOUR));
        System.out.println(calendar.get(Calendar.MINUTE));
        System.out.println(calendar.get(Calendar.SECOND));
    }

②public void set(int field,int value)

修改日历的某个字段信息。

③public void add(int field,int amount)

为某个字段增加/减少指定的值

④public final Date getTime()

拿到此刻日期对象

⑤public long getTimeInMillis()

拿到此刻时间毫秒值

十二、JDK8新增日期类

1.LocalDate/LocalTime/LocalDateTime

①区别

LocalDate:不包含具体时间的日期。

LocalTime:不含日期的时间。

LocalDateTime:包含了日期及时间。

//静态方法,根据当前时间创建对象
LocaDate localDate = LocalDate.now();
LocalTime llocalTime = LocalTime.now();
LocalDateTime localDateTime = LocalDateTime.now();

//静态方法,指定日期/时间创建对象
LocalDate localDate1 = LocalDate.of(2099 , 11,11);
LocalTime localTime1 = LocalTime.of(11, 11, 11);
LocalDateTime localDateTime1 = LocalDateTime.of(2020, 10, 6, 13, 23, 43);

②获取信息的API

public int geYear()                                获取年

public int getMonthValue()                   获取月份(1-12)

Public int getDayOfMonth()                 获取月中第几天

Public int getDayOfYear()                    获取年中第几天

Public DayOfWeek getDayOfWeek()   获取星期

③LocalDateTime的转换API

public LocalDate toLocalDate()            转换成一个LocalDate对象

public LocalTime toLocalTime()            转换成一个LocalTime对象

④修改相关的API

plusDays, plusWeeks, plusMonths, plusYears

向当前 LocalDate 对象添加几天、 几周、几个月、几年

minusDays, minusWeeks, minusMonths, minusYears

从当前 LocalDate 对象减去几天、 几周、几个月、几年

withDayOfMonth, withDayOfYear, withMonth, withYear

将月份天数、年份天数、月份、年 份 修 改 为 指 定 的 值 并 返 回 新 的 LocalDate 对象

isBefore, isAfter

比较两个 LocalDate

2.Instant时间戳

Instant instant = Instant.now();
System.out.println("当前时间戳是:" + instant);

Date date = Date.from(instant);
System.out.println("当前时间戳是:" + date);

instant = date.toInstant();
System.out.println(instant);

3. DateTimeFormatter

正反都能调用format方法,即LocalDateTime对象和DateTimeFormatter对象都能调用format方法

LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt);//2021-03-01T15:09:17.444190900
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String ldtStr = ldt.format(dtf);
System.out.println(ldtStr);//2021-03-01 15:09:17
String ldtStr1 = dtf.format(ldt);
System.out.println(ldtStr1);//2021-03-01 15:09:17

4.Duration/Period

①Period

用于计算两个日期间隔

LocalDate today = LocalDate.now();
System.out.println(today);     // 2021-03-01
LocalDate birthDate = LocalDate.of(1995, 1, 11);
System.out.println(birthDate); // 1995-01-11
Period period = Period.between(birthDate, today);
System.out.printf("年龄 : %d 年 %d 月 %d 日", period.getYears(), period.getMonths(), period.getDays());

②Duration

用于计算两个时间间隔

LocalDateTime today = LocalDateTime.now();
System.out.println(today);
LocalDateTime birthDate = LocalDateTime.of(1990,10,1,10,50,30);
System.out.println(birthDate);
Duration duration = Duration.between(birthDate, today);//第二个参数减第一个参数
System.out.println(duration.toDays());//两个时间差的天数
System.out.println(duration.toHours());//两个时间差的小时数
System.out.println(duration.toMinutes());//两个时间差的分钟数
System.out.println(duration.toMillis());//两个时间差的毫秒数
System.out.println(duration.toNanos());//两个时间差的纳秒数

5.ChronoUnit

用于比较所有的时间单位

LocalDateTime today = LocalDateTime.now();
System.out.println(today);
LocalDateTime birthDate = LocalDateTime.of(1990,10,1,10,50,30);
System.out.println(birthDate);

System.out.println("相差的年数:" + ChronoUnit.YEARS.between(birthDate, today));
System.out.println("相差的月数:" + ChronoUnit.MONTHS.between(birthDate, today));
System.out.println("相差的周数:" + ChronoUnit.WEEKS.between(birthDate, today));
System.out.println("相差的天数:" + ChronoUnit.DAYS.between(birthDate, today));
System.out.println("相差的时数:" + ChronoUnit.HOURS.between(birthDate, today));
System.out.println("相差的分数:" + ChronoUnit.MINUTES.between(birthDate, today));
System.out.println("相差的秒数:" + ChronoUnit.SECONDS.between(birthDate, today));
System.out.println("相差的毫秒数:" + ChronoUnit.MILLIS.between(birthDate, today));
System.out.println("相差的微秒数:" + ChronoUnit.MICROS.between(birthDate, today));
System.out.println("相差的纳秒数:" + ChronoUnit.NANOS.between(birthDate, today));

System.out.println("相差的半天数:" + ChronoUnit.HALF_DAYS.between(birthDate, today));
System.out.println("相差的十年数:" + ChronoUnit.DECADES.between(birthDate, today));
System.out.println("相差的世纪(百年)数:" + ChronoUnit.CENTURIES.between(birthDate, today));
System.out.println("相差的千年数:" + ChronoUnit.MILLENNIA.between(birthDate, today));
System.out.println("相差的纪元数:" + ChronoUnit.ERAS.between(birthDate, today));

你可能感兴趣的:(Java,java,开发语言)