API
Date
获取当前系统时间
public static void main(String[] args) {
//获取当前系统时间
Date now = new Date();
System.out.println(now);
// yyyy年 MM月 dd 日 HH时 ss分 SS秒
SimpleDateFormat sdf= new SimpleDateFormat("yyyy年MM月dd日 HH:ss:SS");
//格式化时间
String strTime = sdf.format(now);
System.out.println(strTime);
}
日历类
public static void main(String[] args) {
//获得创建对象
Calendar c = Calendar.getInstance();
//当前是本周的第几天,周日是第一天 所以周四是第五天
System.out.println(c.get(Calendar.DAY_OF_WEEK));
//本月第几天
System.out.println(c.get(Calendar.DAY_OF_MONTH));
int year = c.get(Calendar.YEAR);
//获取月 从零开始 要加一
int month = c.get(Calendar.MONTH)+1;
//获取日
int day = c.get(Calendar.DAY_OF_MONTH);
//时
int hour = c.get(Calendar.HOUR);
//分
int minute = c.get(Calendar.MINUTE);
//秒
int second = c.get(Calendar.SECOND);
//星期
int weekday = c.get(Calendar.DAY_OF_WEEK);
//把本周第几天转换为星期
String weekdayString = "星期";
switch (weekday) {
case 1:
weekdayString+="日";
break;
case 2:
weekdayString+="一";
break;
case 3:
weekdayString+="二";
break;
case 4:
weekdayString+="三";
break;
case 5:
weekdayString+="四";
break;
case 6:
weekdayString+="五";
break;
case 7:
weekdayString+="六";
break;
default:
break;
}
System.out.println(year+"年"+month+"月"+day+"日"+hour+"时"+minute+"分");
枚举
枚举:简单来说,就是常量的集合
当我们需要一系列有限的值的时候,并且用的比较多,可以使用枚举
写枚举的话,更容易发现错误,在编译器会对类型进行检查,从而减少错
public static void main(String[] args) {
String username = "admin";
String password = "root";
String result = login(username, password);
if ("SUCCESS".equals(result)) {
System.out.println("成功");
}else {
System.out.println("失败");
}
}
public static String login(String username ,String password){
if (username.equals("admin")&& password.equals("root")) {
return "SUCCESS";
}else {
return "FALL";
}
}
}
Exception
* 常见的运行时异常
*
* 1空指针异常
*
* 2下标越界
*
* 3类型转换
*
* 4栈内存溢出
*
*
* 如果程序报错,会终止程序生命周期执行(错误代码之后的代码都不会执行了)
*
*
* 1异常机制
*
* 异常就是错误的另一种说法
*
* 在java中有一个专门模拟异常和错误的类(Throwable),所有类都必须继承这个类
*
* 异常是我们程序员在写程序的时候,对某些高风险代码操作的一个提醒机制,对系统来说,就是触发机制
*
*
*
* 异常处理形式
*
*
*
* try ..... catch:解决问题
* 一般用在客户端
*
*
* throws:抛出问题
*
* 一般用于类库端
*
* throw:制造异常
* 异常源点,创建一个异常对象
*
*
* if...else进行判断, 也可以把大多数错误屏蔽掉,但是只能处理预知的情况,对无法预知的情况
*
*
*
*3不同异常机制的选择
*
*
* 有些错误我们不想处理,或者没有办法处理,不知道应该怎么处理,一般使用throws 把问题抛给调用处
* 知道怎么处理,直接使用try.. catch处理即可,一般是main方法
*
*
*finally语句块
*
*
* 必须执行语句块
*
*
*
*
*5继承体系
*
* 最大的异常类是 Throwable
*
* 直接两个子类是 Errow(系统内部错误,我们解决不了) 和 Exception(所以的子类除了RunTimeException)
*
*
* 语法
*
*
* try{
* 高风险代码
*
* }catch(异常类类型 变量){
* 处理措施
* }
*
* 目的:增强程序的健壮性,鲁棒性
*
public static void main(String[] args) {
int a =10;
int b= 0;
//除数不能为0
if (b == 0) {
System.out.println("除数不能为0");
}
else {
int c =a/b;
System.out.println(c);
}
System.out.println("执行成功");
}
自定义异常
* 自定义异常类
*
* 1 继承一个 已有的异常类,基本上继承Exception 如果是运行时异常,就继承RunTimeException
*
*
* 2无参构造
*
*
* 3有参构造,传入错误信息,并把信息传递给父类super
*
Math
常用的科学技术方法
public static void main(String[] args) {
//abs 绝对值
//2.2
System.out.println(Math.abs(-2.2));
// ceil : 向上取整 , 只要小数大于0 就进位+1
System.out.println(Math.ceil(11.000000001)); // 12.0
// floor : 向下取整 , 不要小数
System.out.println(Math.floor(12.99999999)); // 12.0
// Max : 比较谁大
System.out.println(Math.max(2.2, 2.1)); // 2.2
// Min : 比较谁小
System.out.println(Math.min(2.2, 2.1)); // 2.1
// sqrt : 计算平方根,就是开平方
// NaN : Not a Number
System.out.println(Math.sqrt(16)); // 4.0
// cbrt : 计算立方根
System.out.println(Math.cbrt(8)); // 2.0
// random : 随机数,获取一个大于等于0.0 并且小于 1.0的随机数,不会等于1.0
System.out.println(Math.random());
// 生成大于等于0 且小于10
System.out.println(Math.random()*10);
// rint : 四舍五入 xxx.5 ,结果取偶数
System.out.println(Math.rint(2.4)); // 2.0
System.out.println(Math.rint(3.5)); // 4.0
System.out.println(Math.rint(2.5)); // 2.0
// pow : 几次幂 , 如 2的3次方
System.out.println(Math.pow(2, 3)); // 8.0
}