常见API
field参数表示获取哪个字段的值,<br />可以使用Calender中定义的常量来表示:<br />Calendar.YEAR : 年<br />Calendar.MONTH :月<br />Calendar.DAY_OF_MONTH:月中的日期<br />Calendar.HOUR:小时<br />Calendar.MINUTE:分钟<br />Calendar.SECOND:秒<br />
21.API(Application Programming Interface)
java中的API指的就是JDK中提供的各种功能的java类,这些类将底层的实现封装了起来。
Math类:被final修饰,该类不能被继承,方法都是静态的,使用时可以直接通过类名调用。
System类:被final修饰,该类不能被继承,方法都是静态的,使用时可以直接通过类名调用。
常见方法:
运行程序进行测试,控制台输出结果如下:
此时可以看到在控制台只输出了"程序开始了…",由于JVM终止了,因此输出"程序终止了…"这段代码没有被执行。
arraycopy方法底层细节:
1.如果数据源数组和目的地数组都是基本数据类型,那么两者的类型必须保持一致,否则会报错。
2.在拷贝的时候需要考虑数组的长度,如果超出范围也会报错。
3.如果数据源数组和目的地数组都是引用数据类型,那么子类类型可以赋值给父类类型。
Runtime:
Object类:
默认情况下equals方法比较的是对象的地址值
比较对象的地址值是没有意义的,因此一般情况下我们都会重写Object类中的equals方法
对象克隆:把A对象的属性值完全拷贝给B对象,也叫对象拷贝、对象复制。
对象克隆的分类:浅克隆、深克隆。
浅克隆:不管对象内部的属性是基本数据类型还是引用数据类型,都完全拷贝过来。
基本数据类型拷贝过来的是具体的数据,引用数据类型拷贝过来的是地址值。
Object类默认的是浅克隆。
深克隆:基本数据类型拷贝过来,字符串复用,引用数据类型会重新创建新的。
在 Java 中,要实现浅克隆,类需要实现 Cloneable 接口,并且重写 Object 类的 clone() 方法。
Objects类:Objects类所在包是在java.util包下,因此在使用的时候需要进行导包,并且Objects类是被final修饰的,因此该类不能被继承。
Objects类中无构造方法,不能用new关键字去创建Objects的对象。该类中提供的方法都是静态的,因此可以通过类名直接去调用这些方法。
BigInteger类:
●
如果BigInteger表示的数字没有超出long的范围,可以用静态方法获取。
●
如果BigInteger表示的超出long的范围,可以用构造方法获取。
●
对象一旦创建,BigInteger内部记录的值不能发生改变。
●
只要进行计算都会产生一个新的BigInteger对象
BigDecimal类:浮点数计算避免损失精度
Date类:
public Date():从运行程序的此时此刻到时间原点经历的毫秒值,转换成Date对象,分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
public Date(long date):将指定参数的毫秒值date,转换成Date对象,分配Date对象并初始化此对象,以表示自从标准基准时间(成为“历元”(epoch))依赖的指定毫秒数。
使用无参构造,可以自动设置当前系统时间的毫秒时刻;指定long类型的构造参数,可以自定义毫秒时刻。
●
public long getTime() 把日期对象转换成对应的时间毫秒值。
●
public void setTime(long time) 把方法参数给定的毫秒值设置给日期对象
SimpleDateFormat类:
java.text.SimpleDateFormat 是日期/时间格式化类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。
●
格式化:按照指定的格式,把Date对象转换为String对象。
●
解析:按照指定的格式,把String对象转换为Date对象。
由于DateFormat为抽象类,不能直接使用,所以需要常用的java.text.SimpleDateFormat这个类需要一个模式(格式)来指定格式化或解析的标准。
构造方法?
●
public SimpleDateFormat(String pattern):用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。参数pattern是一个字符串,代表日期时间的自定义格式。
标识字母(区分大小写)
含义
y
年
M
月
d
日
H
时
m
分
s
秒
DateFormat类的常用方法有:
●
public String format(Date date):将Date对象格式化为字符串。
●
public Date parse(String source):将字符串解析为Date对象。
DateFormat可以将Date对象和字符串相互转换。
Calendar类:
●
java.util.Calendar类表示一个“日历类”,可以进行日期运算。它是一个抽象类,不能创建对象,我们可以使用它的子类:java.util.GregorianCalendar类。
●
有两种方式可以获取GregorianCalendar对象:
直接创建GregorianCalendar对象;
通过Calendar的静态方法getInstance()方法获取GregorianCalendar对象
方法名
说明
public static Calendar getInstance()
获取一个它的子类GregorianCalendar对象。
public int get(int field)
获取某个字段的值。field参数表示获取哪个字段的值,<br />可以使用Calender中定义的常量来表示:<br />Calendar.YEAR : 年<br />Calendar.MONTH :月<br />Calendar.DAY_OF_MONTH:月中的日期<br />Calendar.HOUR:小时<br />Calendar.MINUTE:分钟<br />Calendar.SECOND:秒<br />Calendar.DAY_OF_WEEK:星期
public void set(int field,int value)
设置某个字段的值
public void add(int field,int amount)
为某个字段增加/减少指定的值
public class Demo {
public static void main(String[] args) {
//1.获取一个GregorianCalendar对象
Calendar instance = Calendar.getInstance();//获取子类对象
//2.打印子类对象
System.out.println(instance);
//3.获取属性
int year = instance.get(Calendar.YEAR);
int month = instance.get(Calendar.MONTH) + 1;//Calendar的月份值是0-11
int day = instance.get(Calendar.DAY_OF_MONTH);
int hour = instance.get(Calendar.HOUR);
int minute = instance.get(Calendar.MINUTE);
int second = instance.get(Calendar.SECOND);
int week = instance.get(Calendar.DAY_OF_WEEK);//返回值范围:1--7,分别表示:"星期日","星期一","星期二",...,"星期六"
System.out.println(year + "年" + month + "月" + day + "日" +
hour + ":" + minute + ":" + second);
System.out.println(getWeek(week));
}
//查表法,查询星期几
public static String getWeek(int w) {//w = 1 --- 7
//做一个表(数组)
String[] weekArray = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
// 索引 [0] [1] [2] [3] [4] [5] [6]
//查表
return weekArray[w - 1];
}
}
public class Demo {
public static void main(String[] args) {
//设置属性——set(int field,int value):
Calendar c1 = Calendar.getInstance();//获取当前日期
//计算班长出生那天是星期几(假如班长出生日期为:1998年3月18日)
c1.set(Calendar.YEAR, 1998);
c1.set(Calendar.MONTH, 3 - 1);//转换为Calendar内部的月份值
c1.set(Calendar.DAY_OF_MONTH, 18);
int w = c1.get(Calendar.DAY_OF_WEEK);
System.out.println("班长出生那天是:" + getWeek(w));
}
//查表法,查询星期几
public static String getWeek(int w) {//w = 1 --- 7
//做一个表(数组)
String[] weekArray = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
// 索引 [0] [1] [2] [3] [4] [5] [6]
//查表
return weekArray[w - 1];
}
}
public class Demo {
public static void main(String[] args) {
//计算200天以后是哪年哪月哪日,星期几?
Calendar c2 = Calendar.getInstance();//获取当前日期
c2.add(Calendar.DAY_OF_MONTH, 200);//日期加200
int y = c2.get(Calendar.YEAR);
int m = c2.get(Calendar.MONTH) + 1;//转换为实际的月份
int d = c2.get(Calendar.DAY_OF_MONTH);
int wk = c2.get(Calendar.DAY_OF_WEEK);
System.out.println("200天后是:" + y + "年" + m + "月" + d + "日" + getWeek(wk));
}
//查表法,查询星期几
public static String getWeek(int w) {//w = 1 --- 7
//做一个表(数组)
String[] weekArray = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
// 索引 [0] [1] [2] [3] [4] [5] [6]
//查表
return weekArray[w - 1];
}
}
更多推荐
所有评论(0)