zoukankan      html  css  js  c++  java
  • 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)

     
  • 相关阅读:
    WAF绕过方法
    ”非常危险“的Linux命令
    CSRF--花式绕过Referer技巧
    安卓手机的后门控制工具SPADE
    基于RedHat发行的Apache Tomcat本地提权漏洞
    SQL注入--宽字节注入
    MySQL提权
    CF1067D. Computer Game(斜率优化+倍增+矩阵乘法)
    CF1063F. String Journey(后缀数组+线段树)
    BZOJ4732. [清华集训2016]数据交互(树链剖分+线段树+multiset)
  • 原文地址:https://www.cnblogs.com/lk625/p/14070943.html
Copyright © 2011-2022 走看看