java、常用类&异常体系

1.1 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)

1.2 System常用方法

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

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

例子:在控制台输出1-10000,计算这段代码执行了多少毫秒

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) + "毫秒");
    }
}

1.3 Object类的应用

toString 方法:

        作用:以良好的格式,更方便的展示对象中的属性值。

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

equals 方法

        作用:用于对象之间的比较,返回true和false的结果。

        举例:s1.equals(s2); s1和s2是两个对象。

例子:

class Student {
    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 boolean equals(Object o) {
        //this -- s1
        //o -- s2
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Student student = (Student) o; //student -- s2

        if (age != student.age) return false;
        return name != null ? name.equals(student.name) : student.name == null;
    }
}
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.equals(s2));
    }
}

1.4 Arrays常用方法

public static String toString(int[] a)                 返回指定数组的内容的字符串表示形式

public static void sort(int[] a)                         按照数字顺序排列指定的数组

1.5 日期类

Date类

        Date 代表了一个特定的时间,精确到毫秒

常用构造方法:

public Date()                 分配一个 Date对象,并初始化,以便它代表它被分配的时间,精确到毫秒

public Date(long date)  分配一个 Date对象,并将其初始化为表示从标准基准时间起指定的毫秒数

例子:

public class DateDemo01 {
    public static void main(String[] args) {
        //public Date():分配一个 Date对象,并初始化,以便它代表它被分配的时间,精确到毫秒
        Date d1 = new Date();
        System.out.println(d1);

        //public Date(long date):分配一个 Date对象,并将其初始化为表示从标准基准时间起指定的毫秒数
        long date = 1000*60*60;
        Date d2 = new Date(date);
        System.out.println(d2);
    }
}

常用方法:

public long getTime()                 获取的是日期对象从1970年1月1日 00:00:00到现在的毫秒值

public void setTime(long time)    设置时间,给的是毫秒值

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

例子:
        //创建日期对象
        Date d = new Date();

 //       public long getTime():获取的是日期对象从1970年1月1日 00:00:00到现在的毫秒值

 //        public void setTime(long time):设置时间,给的是毫秒值
//        long time = 1000*60*60;
        long time = System.currentTimeMillis();
        d.setTime(time);

        System.out.println(d);
    }
}

SimpleDateFormot类

SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。

构造方法:

public SimpleDateFormat()                        构造一个SimpleDateFormat,使用默认模式和日期格式

public SimpleDateFormat(String pattern)         构造一个SimpleDateFormat使用给定的模式和默认的日期格式

SimpleDateFormat类的常用方法:

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

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

例子:

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 到 Date
        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);
    }
}

1.5 Calender类

        Calendar 为特定瞬间与一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法。

Calendar类常用方法:

public int   get(int field)                                            返回给定日历字段的值。

public abstract void add(int field, int amount)         根据日历的规则,将指定的时间量添加或减去给定的日历字段。

public final void set(int year,int month,int date)      设置当前日历的年月日。

例子:

public class CalendarDemo {
    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 + "日");

  

        //public final void set(int year,int month,int date):设置当前日历的年月日
        c.set(2050,10,10);
        year = c.get(Calendar.YEAR);
        month = c.get(Calendar.MONTH) + 1;
        date = c.get(Calendar.DATE);
        System.out.println(year + "年" + month + "月" + date + "日");

    }
}

1.6 异常

        异常就是程序出现了不正常的情况

异常体系结构:

 JVM默认处理异常

如果程序出现了问题,我们没有做任何处理,最终JVM 会做默认的处理,处理方式有如下两个步骤:

        1 把异常的名称,错误原因及异常出现的位置等信息输出在了控制台。

        1 程序停止执行。

try - catch - finally 处理异常

try {
          //  1 可能出现异常的代码;
} catch(异常类名 变量名) {
         //  2  异常的处理代码;
}finally{

        // 3  必须执行的程序

}

执行流程:

程序从 try 里面的代码开始执行

出现异常,就会跳转到对应的 catch 里面去执行

执行完毕之后,会执行finally里的程序

如果2处有return,执行完2处除了return之外的程序在执行3处的程序,最后在执行return。

1.7 Throwable成员方法

public String getMessage()                返回此 throwable 的详细消息字符串

public String toString()                       返回此可抛出的简短描述

public void printStackTrace()             把异常的错误信息输出在控制台

1.8 编译时异常与非编译时异常有什么区别

编译时异常:

        都是Exception类及其子类

        必须显示处理,否则程序就会发生错误,无法通过编译

运行时异常:

        都是RuntimeException类及其子类

        无需显示处理,也可以和编译时异常一样处理

1.9 throws方式处理异常

定义格式: public void 方法() throws 异常类名 {  } 

注意事项:

        这个throws格式是跟在方法的括号后面的

        编译时异常必须要进行处理,两种处理方案:try...catch …或者 throws,如果采用 throws 这种方案,将来谁调用谁处理

        运行时异常可以不处理,出现问题后,需要我们回来修改代码。

1.10 throws 与 throw 的区别

throws

1 用在方法声明后面跟的是异常类名。

2 表示抛出异常,由该方法的调用者来处理。

3 表示出现异常的一种可能性,并不一定会发生这些异常。

4 可以抛出多个。

throw

1 用在方法体内,跟的是异常对象的名字。

2 表示抛出异常,由方法体内的语句处理。

3 执行throw一定抛出了某种异常。

4 只能抛一个。

1.11 自定义异常

public class ScoreException extends Exception { //自定义异常类

    public ScoreException() {}

    public ScoreException(String message) {
        super(message);
    }

}

public class Teacher {  //老师类
    public void checkScore(int score) throws ScoreException {
        if(score<0 || score>100) {
//            throw new ScoreException();
            throw new ScoreException("你给的分数有误,分数应该在0-100之间");
        } else {
            System.out.println("成绩正常");
        }
    }
}

public class Demo {  //  测试类
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入分数:");

        int score = sc.nextInt();

        Teacher t = new Teacher();
        try {
            t.checkScore(score);
        } catch (ScoreException e) {
            e.printStackTrace();
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值