包装类--数学类--时间类--异常--解析异常--空指针异常--类型转换异常--算数异常

包装类

1.概念
为了方便、快捷的去操作基本类型数据,java提供基本类型对应的包装类。只能创建出包装类的对象就能提供操作基本类型的数据的便捷性。
在这里插入图片描述
注意:

1.除了Character以及Integer之外其他包装类都是首字母大写

2.由基本类型数据来构建包装类对象—封箱

3.基本类型数据直接赋值给包装类的对象—自动封箱包装
类.valueOf(基本类型数据 ) 包装类对象直接赋值给基本类型数据—自动拆箱包装类对象.xxxValue()

4.自动封箱/拆箱是jdk1.5新特性

5.当整型包装类做自动封箱时,在-128—127之间共享同一个数组,但是超过这个范围每次返回一个新对象(character共享范围是(0~127))

6.包装类对象的哈希码值是固定值 7.数值类型的包装类的父类是Number

数学类

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

package cn.r.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(inti=1;i<=4;i++){//验证码有四位
str+=cs[(int)(Math.random()*8)];//下标范围(0~7)随机
}
System.out.println(str);
}
}

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

package cn.r.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.r.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));
}
}

时间类

SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年MM月dd日 HH时:mm分:ss秒");

Date类代表时间和日期
SimpleDateFormat类提供日期和字符串的互相转换
parse(): 把字符串转换成日期
format(): 把日期转换成字符串

package cn.r.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(中国标准时区)---当前时间和日期
//Datedate=newDate();
//有参构造---在指定的基础上加上1900年1月
//黑线---代表过时,代表在某个新版本中就会被淘汰
/*Datedate=newDate(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秒");
//调用方法把日期转成字符串
String s=sdf2.format(date);
System.out.println(s);
}
}

calendar类代表日历类

packagecn.r.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(new Date(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.r.exception;
 
public class ExceptionDemo2{
public static void main(String[]args){
//调用方法读取文件(txt)
//方法上抛出几个编译时异常需要处理几个编译时异常
try{//try块里存放的是可能会出问题的代码
String s=readFiles(null);
}catch(FileNotExitsException e){//catch块会一直检测try块里是否有异常
//如果出现异常根据对应的异常类的类型
//来捕获对应抛出的异常
System.out.println("问题以及处理。。。");
}catch(FilesNotFoundException e){//=newFilesNotFoundException("亲,您的文件类型不对!!!");
//获取异常的描述信息
//调用父类的方法来间接的获取父类的私有化属性值
System.out.println(e.getMessage());
}catch(NullPointerExceptione){
//打印栈轨迹
e.printStackTrace();
}
//当异常被处理之后后续代码正常执行
System.out.println("读取完成");
}
//定义读取文件的方法
//方法上可以抛出多个异常(中间用逗号分隔)
//如果方法上必须要抛出的异常就是编译时异常
public static String readFiles(Stringpath)
throws FileNotExitsException,FilesNotFoundException,NullPointerException{
 
 
//判断路径是否是null
if(path==null){
//进了判断说明path为null
//发现问题,反馈问题
thrownewNullPointerException();
}
 
//判断文件类型是否是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{
/*//私有化属性
privateStringmessage;
 
//提供获取私有化属性的get方法
@Override
publicStringgetMessage(){
returnmessage;
}
 
//有参构造给私有化属性进行赋值
publicFilesNotFoundException(Stringmessage){
this.message=message;
}*/
 
//有参构造给父类的私有化属性进行赋值
public FilesNotFoundException(Stringmessage){
super(message);
}
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值