Java常用API

  • Math
  • System
  • Object
  • Arrays
  • 基本类型包装类
  • 日期类

Math
Math类概述:
Math包含执行基本数字运算的方法

没有构造方法,如何使用类中的成员呢?
看类的成员是否都是静态,如果是,通过类名就可以直接调用

Math类的常用方法
方法名 说明
public static int abs(int a) 返回参数的绝对值
public static double ceil(double a) 返回大于或者等于参数的最小double值,等于一个整数
public static double floor(double a) 返回小于或者等于参数的最大double值,等于一个整数
public static int round(float 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)
eg:

package Java.item;

public class MatnDemo {
    public static void main(String[] args){
        System.out.println(Math.abs(88));
        System.out.println(Math.abs(-88));
        System.out.println("------");

        System.out.println(Math.ceil(12.34));
        System.out.println(Math.ceil(12.56));
        System.out.println("------");

        System.out.println(Math.floor(12.34));
        System.out.println(Math.floor(12.56));
        System.out.println("------");

        System.out.println(Math.round(12.34F));
        System.out.println(Math.round(12.56F));
        System.out.println("------");

        System.out.println(Math.max(66,88));
        System.out.println("------");

        System.out.println(Math.pow(2.0,3.0));
        System.out.println("------");

        System.out.println(Math.random());
        System.out.println(Math.random()*100);
        System.out.println((int)(Math.random()*100));
        System.out.println("------");
    }
}

终端:
88
88
------
13.0
13.0
------
12.0
12.0
------
12
13
------
88
------
8.0
------
0.3213016469549468
11.476555642829966
45
------


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

System类的常用方法
方法名 说明
public static void exit(int status) 终止当前运行的Java虚拟机,非零表示异常终止
public static long currrentTimeMillis() 返回当前时间(以毫秒为单位)
eg:

package Java.item;
/*
System类的常用方法
*/
public class SystemDemo {
    public static void main(String[] args){
        System.out.println("开始");
        //public static void exit(int status):终止当前运行的java虚拟机,非零表示异常终止
        System.exit(0);
        System.out.println("结束");
    }
}

终端:
开始

eg:

package Java.item;
/*
System类的常用方法
*/
public class SystemDemo {
    public static void main(String[] args){
       
        //public static long currentTimeMillis():返回当前时间(以毫秒为单位)
        System.out.println(System.currentTimeMillis());
        System.out.println(System.currentTimeMillis()/1000);
        System.out.println(System.currentTimeMillis()/1000.0);
        System.out.println(System.currentTimeMillis()*1.0/1000/60/60/24/365+"年");
    }
}

终端:
1629511364076
1629511364
1.629511364076E9
51.671466390569506年

eg:

package Java.item;
/*
System类的常用方法
*/
public class SystemDemo {
    public static void main(String[] args){
       
        long start=System.currentTimeMillis();
        for(int i=0;i<1000;i++){
            System.out.println(i);
        }
        long end=System.currentTimeMillis();
        System.out.println("共耗时"+(end-start)+"毫秒");
    }
}

终端:
0
1
2
…(此处省略不写)
998
999
共耗时334毫秒


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

构造方法:public Object()

回想面向对象中,为什么说子类的构造方法默认是父类的无参构造方法?
因为它们的顶级父类只有无参构造方法

eg:

package Java.item;

/*
Object是类层次结构的根,每个类都可以将Object作为超类。所有类都直接或者间接的继承自该类
看方法的源码,选中方法,按下ctrl+B
*/
public class ObjectDemo {
    public static void main(String[] args){
        Student s=new Student();
        s.setName("Mars");
        s.setAge(24);
        System.out.println(s);
        System.out.println(s.toString());
    }
}

终端:
Java.item.Student@71dac704
Java.item.Student@71dac704

Object类的常用方法
方法名 说明
public String toString() 返回对象的字符串表示形式。建议所有子类重写该方法,自动生成
public boolean equals(Object obj) 比较对象是否相等。默认比较地址,重写可以比较内容,自动生成


Arrays
Arrays类包含用于操作数组的各种方法
方法名 说明
public static String toString(int[] a) 返回指定数组的内容的字符串表示形式
public static void sort(int[] a) 按照数字顺序排列指定的数组
工具类的设计思想:

  • 构造方法用private修饰
  • 成员用public static修饰

基本类型包装类
将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。
常用的操作之一:用于基本数据类型与字符串之间的转换。

基本数据类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charChar
booleanBoolean

