Calendar类:日历类
Calendar类是一个抽象类,里边提供了很多操作日历字段的方法
Calendar类无法直接创建对象使用,里面有一个静态方法叫getInstance(),该方法返回了Calendar类的子类对象
static Calendar getInstance() 使用默认时区和语言环境获得一个日历
常用的成员方法
public int get(int field): 返回给定日历字段的值
public void set(int field,int value):将给定的日历字段设置为给定值
public abstract void add(int field,int amount):根据日历的规则,为给定的日历添加或减去指定的时间量
public Date getTime():返回一个表示Calendar时间值(从历元到现在的毫秒偏移量)的Date对象
成员方法的参数:
int field:日历类的字段,可以使用Calendar类的静态成员变量获取
public static final int YEAR = 1; 年
public static final int MONTH = 2; 月
public static final int DATE = 5; 月中的某一天
public static final int DAY_OF_MONTH = 5; 月中的某一天
public static final int HOUR = 10; 时
public static final int MINUTE = 12; 分
public static final int SECOND = 13; 秒
import java.util.Calendar;
import java.util.Date;
public class Demo02Calendar {
public static void main(String[] args) {
demo01();
demo02();
demo03();
demo04();
}
private static void demo04() {
Calendar c = Calendar.getInstance();
Date time = c.getTime();
System.out.println(time);
}
/*
public abstract void add(int field,int amount):根据日历的规则,为给定的日历添加或减去指定的时间量
把指定的字段增加或减少的值
参数:
int field:传递指定的日历字段(YEAR,MONTH..)
int amount:增加/减少指定的值
正数:增加
负数:减少
*/
private static void demo03() {
Calendar c = Calendar.getInstance();
c.add(Calendar.YEAR,2); // 增加两年
c.add(Calendar.MONTH,-1); // 减少两月
int year = c.get(Calendar.YEAR);
System.out.println(year);
int month = c.get(Calendar.MONTH);
System.out.println(month); // 西方的月份0-11,东方的月份1-12
int date = c.get(Calendar.DAY_OF_MONTH);
System.out.println(date);
}
/*
public void set(int field,int value):将给定的日历字段设置为给定值
*/
private static void demo02() {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR,2121); // 设置年
c.set(Calendar.MONTH,2); // 设置月
c.set(Calendar.DATE,21); // 设置日
// 设置年月日
c.set(3131,2,4);
int year = c.get(Calendar.YEAR);
System.out.println(year);
int month = c.get(Calendar.MONTH);
System.out.println(month); // 西方的月份0-11,东方的月份1-12
int date = c.get(Calendar.DAY_OF_MONTH);
System.out.println(date);
}
/*
public int get(int field):返回给定日历字段的值
参数:传递指定的日历字段(YEAR,MONTH..)
返回值:日历字段代表的具体的值
*/
private static void demo01() {
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
System.out.println(year);
int month = c.get(Calendar.MONTH);
System.out.println(month); // 西方的月份0-11,东方的月份1-12
int date = c.get(Calendar.DAY_OF_MONTH);
System.out.println(date);
}
}
System类
System常用的方法有:
public static long currentTimeMillis():返回以毫秒为单位的当前时间
public static void arrayCopy(Object src,int srcPos,Object dest,int desPos,int length):将数组中指定的数据拷贝到另一个数组当中
public static long currentTimeMillis():返回以毫秒为单位的当前时间
验证for循环打印数组1-9999所需的时间(毫秒)
public class Demo01System {
public static void main(String[] args) {
demo01();
}
private static void demo01() {
long s = System.currentTimeMillis();
for (int i = 1; i <=9999; i++) {
System.out.println(i);
}
long e = System.currentTimeMillis();
System.out.println("共耗时"+ (e-s));
}
}
public static void arrayCopy(Object src,int srcPos,Object dest,int desPos,int length):将数组中指定的数据拷贝到另一个数组当中
参数:
src - 源数组
dest - 目标数组
desPos - 目标数组的起始位置
length - 要复制的数组元素的数量
练习:
将src数组中的前三个元素,复制到dest数组的前三个位置
public class Demo01System {
public static void main(String[] args) {
demo02();
}
private static void demo02() {
int[] src = {1, 2, 3, 4, 5};
int[] dest = {6, 7, 8, 9, 10};
System.out.println("复制前" + Arrays.toString(dest));
System.arraycopy(src,0,dest,0,3);
System.out.println("复制后" + Arrays.toString(dest));
}
}
StringBuilder类
StringBuilder类:字符串缓冲区,可以提高字符串的效率
构造方法:
StringBuilder() 构造一个不带任何字符的字符串生成器,初始容量为16个字符
StringBuilder(String str) 构造一个字符串生成器,并初始化为指定的字符串内容
public class Demo01StringBuilder {
public static void main(String[] args) {
StringBuilder bu1 = new StringBuilder();
System.out.println(bu1);
StringBuilder bu2 = new StringBuilder("abc");
System.out.println(bu2);
}
}
StringBuilder的常用方法
public StringBuilder append():添加任意类型数据的字符串样式,并返回当前对象自身
public class Demo02StringBuilder {
public static void main(String[] args) {
StringBuilder bu1 = new StringBuilder();
// append方法返回的是this,调用方法的对象
// StringBuilder bu2 = bu1.append("abc");
// System.out.println(bu1);
// System.out.println(bu2);
// System.out.println(bu1 == bu2);
// 使用append方法无需接收返回值
// bu1.append("abc");
// bu1.append(1);
// bu1.append(true);
// bu1.append(2.3);
// bu1.append('中');
// System.out.println(bu1);
// 链式编程,方法返回值是一个对象,可以继续调用方法
System.out.println("abc".toUpperCase().toLowerCase().toUpperCase().toLowerCase());
bu1.append("abc").append(21).append(true).append(2.2);
System.out.println(bu1);
}
}
StringBuilder和String可以相互转换
String-->StringBuilder:可以使用StringBuilder的构造方法
StringBuilder-->String:可以使用StringBuilder中的toString方法
public String toString():将当前的StringBuilder对象转换为String对象