day16_Calendar类 System类 StringBuilder类 包装类

今日内容

  • Calendar类

  • System类

  • StringBuilder类

  • 包装类

Calendar类

  在java.util.Calendar包下,需要导包,是个日历类,抽象类。该类将所有可能用到的时间信息封装成静态成员变量,通过类名.静态成员变量获取时间字段值。

  Canlendar类不是直接创建对象来获取时间属性字段值,而是通过静态方法创建返回子类对象。

方法:

1.
    pubic static Calendar getInstence(): 使用默认时区和默认的语言环境获取一个日期对象
例如:
    public class Demo01Calendar{
         public  static void main(String[] args){
                Calendar calendar =Calendar.getInstance();//获取一个日历的对象
}       
}

常用的方法:

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

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

字段值 含义
YEAR
MOUTH 月份
DATE 月中的某一天(几号)
DAY_OF_MONTH 月中的第几天
HOUR 时(24小时制)
HOUR_OF_DAY 时(12小时制)
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 arrayaopy( Object src, int srcPos,Object dest,int destPos,int length):将数组中指定的数据拷贝到另一个数
  • (不常用)public static void exit(int status): 终止当前正在执行的java虚拟机

  currentTimeMills()方法

它获取的是从1970年1月1日 0时0分0秒到当前时间的毫秒差值

  arraycopy()方法

将一个数组中的元素复制到另一个数组中。性能高
arraycopy方法当中涉及到5个参数:
参数列表 参数名称 参数类型 参数的含义
1 src Object 源数组
2 srcPro int 源数组索引的起始位置
3 dest Object 目标数组
4 destPos int 目标数组索引的起始位置
5 length int 复制元素的个数


StringBuilder类

  String:是常量,值不能被改变 底层是被final修饰的数组不能改变 它是以字节的形式存在内存当中

  进行字符串相加的时候,会占用空间,效率低下

String str = "a"+"b"+"c"//开辟三个空间
String str = “ab”+“c”//每运算依次开辟一个新空间

  StringBuilder类:字符串缓冲区,长度可变的字符串,底层是一个数组,没有被final修饰,可以改变长度,其初始长度为16

  1.范围

      在内存中始终是一个数组,空间小,效率高,超出String的范围会自动扩容,每次扩容为:length*2+2;超出的话会直接扩充到有多少字符是多大内存。最大是int的范围。

  2.构造方法

他有空参构造和有参构造
空参是构造了没有内容的16个字符,
StringBuilder() 
有参构造可以在参数位置指定其字符
StringBuilder(CharSequence seq) 
    它包含与指定的 CharSequence 相同的字符。
也可以指定其初始容量
StringBuilder(int capacity) 
构造一个不带任何字符的字符串生成器,其初始容量由 capacity 参数指定。

  3.常用方法

public StringBuilder append(...):添加任意类型数据的字符串形式,并返回当前对象本身,返回的容量至少与给定的最小容量一样大

  4.相互转换

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

  5.强制特点

public StringBuilder insert(int offset,...)根据指定的位置插入任意类型数据的字符串形式,返回的是当前对象不管存储什么类型的数据,进入字符串缓冲区都变成了字符值(所有类型都可以)

 

包装类

  分为装箱和拆箱(包装类属于引用类型)

    装箱:把基本数据类型包装到包装类中(Integer,Double)

    拆箱:从包装类中取出基本数据类型的数据

  装箱:(弃用)

构造方法:
Integer (int value ) : 构造一个新分配的Integer对象 它表明指定的int类型值
Integer(String s)构造一个新分配的Integer对象,他表示的String参数指定的int值 “123”可以      “abc”不可以

静态方法:
static Integer calueOf(int i): 将指定的int类型值转换成Integer实例
static Integer valueOf(String s):将String类型的int值转换成Integer对象

  拆箱:(弃用)

在包装类中取出基本数据类型的数据(包装类型--->基本数据类型)
    成员方法:
        int intValue():将指定的包装类型的对象转换成int类型

  JDK1.5之后出现的自动装箱和自动拆箱

    自动装箱:

直接把int类型值赋值给包装类
如:
Integer  int =123; 相当于Integer int = new Integer(123);

    自动拆箱:

包装类无法直接参与运算
自动拆箱后:
int + 2就相当于int.intValue()+2

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

基本数据类型--->字符串
1. 基本数据类型值+“”   -->最简单的方法(常用)
2.使用Integer类中的toString(int i): 返回的是表示指定整数的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 19:30  wajueji  阅读(103)  评论(0编辑  收藏  举报