文章目录
Calendar
Calendar cal = Calendar.getInstance();// 获取当前系统日历
cal.get(Calendar.DAY_OF_WEEK);// 今天是本周第几天
cal.get(Calendar.YEAR);// 获取年
Date date = new Date();
cal.setTime(date);// 对日历指定时间
Number
数字格式化,#表示任意单个数字,千分位用逗号表示,小数位用点表示。
//创建数字格式化对象,需要加入千分位
DecimalFormat df = new DecimalFormat(",###.##");// 保留两位小数
System.out.println(df.format(12345.6));// 12,345.6
df = new DecimalFormat(",###.000");// 保留三位小数,不够补0
System.out.println(df.format(12345.6));// 12,345.600
BigInteger/BigDecimal
BigInteger表示存储更高精度的整数;BigDecimal表示存储更高精度的小数。
BigInteger传的是字符串或者是字节数;而BigDecimal可以直接传整数和小数。
package day14_csdn;
import java.math.BigDecimal;
/**
* 阶乘高精度
* @author SkiMei
*
*/
public class Csdn_Factor {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(sum(10));// 3628800
}
public static BigDecimal sum(int i){
if(i<=1){
return new BigDecimal(1);
}
return new BigDecimal(i).multiply(sum(i-1));
}
}
Random
随机数生成器,从0开始。
Random ran = new Random();
ran.nextInt(101);// 生成0-100
System.out.println(ran.nextInt(20-10+1)-10);
// 生成10-20 ran.nextInt(最大值-最小值+1)-最小值
Math
提供了科学计算和基本的数字操作,都是静态方法,类名调用就可以。
Math.abs(-1.5);// 绝对值
Math.ceil(23.16);// 向上取整
Math.floor(63.21);// 向下取整
System.out.println(Math.sqrt(65));// 开平方
Math.cbrt(69);// 开立方
Math.random();// 随机生成一个0-1的数
Math.rint(65.26);// 四舍五入 当xxx.5 xxx是偶数的时候不进 是奇数的是时候进一
Math.pow(26,2);// 几次幂
异常机制
异常是错误的一种说法,导致异常可能的情况有:用户输入非法数据;文件不存在;网络中断;内存溢出。
处理形式
try…catch 解决异常,一般用在客户端;
throws 抛出异常,一般在服务端,提醒调用处;
throw 异常源,创建一个异常。
finally语句块
必须执行的语句块,跟在try或者是try…catch后面。
继承体系
Throwable是异常类的根类,它的直系子类有Exception和Error。
Error表示不因为代码导致的异常,类似栈内存溢出;
Exception有一个子类是RunTimeException,是运行时异常,其他子类是编译时异常。
try…catch
/**
* 输出结果
* 21
* 65
* java.io.FileNotFoundException: D:\123.txt (系统找不到指定的文件。)
* catch可以重复写 但是必须子异常在前面 父异常在后面 可以用|来进行不存在继承关系的异常同时执行
*/
try{
System.out.println(21);
new FileInputStream("D:/123.txt");
String s=null;
s.toCharArray();
}catch(FileNotFoundException|NullPointerException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}finally{
System.out.println(65);
}
在1.7八本之后,可以在try后面加上(),()中的资源会自己打开然后自己关闭,不需要在finally中进行关闭。
Throws
public static void main(String[] args) throws FileNotFoundException {
// TODO Auto-generated method stub
new FileInputStream("");
}
提醒调用处,此处可能有异常。
finally和return
当语句中出现finally和return的时候,finally优先级更高,编译时会去掉return。
public static void main(String[] args) {
System.out.println(m1());// 12
}
public static int m1(){
int i =10;
try{
return i++;// 这里会执行i++ 却不会执行return
}catch(Exception e){
e.printStackTrace();
}finally{
System.out.println("-----");
return ++i;
}
}
在进行覆写操作的时候,子类抛出的异常最多只能和父类相同,不能抛出父类异常的异常。
自定义异常
继承一个已有的异常类,判断是运行时异常还是编译的异常,如果是运行异常继承RunTimeException,如果是编译则继承Exception;
公共的无参构造;
有参数构造(String 错误信息)。
package day14_csdn;
/**
*
* @author SkiMei
*
*/
public class Csdn_Exc extends Exception{
public Csdn_Exc(){};
public Csdn_Exc(String msg){
super(msg);
}
}