Integer类的概述和使用
Integer:包装一个对象中的原始类型int的值

方法名说明
public Integer(int value)根据int创建Integer对象(过时)
public Integer(String s)根据String值创建Integer对象(过时)
public static Integer valueOf(int i)返回表示指定的int值的Integer实例
public static Integer value(String s)返回一个保存指定值的Integer对象String

eg :

package Java.item;

public class IntegerDemo {
    public static void main(String[] args){
        //public Integer(int value):根据int创建Integer对象(过时)
        Integer i1=new Integer(100);
        System.out.println(i1);
        
        //public Integer(String s):根据String值创建Integer对象(过时)
        Integer i2=new Integer("100");
        System.out.println(i2);
    }
}

终端:
100
100

eg:

package Java.item;

public class IntegerDemo {
    public static void main(String[] args){
        
        //public static Integer valueOf(int i):返回表示指定的int值的Integer实例
        Integer i1=Integer.valueOf(100);
        System.out.println(i1);
		
        //public static Integer value(String s):返回一个保存指定值的Integer对象String
        Integer i2=Integer.valueOf("100");
        System.out.println(i2);
    }
}

终端:
100
100

int与String相互转换
基本类型包装类的常用操作就是:用于基本类型和字符串之间的相互转换

  • int转为String
    public static String valueOf(int i):返回int参数的字符串表示形式。该方法是String类中的方法
  • String转为int
    public static int parselnt(String s):将字符串解析为int类型。该方法是Integer类中的方法

eg:

package Java.item;

public class IntegerDemo {
    public static void main(String[] args){
        //int----String
        int number=100;
        //方式1
        String s1=""+number;
        System.out.println(s1);
         //方式2
        String s2=String.valueOf(number);
        System.out.println(s2);
        
        //String----int
        String s="100";
        //方式1
        Integer i=Integer.valueOf(s);
        int x=i.intValue();
        System.out.println(x);
        //方式2
        int y=Integer.parseInt(s);
        System.out.println(y);
    }
}

终端:
100
100
100
100

案例:字符串中数据排序
需求:有一个字符串:“9127463850”,请写出程序实现最终输出结果是:“2738465091”

package Java;

import java.util.Arrays;

public class IntergerTest {
    public static void main(String[] args){
        //定义一个字符串
        String s="91 27 46 38 50";
        int i;
        //把字符串中的数字数据存储到一个int类型的数组中
        String[] strArray=s.split(" ");	//split要明白
        //定义一个int数组,把String[]数组中的每一个元素存储到int数组中
        int[] arr=new int[strArray.length];
        for(i=0;i<arr.length;i++){
            arr[i]=Integer.parseInt(strArray[i]);
        }
        //对int数组进行排序
        Arrays.sort(arr);
        //把排序后的int数组中的元素进行拼接得到一个字符串,这里拼接采用StringBuilder来实现
        StringBuilder sb=new StringBuilder();
        for(i=0;i<arr.length;i++){
            if(i==arr.length-1){
                sb.append(arr[i]);
            }else{
                sb.append(arr[i]).append(" ");
            }
        }
        String result=sb.toString();
        //输出结果
        System.out.println("result:"+result);
    }
}

终端:result:27 38 46 50 91

自动装箱和拆箱

  • 装箱:把基本数据类型转换为对应的包装类类型
  • 拆箱:把包装类类型转换为对应的基本数据类型
    Integer i = 100;//自动装箱
    i+=200;//i=i+200; i+200自动拆箱; i=i+200;是自动装箱
    注意:在使用包装类类型的时候,如果做操作,最好先判断是否为null。
    我们推荐的是,只要是对象,在使用前就必须进行不为null的判断。

eg:

package Java;

public class IntergerDemo {
    public static void main(String[] args){
        //装箱:把基本数据类型转换为对应的包装类类型
        Integer i=Integer.valueOf(100);
        Integer ii=100;//Integer.valueOf(100);
        //拆箱:把包装类类型转换为对应的基本数据类型
        //ii+=200;
        ii=ii.intValue()+200;
        System.out.println(ii);
    }
}

终端:300

eg:

package Java;

public class IntergerDemo {
    public static void main(String[] args){
        //装箱:把基本数据类型转换为对应的包装类类型
        Integer i=Integer.valueOf(100);
        Integer ii=100;//Integer.valueOf(100);
        //拆箱:把包装类类型转换为对应的基本数据类型
        //ii+=200;
        //ii=ii.intValue()+200;
        ii+=200;
        System.out.println(ii);
    }
}

