【Java学习】Calendar类、System类、StringBuilder类

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对象
发布了19 篇原创文章 · 获赞 20 · 访问量 726

猜你喜欢

转载自blog.csdn.net/sy140823/article/details/104761620
今日推荐