- calendar类
- System类
- StringBuilder类
- 包装类
Calendar类
概念:java.util.Calendar类,是一个抽象类。在Date后出现,替换掉了很多Date类中的方法,该类将所有的可能用到的时间信息封装为【静态成员变量】,通过类名直接调用获取时间字段值
获取方式:由于Calendar类是一个抽象类,语言敏感性,Calendar类并不是直接创建对象来回去时间属性值,而是通过静态方法返回子类对象(getInstance)
public static Calendar getInstance():使用默认时区和默认语言环境获得一个日历对象(子类对象)
public class CalendarDemo{
public static void main(String []args){
Calendar calendar = Calendar.getInstance();
}
}
Calendar类常用的成员方法:
* 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 Date getTimeInMillis():获取日历对象对应的毫秒值
//三个获取距公元时间毫秒值的方法
long time1 = new Date().getTime();
System.out.println(time1);//Date类方法
long time2 = System.currentTimeMillis();
System.out.println(time2);//System类方法
long time3 = calendar.getTimeInMillis();
System.out.println(time3);//Calendar类方法
Calendar类提供了很多个静态成员变量,代表给定的日历字段
字段值 | 含义 |
---|---|
YEAR | 年 |
MONTH | 月 |
DATE | 月份中的某一天(几号) |
DAY_OF_DAY | 月中的第几天 |
HOUR | 时(12小时制) |
HOUR_OF_DAY | 时(24小时制) |
MINUTE | 分 |
SECOND | 秒 |
DAY_OF_WEEK | 一周中的第几天(周几,周日为1) |
备注:Calendar类中 0-11代表1-12月
日期是有大小关系的,时间靠后,,时间越大
System类
java.lang.System 类中提供了大量的静态方法和成员变量,可以获取与系统相关的
信息或者系统级操作,System类不能被实例化。
常用的方法:
- public static long currentTimeMills():获取当前时间的毫秒值(距纪元时间)
-
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length):从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束
-
public static void exit(int status):终止当前正在运行的 Java 虚拟机 0代表正常退出,非0代表异常退出
arraycopy方法
将一个数组当中的元素复制到另外一个数组之中,该拷贝动作是一个系统级的操作,性能比较高
* src: 源数组
* srcPos:源数组中的起始位置
* dest:目标数组
* destPos:目标数组中的起始位置
* length:要复制的数组元素的数量
StringBuilder类
String类 :字符串是常量,他的值在创建后不能改变(引用不可变),本质是char型数组,但以byte型数组存储在存储器
StringBuilder:字符串缓冲区,可以提高字符串的操作效率(可以把它看作一个可变长度的字符串),底层也是一个数组,但是没有被final修饰,可以改变长度 StringBuilder在内存中始终是一个数组,占用空间比较小,效率较高,如果长度溢出,会自动扩容
构造方法:
* public StringBuilder():构造一个不带任何字符的字符串生成器,初始容量16个字符
* public StringBuilder(String str):构造一个字符串生成器,并初始化为指定的字符串内容
常用方法:
* public StringBuilder append(...):添加任意类型的字符串形式,并返回当前对象本身
* public StringBuilder insert(int offset,...)根据指定的位置插入任意类型数据的字符串格式,返回的是* 当前对象
* 不管存储什么类型的数据,进入字符串缓冲区都变成字符串
*
StringBuilder 可以和String相互转换:
* String--->StringBuilder :可以使用StringBuilder的带参构造方法
* StringBuilder(String str)构造一个字符串生成器,并初始化为指定的字符串内容
* StringBuilder--->String :可以使用StringBuilder类中的toString方法
* public String toString():直接转换
包装类
* 装箱:把基本数据类型数据包装到包装类中(基本数据类型--->包装类型)
* 以Integer为例:
* 构造方法:
* Integer(int value):构造一个新分配的Integer对象,它表示的指定的int类型的值
* Integer(String s):构造一个新分配的Integer对象,他表示的String参数类型指定的int值,例 * 如"123"
* 静态方法:
* static Integer valueOf(int i):将指定的int值转换为Integer实例
* static Integer valueOf(String s):将String类型的int值转换为Integer实例
* 拆箱:在包装类中取出基本数据类型的数据(包装类--->基本数据类型)
* 成员方法:
* int intValue():将指定的包装类型对象转换为int类型的值
*/
/*
* 自从JDK1.5之后出现:自动装箱、自动拆箱
* --->基本数据类型和包装类可以自由切换
*
* 自动装箱:直接把int类型赋值给包装类
* 如:Integer a = 123;
* 自动拆箱:可以自由转换成基本数据类型,进行相关运算
* int b = a+2;相当于 int b = a.intValue()+2;
* */
/*
* 当我们把基本数据类型存储到容器当中,一般不能存储。只能存储引用数据类型(对象)
* 包装类型属于引用数据类型 JDK1.5之后,二者可以自由切换
基本数据类型与String的自由切换
基本数据类型与字符串的自由切换
* 基本数据--->字符串(String)
* 1. +"" --->最简单的方法(很常用)
* 2. 使用Integer类中的toString(int i):返回值是表示指定整数的String对象
* 3. String类中的valueOf(参数)
* static String valueOf(int i) 返回的是int参数的字符串表示形式
* 字符串(String)--->基本数据
* 1. 使用包装类中的parseXxx(字符串)
* Integer类: static int parseInt(String str)
* Double: static Double parseInt(String str)
*