终端:300

eg:

package Java;

public class IntergerDemo {
    public static void main(String[] args){
        //装箱:把基本数据类型转换为对应的包装类类型
        Integer i=Integer.valueOf(100);
        Integer ii=100;//Integer.valueOf(100);
        //拆箱:把包装类类型转换为对应的基本数据类型
        //ii+=200;
        //ii=ii.intValue()+200;
        ii+=200;
        System.out.println(ii);

        Integer iii=null;
        if(iii!=null){
            iii+=300;
        }
    }
}

终端:300


日期类
Date类概述和构造方法
Date代表了一个特定的时间,精确到毫秒

方法名说明
public Date()分配一个Date对象,并初始化,以便它代表它被分配的时间,精确到毫秒
public Date(long date)分配一个Date对象,并将其初始化为表示从标准基准时间起指定的毫秒数

eg:

package Java;

import java.util.Date;

public class DateDemo {
    public static void main(String[] args){
        Date d1=new Date();
        System.out.println(d1);

        long date=1000*60*60;
        Date d2=new Date();
        System.out.println(d2);
    }
}

终端:
Tue Sep 07 18:58:05 CST 2021
Tue Sep 07 18:58:05 CST 2021

Date类的常用方法

方法名说明
public long getTime()获取的是日期对象从1970年1月1日00:00:00到现在的毫秒值
public void setTime(long time)设置时间,给的是毫秒值

eg:

package Java;

import java.util.Date;

public class DateDemo {
    public static void main(String[] args){
        Date d=new Date();
        System.out.println(d.getTime());
        System.out.println(d.getTime()*1.0/1000/60/60/24/365+"年");
    }
}

终端:
1631012673959
51.71907675168061年

eg:

package Java;

import java.util.Date;

public class DateDemo {
    public static void main(String[] args){
        Date d=new Date();
        long time=1000*60*60;
        d.setTime(time);
        System.out.println(d);
    }
}

终端:
Thu Jan 01 09:00:00 CST 1970

eg:

package Java;

import java.util.Date;

public class DateDemo {
    public static void main(String[] args){
        Date d=new Date();
        long time=System.currentTimeMillis();
        d.setTime(time);
        System.out.println(d);
    }
}

终端:
Tue Sep 07 19:13:41 CST 2021

SimpleDateFormat类概述
SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。我们重点学习日期格式化和解析

日期和时间格式由日期和时间模式字符串指定,在日期和时间模式字符串中,从’A’到’Z’以及从’a’到’z’引号的字母被解释为表示日期或时间字符串的组建的模式字母
常见的模式字母及对应关系如下:
y 年
M 月
d 日
H 时
m 分
s 秒

SimpleDateFormat的构造方法

方法名说明
public SimpleDateFormat()构造一个SimpleDateFormat,使用默认模式和时间格式
public SimpleDateFormat(String pattern)构造一个SimpleDateFormat使用给定的模式和默认的时间格式

1.格式化(从Date到String)
public final String format(Date date):将日期格式化成日期/时间字符串

2.解析(从String到Date)
public Date parse(String source):从给定字符串的开始解析文本以生成日期

eg:

package Java;

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

public class SimpleDateFormatDemo {
    public static void main(String[] args){
    //格式化:从Date到String
    Date d=new Date();
    SimpleDateFormat sdf=new SimpleDateFormat();
    String s=sdf.format(d);
    System.out.println(s);
    }
}

终端:
2021/9/7 下午7:39

eg:

package Java;

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

public class SimpleDateFormatDemo {
    public static void main(String[] args){
    //格式化:从Date到String
    Date d=new Date();
    SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmss");
    String s=sdf.format(d);
    System.out.println(s);
    }
}

终端:
20210907194311

eg:

package Java;

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

public class SimpleDateFormatDemo {
    public static void main(String[] args) throws ParseException{
    //格式化:从Date到String
    Date d=new Date();
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
    String s=sdf.format(d);
    System.out.println(s);
    System.out.println("------");

    String ss="2048-08-09 11:11:11";
    SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date dd=sdf2.parse(ss);
    System.out.println(dd);
    }
}

终端:
2021年09月07日19:51:58
------
Sun Aug 09 11:11:11 CST 2048

案例:日期工具类
需求:定义一个日期工具类(DateUtils),包含两个方法,把日期转换为指定格式的字符串;把字符串解析为指定格式的日期,然后定义一个测试类(DateDemo),测试日期工具类的方法

