Calendar类、System类、StringBuilder类及基本数据类型转换

Calendar类

Calendar为抽象类,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,返回子类对象,Calendar静态方法如下:
Calendar.getInstance()//使用默认时区和语言环境获得一个日历

Calendar cal = Calendar.getInstance();

常用方法

根据Calendar类的API文档,常用方法有:

  • int get(int field):返回给定日历字段的值。
  • set(int field, int value):将给定的日历字段设置为给定值。
  • add(int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。
  • Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。
    Calendar类中提供很多成员常量,代表给定的日历字段:
    在这里插入图片描述
import java.util.Calendar;
import java.util.Date;

public class CalendarTest {
    public static void main(String[] args) {
        calendar();

    }

    private static void calendar() {
        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.MONTH,2);//add方法,根据日历规则,为给定日历字段添加或减去指定的时间量
        int year = cal.get(Calendar.YEAR);//getf方法,返回给定日历字段的值
        int month = cal.get(Calendar.MONTH);
        System.out.println("今年是"+year+","+month+"月");

        System.out.println(month);
        cal.set(2022, 12, 11);//set方法。给给定的日历字段设置给定值
        System.out.println("今年是"+year+","+month+"月");
        System.out.println();
        Date date =cal.getTime();//返回calendar的时间值
        System.out.println(date);
    }
}

System类

java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在System类的API文档中,常用的方法有:

  • public static long currentTimeMillis():返回以毫秒为单位的当前时间。
  • public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length):将数组中指定的数据拷贝到另一个数组中。

currentTimeMillis方法

实际上,currentTimeMillis方法就是 获取当前系统时间与1970年01月01日00:00点之间的毫秒差值

arraycopy方法

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length):将数组中指定的数据拷贝到另一个数组中
数组的拷贝动作是系统级的,性能很高。System.arraycopy方法具有5个参数,含义分别为:
在这里插入图片描述

public class SystemTimeTest {
    public static void main(String[] args) {
        long start = System.currentTimeMillis();
        for (int i = 0; i < 5000; i++) {
            System.out.println(i);
        }
        long end = System.currentTimeMillis();
        System.out.println("共耗时毫秒:"+(end-start));
    }
}

StringBuilder类

StringBuilder是个字符串的缓冲区,即它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作。它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容。StringBuilder会自动维护数组的扩容。原理如下图所示:(默认16字符空间,超过自动扩充)

构造方法

根据StringBuilder的API文档,常用构造方法有2个:

  • public StringBuilder():构造一个空的StringBuilder容器。
  • public StringBuilder(String str):构造一个StringBuilder容器,并将字符串添加进去。
StringBuilder sb1 = new StringBuilder();//(空白) 
StringBuilder sb2 = new StringBuilder("itcast");//itcast

常用的方法

StringBuilder常用的方法有2个:

  • public StringBuilder append(…):添加任意类型数据的字符串形式,并返回当前对象自身
  • public String toString():将当前StringBuilder对象转换为String对象。
public class StringBuilderTest {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        StringBuilder sb1 = sb.append("hello");
        System.out.println(sb1);
        String sb2 = sb1.toString();
        System.out.println(sb2);

    }
}

装箱与拆箱

装箱:把基本类型的数据,包装到包装类中(基本类型数据→包装类)
构造方法
Integer(int value)构造以新分配的Integer对象,它表示指定的int值
Integer(String s)构造一个新分配的Integer对象,它表示String参数所指示的int值
传递的字符串,必须是基于基本类型的字符串,否则会抛出异常,eg“100”正确,“a”抛出异常
静态方法
static Integer valueOf(int i)返回一个表示指定int值的Integer实例
static Integer valueOf(String s)返回一个表示指定String值的Integer对象

Integer i = new Integer(4);//使用构造函数函数
Integer iii = Integer.valueOf(4);//使用包装类中的valueOf方法

拆箱:在包装类中取出基本类型的数据(包装类–>基本类型的数据)
成员方法
int intValue() 以int类型返回该Integer的值

int num = i.intValue();

自动装箱与自动拆箱

由于我们经常要做基本类型与包装类之间的转换,从Java 5(JDK 1.5)开始,基本类型与包装类的装箱、拆箱动作可以自动完成。例如:

Integer i = 4;//自动装箱。相当于Integer i = Integer.valueOf(4);
i = i + 5;//等号右边:将i对象转成基本数值(自动拆箱) i.intValue() + 5;
//加法运算完成后,再次装箱,把基本数值转成对象。

基本类型与字符串之间的转换

基本类型–>字符串

1、基本类型数据的值+“”最简单的方式(工作中常用)

String s =100+"" ;

2、使用包装类中静态方法
static String toString(int i)返回一个表示指定整数的String对象
3、使用String类中的静态方法
static String valueOf(int i)返回int参数的字符串表示形式

字符串–>基本类型

除了Character类之外,其他所有包装类都具有parseXXX(“字符串”)的静态方法:
public static byte parseByte(String s):将字符串参数转换为对应的byte基本类型。
public static short parseShort(String s):将字符串参数转换为对应的short基本类型。
public static int parseInt(String s):将字符串参数转换为对应的int基本类型。
public static long parseLong(String s):将字符串参数转换为对应的long基本类型。
public static float parseFloat(String s):将字符串参数转换为对应的float基本类型。
public static double parseDouble(String s):将字符串参数转换为对应的double基本类型。
public static boolean parseBoolean(String s):将字符串参数转换为对应的boolean基本类型。
eg:

 int num = Integer.parseInt("100");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值