final 关键字
权限 (作用范围)public protected default private
修饰类
修饰的类是最终类, 最终类不能被继承 (最终类就是最后一个类, 如果还能被继承, 那么继承的子类是最终类, 矛盾)
修饰方法
基本类型的局部变量, 被 final 修饰后, 只能赋值一次, 不能再更改.
重写被 final 修饰的方法, 编译时就会报错.
修饰变量
局部变量 -- 基本类型
基本类型的局部变量, 被 final 修饰后, 只能赋值一次, 不能再更改.
局部变量 -- 引用类型
引用类型的局部变量, 被 final 修饰后, 只能指向一个对象, 地址不能再更改. 但是不影响对象内部的成员变量值的修改
思考, 如下两种写法, 哪种可以通过编译?
写法 1:
- final int c = 0;
- for (int i = 0; i < 10; i++) {
- c = i;
- System.out.println(c);
- }
写法 2
- for (int i = 0; i < 10; i++) {
- final int c = i;
- System.out.println(c);
- };
根据 final 的定义, 写法 1 报错! 写法 2, 为什么通过编译呢? 因为每次循环, 都是一次新的变量 c.
常用类 / 接口
java.lang 包
Math 类 API
abs()
返回绝对值
ceil()
返回大于等于参数最小的整数
floor()
返回小于等于参数最大的整数
round()
返回最接近参数的 Long
sqrt()
求开平方根 sqrt(4) 2
pow()
幂运算 pow(2,3) 2 的 3 次方 8
System 类 API
exit(0)
JVM 退出
currentTimeMillis()
返回以毫秒为单位的当前时间.
arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
将数组中指定的数据拷贝到另一个数组中.
java.util 包
Date 类 API
Date date = new Date()
当前系统时间
Date date = new Date(0)
1970 年 01 月 01 日 00 时 00 分 00 秒 (中国 + 8 时)
date.getTime
对象日期转换成毫秒
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
把日期格式化指定的字符串
sdf.format(date)
时间变成指定格式的字符串
- new SimpleDateFormat("yyyy 年 MM 月 dd 日")
- sdf.parse(str)
把 String 转换成 Date 对象
Tue Dec 11 00:00:00 CST 2018
Calendar 类
get(int field)
返回给定日历字段的值. 字段, 指的是年, 月, 日, 等
set(int field, int value)
将给定的日历字段设置为给定值.
add(int field, int amount)
给定的日历字段添加或减去指定的时间量.
getTime()
返回表示此 Calendar 时间值的 Date 对象.
来源: http://www.bubuko.com/infodetail-3256112.html