eg:

package Java;

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

/*
工具类
构造方法私有
成员方法静态
*/
public class DateUtils {
    private DateUtils(){}
    /*
    把日期转为指定格式的字符串
    返回值类型:String
    参数:Date date,String format
    */
    public static String dateToString(Date date,String format){
        SimpleDateFormat sdf=new SimpleDateFormat(format);
        String s=sdf.format(date);
        return s;
    }
    /*
    把字符串解析为指定格式的日期
    返回值类型:Date
    参数;String s,String format
    */
    public static Date StringToDate(String s,String format) throws ParseException{
        SimpleDateFormat sdf=new SimpleDateFormat(format);
        Date d=sdf.parse(s);
        return d;
    }
}
package Java;

import java.util.Date;

public class DateDemo {
    public static void main(String[] args){
        Date d=new Date();
        String s1=DateUtils.dateToString(d, "yyyy年MM月dd日 HH:mm:ss");
        System.out.println(s1);
        
        String s2=DateUtils.dateToString(d, "yyyy年MM月dd日");
        System.out.println(s2);
        
        String s3=DateUtils.dateToString(d, "HH:mm:ss");
        System.out.println(s3);
    }
}

终端:
2021年09月07日 20:12:00
2021年09月07日
20:12:00

Calendar类概述
Calendar为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法
Calendar提供了一个类方法getlnstance 用于获取Calendar对象,其日历字段已使用当前日期和时间初始化:
Calendar rightNow=Calendar.getlnstance();

eg:

package Java;

import java.util.Calendar;

public class CalerdarDemo {
    public static void main(String[] args){
        Calendar c=Calendar.getInstance();//多态的形式
        System.out.println(c);
    }
}

终端:
java.util.GregorianCalendar[time=1631608005501,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id=“Asia/Shanghai”,offset=28800000,dstSavings=0,useDaylight=false,transitions=31,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2021,MONTH=8,WEEK_OF_YEAR=38,WEEK_OF_MONTH=3,DAY_OF_MONTH=14,DAY_OF_YEAR=257,DAY_OF_WEEK=3,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=4,HOUR_OF_DAY=16,MINUTE=26,SECOND=45,MILLISECOND=501,ZONE_OFFSET=28800000,DST_OFFSET=0]

eg:

package Java;
import java.util.Calendar;

public class CalerdarDemo {
    public static void main(String[] args){
        //获取对象
        Calendar c=Calendar.getInstance();//多态的形式
        //public int get(int field)
        int year=c.get(Calendar.YEAR);
        int month=c.get(Calendar.MONTH)+1;
        int date=c.get(Calendar.DATE);
        System.out.println(year+"年"+month+"月"+date+"日");
    }
}

终端:
2021年9月14日

Calendar的常用方法

方法名说明
public int get(int field)返回给定日历字段的值
public abstract void add(int field,int amount)根据日历的规则,将指定的时间量添加或减去给定的日历字段
public final void set(int year,int month,int date)设置当前日历的年月日

eg:

package Java;

import java.util.Calendar;

public class CalerdarDemo {
    public static void main(String[] args){
        //获取日历对象
        Calendar c=Calendar.getInstance();
        //三年前的今天
        c.add(Calendar.YEAR, -3);
        int year=c.get(Calendar.YEAR);
        int month=c.get(Calendar.MONTH)+1;
        int date=c.get(Calendar.DATE);
        System.out.println(year+"年"+month+"月"+date+"日");
    }
}

终端:
2018年9月14日

eg:

package Java;

import java.util.Calendar;

public class CalerdarDemo {
    public static void main(String[] args){
        //获取日历对象
        Calendar c=Calendar.getInstance();
        //三年后的今天
        c.add(Calendar.YEAR, 3);
        int year=c.get(Calendar.YEAR);
        int month=c.get(Calendar.MONTH)+1;
        int date=c.get(Calendar.DATE);
        System.out.println(year+"年"+month+"月"+date+"日");
    }
}

终端:
2024年9月14日

eg:

package Java;
import java.util.Calendar;

public class CalerdarDemo {
    public static void main(String[] args){
        //获取日历对象
        Calendar c=Calendar.getInstance();
        c.set(2021,9,14);
        int year=c.get(Calendar.YEAR);
        int month=c.get(Calendar.MONTH)+1;
        int date=c.get(Calendar.DATE);
        System.out.println(year+"年"+month+"月"+date+"日");
    }
}

终端:
2021年10月14日

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值