Calendar
calendar类是一个抽象类,所以它不能被实例化,提供了一个类方法getInstance , 以获得此类型的通用的对象。Calendar的 getInstance方法返回一个Calendar对象。
Calendar a = 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对象
获取一下给定的日历字段值
public static void demo01(Calendar calendar) {
//年
int i = calendar.get(Calendar.YEAR);
System.out.println(i); // 2020
//月
int i1 = calendar.get(Calendar.MONTH);
System.out.println(i1 + 1); // 10 西方的日历 月份:0 -- 11 东方 1--12
//获取日期
int i2 = calendar.get(Calendar.DATE);
System.out.println(i2);
}
public static void demo02(Calendar calendar) {
//public void set(int field , int vale)
/*
* int field: 传递指定日历字段(YEAR,MONTH,DATE....)
* int value: 给指定日历字段设置值
*
* */
//把当前的年份设置为:2050年
calendar.set(Calendar.YEAR, 1937);
//再次获取一下
int i = calendar.get(Calendar.YEAR);
System.out.println(i);
int i1 = calendar.get(Calendar.MONTH);
System.out.println(i1);
calendar.set(Calendar.DATE, 31);
int i2 = calendar.get(Calendar.DATE);
System.out.println(i2);
}
public static void demo03(Calendar calendar) {
//public abstract void add(int field, int amount) 把指定的字段增加或者是减少指定的值
/*
* 参数:
* int field : 指定的日历字段值(YEAR,MONTH,DATE ,....)
* int amount: 增加或者减少指定的数量
* 整数:增加指定的数量
* 负数:减少指定的数量
* */
// 把当前的年增加2年
calendar.add(Calendar.YEAR, 2);
//把当前的月份减少3个月
calendar.add(Calendar.MONTH, -3);
// 获取更改之后的年份和月份
int i = calendar.get(Calendar.YEAR);
System.out.println(i);
int i1 = calendar.get(Calendar.MONTH);
System.out.println(i1);
}
public static void demo04(Calendar calendar) {
//public Date getTime()
Date time = calendar.getTime();
System.out.println(time);
TimeZone timeZone = calendar.getTimeZone();
System.out.println(timeZone);
long timeInMillis = calendar.getTimeInMillis();
System.out.println(timeInMillis);
Date date = new Date();
long time1 = date.getTime();
System.out.println(time1);
}
StringBuilder
构造方法():
public StringBuilder(); 它构造一个不带任何字符串生成器,其初始容量为16个字符
public StringBuilder(String str):构造一个字符串生成器,并初始化为指定的字符串内容
字符串缓冲区,可以提高字符串的操作效率(可以把它看成是一个长度可变的字符串),底层也是一个数组,但是没有被final修饰,可以改变长度
char[] value = new char[16];
StringBuilder str= “a”+“b”+“c” = “abc”;
StringBuilder 在内存当中始终是一个数组,占用的空间比较小,效率比较高,
如果超出了StringBuilder的容器,会自动扩容
String str = new String("abc");
StringBuilder abc = new StringBuilder("abc");
System.out.println("使用带参的构造方法生成的字符串缓冲区:" + abc);
public StringBuilder append(…):添加任意类型数据的字符串形式,并返回当前对象本身
// 构建一个字符串缓冲区对象
StringBuilder bu = new StringBuilder();
//使用append方法往字符串缓冲区添加数据
StringBuilder bu2 = bu.append("sdfsdfsd");
System.out.println(bu);
/*
如果一个方法返回值是自己本身,那么我们可以进行链式调用,或者可以进行链式编程
* 如果一个方法返回值是对象,可以继续调用方法。
* */
System
java.lang.System 类中 提供了大量的静态方法和变量,它可以获取与系统相关的信息或者系统级的操作
在System类中不能被实例化,通过查阅API文档,常用的方法有:
public static long currentTimeMills(): 可以获取当前时间的毫秒值
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length):将将数组当中的数据拷贝到另一个数组当中
public static void exit(int status): 停止当前正在执行的虚拟机
/*
* 参数:
* src: 源数组 source 资源,来源
* srcPos: 源数组中的起始位置 position 位置
* dest: 目标数组 destination 目的地
* destaPos 目标数据中的起始位置
* length: 要复制的数组元素的数量 长度
*
* 练习: 将源数组arr = {1,2,3,4,5,6,7};
* 复制到目标数组 前三个位置上
* destArr = {6,7,8,9,10,11};
* */
int[] arr = {1, 2, 3, 4, 5, 6, 7};
int[] destarr = {6, 7, 8, 9, 10, 11};
// int[] asd=new int[5];
System.arraycopy(arr, 0, new int[5], 0, 3);
System.out.println("复制前:" + Arrays.toString(arr));