常用类及异常处理
一、数学相关的类
1.Math类
用于数学的运算
2.BigInteger类
可以表示比long范围更大的数字
3.BigDecimal类
可以精确的表示小数
二、获得随机数的方式
1.Math类中random方法
/*static double random()
返回带正号的double值,该值大于等于0.0且小于1.0。*/
double d = Math.random();
System.out.println(d);
/*获取a~b之间的随机数
随机数*(最大值-最小值)+最小值*/
double d = Math.random();
double d1 =d*(b-a))+a;
System.out.println(d);
2.Random类
//nextInt()方法 产生的随机数是int范围内一个
Random rd = new Random();
System.out.println(rd.nextInt());
System.out.println(rd.nextInt(10)); //随机产生[0-10)以内的整数
3.ThreadLocalRandom
ThreadLocalRandom current = ThreadLocalRandom.current();
System.out.println(current.nextInt());//随机产生数
System.out.println(current.nextInt(10));//随机产生[0-10)以内的整数
System.out.println(current.nextInt(400,500));//随机产生[400-500)以内的数
4.UUID类
生成不会重复的128位的值,经常用来做唯一标识ID经常用来做唯一标识ID,是ip+当前时间的毫秒值混合加密
UUID uuid = UUID.RandomUUID();
三、日期类
1.Date类
//Date() 获取当前系统时间
Date date = new Date();
System.out.println(date);
//Date(long date) 根据输入的毫秒值创建一个时间
long millis = System.currentTimeMillis();
Date date2 = new Date(millis);
System.out.println(date2);
2.SimpleDateFormat类
允许进行格式化(日期 ----> 文本)、解析(文本 ----->日期)和规范化
/*yyyy 表示年
* MM 表示月
* dd 表示日
* HH 表示时
* mm 表示分钟
* ss 表示秒*/
//将日期格式化为固定的文本
SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.d HH:mm:ss");
String string = format.format(date);
System.out.println(string);
//将文本转换为日期
String str = "2019.09.19 19:33:37";
Date d = format.parse(str);
System.out.println(d);
3.Calendar类
Calendar c = Calendar.getInstance();
System.out.println(instance.get(c.DATE));
System.out.println(instance.get(c.MONTH));//月份从0开始到11结束
System.out.println(instance.get(c.YEAR));
四、正则表达式(了解)
[] 中的内容表示可以取的内容,如果没有取多少位 ,一个[]对应一个字符
{} 中的数字表示匹配多少位
String str = "abc";
System.out.println(str.matches("[abc][b][abc]"));
System.out.println(str.matches("[abc]{3}"));
System.out.println(str.matches("[a-z]{3}"));
五、异常概念及常见异常
概念
java中程序不能正常运行出现的一些特殊情况
常见异常
1.空指针异常 java.lang.NullPointerException
当使用的对象(调用对象的方法或字段)没有引用或值为null
2.数组索引越界异常 java.lang.ArrayIndexOutOfBoundsException
数组下标越界异常
3.类型转换异常 java.lang.ClassCastException
如果两个类不存在继承关系,且要相互转换时抛出此异常
4.数学运算异常 java.lang.ArithmeticException
5.参数非法异常 java.lang.IllegalArgumentException
六、异常的体系结构
Throwable
|—— Error (错误) jvm级别 StackOverflowError栈内存溢出
|—— Exception(异常)代码级别 一般程序员都可以排除解决
|_ 运行时异常(编译不会报错,运行的时候才报错) RuntimeException及其子类都为运行时异常
|_ 非运行时异常(编译的时候就必须处理的异常)
七、异常处理
抛出异常
抛给调用方直到抛给jvm为止
throw在方法的内部抛出异常对象;throws在方法参数列表后面抛出异常类型
捕获异常
try{
//可能产生异常的代码
}catch(异常类型 对象名){
/*对异常进行操作:
1.打印异常信息
2.可以存储异常日志 集中处理 io流
3.抛出去throw异常对象;*/
}
八、finally语句块
try-catch语句块
finally{
//无论是否发生异常都要执行的代码
}
注意:1.不论上面是否出现异常或者其他情况,finally中的代码都会执行,哪怕有return都会执行,除非虚拟机提前退出,如果
try有return语句,返回值先返回,执行完成finally中的代码再结束当前方法。
2.finally中一般放关闭流或释放系统资源的代码
final finalize finally三者的区别
final是一个修饰符,表示最终的,不能被更改
finalzie是Object中关于垃圾回收一个方法
finally是异常处理中如果需要有执行的代码,需要去finally中去执行
九、自定义异常
自定义类继承异常类
参照其他异常通过Exception设置异常提示信息
来源:CSDN
作者:EstherLty
链接:https://blog.csdn.net/qq_45988641/article/details/103484508