day16_api02

  • 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)
*
原文地址:https://www.cnblogs.com/mitoris/p/14065896.html