Java基础(十四)——API(Calendar类、System类、StringBuilder类、包装类)

Calendar类

  概念

    java.util.Calendar日历类,抽象类,在Date类后出现的,替换掉了很多Date类中的方法。该类将所有的可能用到的时间信息封装成静态成员变量,通过类名.静态成员变量获取时间字段值。

  获取方式

 

  由于Calendar类是一个抽象类,语言敏感性,Calendar类并不是直接创建对象来获取时间属性值,而是通过静态方创建,返回子类对象。

  静态方法如下:

  •   public static Calendar getInstance():使用默认的时区和默认的语言环境获取一个日历对象

    例如:

 

1 import java.util.Calendar;
2 public class Demo01Calendar{
3     public static void main(String[] args){
4         Calendar claendar = Calendar.getInstance();//获取一个日历的对象 
5     }
6 }

 

  常用的方法

  • public int get(int field): 获取给定的日历字段值
  • public void set(int field,int value):将给定的字段设定为给定的值
  • public abstract void add(int field,int amount):根据日历规则,将给定的日历字段添加或者减少指定的时间值
  • public Date getTime():把日历对象转换成日期对象
  • public long getTimeInMills():获取日历对象对应的毫秒值

  Calendar类中提供了很多个成员变量,代表给定的日历字段:

字段值含义
YEAR
MONTH 月份
DATE 月中的某一天(几号)
DAY_OF_MONTH 月中的第几天
HOUR 时(12小时制)
HOUR_0F_DAY 时(24小时制)
MINUTE
SECOND
DAY_OF_WEEK 一周中的第几天(周几,周日为1)

  备注:

  1.     在西方的星期,开始为周日,中国为周一
  2.     在Calendar类中,月份的表示是以0-11代表的1-12月
  3.     日期是有大小关系,时间靠后,时间越大

System类

  java.lang.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):终止当前正在执行的java虚拟机 0代表正常的退出,非0代表异常退出

  currentTimeMills()方法

    实际上,它获取到的是距1970年1月1日0时0分0秒到当前时间的毫秒差值

  arraycopy()方法

    将一个数组当中的元素复制到另一个数组当中,数组的拷贝动作是一个系统级的操作,性能比较高。

    array方法当中涉及到5个参数:

参数列表参数名称参数类型参数含义
1 src Object 原数组
2 srcPos int 源数组索引的起始位置
3 dest Object 目标数组
4 destPos int 目标数组索引的起始位置
5 length int 复制元素的长度

StringBuilder类

  构造方法: 

1 public StringBuilder(): 构造一个不带任何字符的字符串生成器,其初始容器为16个字符
2 public StringBuilder(String str):构造一个字符串生成器,并初始化为指定的字符串内容

  常用方法: 

    1.public StringBuilder append(....): 添加任意类型数据的字符串形式,并返回当前对象本身
   返回的容量至少与给定的最小容量一样大。
   返回当前容量增加相同数量+ 2,如果那就足够了。
   不会返回大于{@code MAX_ARRAY_SIZE}的容量 Integer.MAX_ARRAY_SIZE-8
   除非给定的最小容量大于该容量。
  如果这个最大的容量还不够,内存溢出。 throw new OutOfMemoryError();
  

   2.StringBuilder可以和String进行相互转换
    String--->StringBuilder:可以使用StringBuilder的带参构造方法
    StringBuilder(String str) 构造一个字符串生成器,并初始化为指定的字符串内容
    StringBuilder---->String:可以使用StringBuilder类中的toString()方法
    public String toString():将当前的StringBuilder对象转换成String对象

   3.public StringBuilder insert(int offset,...)根据指定的位置插入任意类型数据

    返回当前对象不管存储什么类型的数据,进入字符串缓冲区都变成了字符串

包装类

装箱:把基本数据类型的数据包装到包装类中(基本数据类型---->包装类型)
以Integer int的包装类为例:
构造方法:
Integer(int value):构造一个新分配的Integer对象,它表示的指定的int类型的值 123
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 int01 = 123; 相当于  Integer int01 = new Integer(123);
自动拆箱:int01是包装类,无法直接参与运算,可以自由转换成基本数据类型,在进行相关的运算
     int01 + 2 就相当于 int01.intValue() + 2
当我们把基本数据类型中存储到容器当中,一般不能直接存储  
ArrayList集合
容器当中一般存储的都是引用数据类型(对象)
包装类型属于引用数据类型 JDK1.5之后包装类型和基本数据类型可以自由切换

 基本数据类型和字符串之间的自由切换:

基本数据---->字符串(String)
1. 基本数据类型值 + "" ----> 最简单的方法(常用)
2. 使用Integer类中的toString(参数): 返回的是表示指定整数的String对象+
  static String toString(int i)
3. String类中的静态方法valueOf(参数)

  static String valueOf(int i) 返回的是int参数的字符串表示形式

字符串--->基本数据类型
使用包装类中的静态方法parseXxx(字符串);
Integer类:  static int parseInt(String s)
Double类:  static double parseDouble(String s)

 

 

posted @ 2020-12-01 21:42  寒江雨  阅读(95)  评论(0编辑  收藏  举报