API中的Math类,Date类以及异常类

一.Math类

Math类代表数学类,提供简单的数学运算(提供的属性和方法都是静态的)

package cn.tedu.math;

public class MathDemo{

public static void main(String[]args){

//绝对值

//System.out.println(Math.abs(-2.134));

//向上取整

/*System.out.println(Math.ceil(1.000001));

//向下取整

System.out.println(Math.floor(2.999999));

//四舍五入(结果是整数)

System.out.println(Math.round(3.545));*/

//第一个参数是底数,第二个参数是次幂

//System.out.println(Math.pow(16.0,0.5));

//随机数(从0.0到1.0之间(不包含1.0))

//底层根据伪随机算法

//System.out.println(Math.random());

//获取从20到40(包含)之间随机整数

//System.out.println(20+(int)(Math.random()*21));

//简易验证码

//验证码可以出现的内容

char[] cs={‘4’,‘A’,‘中’,‘8’,‘b’,‘2’,‘发’,‘财’};

//字符串来存储验证码内容

String str="";

//循环实现随机选取验证码的内容

for(int i=1;i<=4;i++){//验证码有四位

str+=cs [(int)(Math.random()*8)];//下标范围(0~7)随机

}

//

System.out.println(str);

}

}

重要 BigDecimal类提供小数精确运算(保证参数是字符串形式)

package cn.tedu.math;

import java.math.BigDecimal;

public class BigDecimalDemo{

//在运算过程中可以提高到80位来运算,但是最终还是以64位来存储

public strictfp static void main(String[]args){

//绝大部分小数的二进制补码是无线位数不能精确运算

/*doubled=2.1-1.9;

System.out.println(d);*/

//只有参数是字符串形式才能进行精确运算

BigDecimal bd1=new BigDecimal(“2.1”);

BigDecimal bd2=new BigDecimal(“1.9”);

//调用方法操作对象的值

System.out.println(bd1.subtract(bd2));

}

}

BigInteger类提供超大数之间的运算

package cn.tedu.math;

import java.math.BigInteger;

public class BigIntegerDemo{

public static void main(String[]args){

//超大数之间的运算

//

BigInteger bi1= new BigInteger(“248237423748273847283748273498728374827348723847283748278347827349827349872837498237487283478237489273487283749823749872384782374827384728347827498729734892738472873482749872837489273498728374283482793”);

BigInteger bi2 = new BigInteger(“4837273498237947238749827482738742934782784782734827384728374283749827384729374823748273847283482374273847283749283742837492739472734982734982738479823479827348273847982379472983479823794879284782374892734872384729”);

//通过调用调用操作对象值

System.out.println(bi1.multiply(bi2));

}

}

时间类

Date类代表时间和日期

重要 SimpleDateFormat类提供日期和字符串的相互转化

parse():把字符串转成日期

format():把日期转成字符串

package cn.tedu.time;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

public class DateDemo{

public static void main(String[]args)throws ParseException{

//创建代表时间和日期的类的对象

//CST(中国标准时区)—当前时间和日期

//Date date=new Date();

//有参构造—在指定的基础上加上1900年1月

//黑线—代表过时,代表在某个新版本中就会被淘汰

/*Date date=new Date(2008-1900,8-1,8);

System.out.println(date);*/

//字符串与日期的相互转化

//字符串转成日期

String str=“2012-12-1212:12:12”;

//创建对象

//ParseException—解析异常

//指定解析格式

SimpleDateFormat sdf1=new SimpleDateFormat

(“yyyy-MM-ddHH:mm:ss”);

//调用方法把字符串转成日期

Date date=sdf1.parse(str);

//日期转成字符串

//创建对象

SimpleDateFormat sdf2=new SimpleDateFormat

(“yyyy年MM月dd日HH时mm分ss秒”);

//调用方法把日期转成字符串

Strings=sdf2.format(date);

System.out.println(s);

}

}

Calendar类代表日历类

package cn.tedu.time;

import java.util.Calendar;

import java.util.Date;

public class CalendarDemo{

public static void main(String[]args){

//获取Calendar类的子类对象

Calendar c=Calendar.getInstance();

//设置时间

c.setTime(newDate(2012-1900,12-1,12));

//获取日历信息

System.out.println(c.get(Calendar.DAY_OF_WEEK));

System.out.println(c.get(Calendar.DAY_OF_MONTH));

}

}

异常

1.概念

用于发现问题、反馈问题以及解决问题的一套机制
在这里插入图片描述

2.Throwable类—异常的顶级父类

子类

Error:是一个合理的应用程序,不应该试图抓住的严重问题(改变外部需求、环境、资源等等)

重要 Exception:是一个合理的应用程序可以处理也可以不处理

处理方式(1.抛出、2.捕获)

分类

编译时异常—在编译时期出错 一定要处理 除了RuntimeException类以及子类以外其他的异常类

CloneNotSupportedException—克隆不支持异常

ParseException—解析异常

运行时异常—在运行时期出错 可以处理也可以不处理 RuntimeException类以及子类

ArithmeticException—算术异常

NullPointerException—空指针异常

ArrayIndexOutofBoundsException—数组下标越界异常

ClassCastException—类型转换异常

NumberFomatException—数字格式异常

package cn.tedu.exception;

public class ExceptionDemo2{

public static void main(String[]args){

//调用方法读取文件(txt)

//方法上抛出几个编译时异常需要处理几个编译时异常

try{//try块里存放的是可能会出问题的代码

String s=read Files(null);

}catch(FileNotExitsException e){//catch块会一直检测try块里是否有异常

//如果出现异常根据对应的异常类的类型

//来捕获对应抛出的异常

System.out.println("问题以及处理。。。");

}catch(FilesNotFoundException e){//=newFilesNotFoundException("亲,您的文件类型不对!!!");

//获取异常的描述信息

//调用父类的方法来间接的获取父类的私有化属性值

System.out.println(e.getMessage());

}catch(NullPointerException e){

//打印栈轨迹

e.printStackTrace();

}

//当异常被处理之后后续代码正常执行

System.out.println("读取完成");

}

//定义读取文件的方法

//方法上可以抛出多个异常(中间用逗号分隔)

//如果方法上必须要抛出的异常就是编译时异常

public static String readFiles(Stringpath)

throws FileNotExitsException,FilesNotFoundException,NullPointerException{

//判断路径是否是null

if(path==null){

//进了判断说明path为null

//发现问题,反馈问题

throw new NullPointerException();

}

//判断文件类型是否是txt文件

if(!path.endsWith("txt")){

//进了判断说明不是txt文件

//发现问题

//反馈问题(描述信息),往上传递异常类对象

throw new FilesNotFoundException("亲,您的文件类型不对!!!");

}
//判断路径是否是W盘符

if(path.startsWith("W")){

//进了判断说明以W判断来开头

//说明出现问题

//反馈问题---往上传递异常类对象

//反馈问题后面代码都不执行

throw new FileNotExitsException();
}
//读取文件内容

return"文件内容";

}

}
//自定义异常类

//自定义异常类继承除了RuntimeException类以及子类以外其他的异常类

//自定义异常默认就是编译时异常

class FileNotExitsException extends Exception{
}
class FilesNotFoundException extends Exception{

/*//私有化属性

private String message;

//提供获取私有化属性的get方法

@Override

public String getMessage(){

return message;

}

//有参构造给私有化属性进行赋值

public FilesNotFoundException(Stringmessage){

this.message=message;

}*/
//有参构造给父类的私有化属性进行赋值

public FilesNotFoundException(Stringmessage){

super(message);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值