java一些常用类介绍Object Date DateFormat Calendar System StringBuilder

Object类

java.lang.object

lang包不需要导包,可以直接使用

是所有类的父类

java.util.Objects JDK7添加了一个Object工具类

它提供了一些方法来操作对象,它由一些静态的实用方法组成,这些方法是null-save(空指针安全的)或null-tolerant(容忍空指针的),用于计算对象的hashcode、返回对象的字符串表示形式、比较两个对象。

在比较两个对象的时候,Object的equals方法容易抛出空指针异常,

null.equals null不能调用方法

public boolean equals(Object obj) {
    
    
        return (this == obj);
    }

而Objects类中的equals方法就优化了这个问题。

public static boolean equals(Object a, Object b) {
    
      
    return (a == b) || (a != null && a.equals(b));  
}

toString()

默认

不重写,返回地址值

toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。

重写

@Override
public String toString(){
    
    
    return "";
}

equals()

###默认

Object类中默认进行==运算符的对象地址比较,只要不是同一个对象,结果必然为false。

重写

lang包下的equals


@Override
public boolean equals(object o){
    
    
    if(this == o)
        return ture;
    if(o==null||getclass()!=o.getclass())
        return false;
    Person person =(person) o;
    return age == person.age &&Object.equals(name,person.name);
}

Date类

java.util.Date类 表示特定的瞬间,精确到毫秒。

标准基准时间 1970年1月1日00:00:00(英国)

public long getTime() 把日期对象转换成对应的时间毫秒值。

DateFormat类

时间/日期格式化子类的抽象类

java.text.SimpleDateFormat

  • public SimpleDateFormat(String pattern)
标识字母(区分大小写) 含义
y
M
d
H
m
s

DateFormat类的常用方法有:

  • public String format(Date date):将Date对象格式化为字符串。
  • public Date parse(String source):将字符串解析为Date对象。

Calendar类

java.util.Calendar是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。日历类就是方便获取各个时间属性的。

获取方式

Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,返回子类对象,如下:

Calendar静态方法

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

常用方法

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

  • 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对象。

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

字段值 含义
YEAR
MONTH 月(从0开始,可以+1使用)
DAY_OF_MONTH 月中的天(几号)
HOUR 时(12小时制)
HOUR_OF_DAY 时(24小时制)
MINUTE
SECOND
DAY_OF_WEEK 周中的天(周几,周日为1,可以-1使用)

小贴士:

西方星期的开始为周日,中国为周一。

在Calendar类中,月份的表示是以0-11代表1-12月。

日期是有大小关系的,时间靠后,时间越大。

System类

java.lang.System

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

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

##数组拷贝(arraycopy)

数组的拷贝动作是系统级的,性能很高。System.arraycopy方法具有5个参数,含义分别为:

参数序号 参数名称 参数类型 参数含义
1 src Object 源数组
2 srcPos int 源数组索引起始位置
3 dest Object 目标数组
4 destPos int 目标数组索引起始位置
5 length int 复制元素个数

StringBuilder类

与String的区别
在这里插入图片描述

常用方法

StringBuilder常用的方法有2个:

  • public StringBuilder append(...):添加任意类型数据的字符串形式,并返回当前对象自身
  • public String toString():将当前StringBuilder对象转换为String对象。已经重写Object的toString();
public class Demo02StringBuilder {
    
    
	public static void main(String[] args) {
    
    
		//创建对象
		StringBuilder builder = new StringBuilder();
		//public StringBuilder append(任意类型)
		StringBuilder builder2 = builder.append("hello");
		//对比一下
		System.out.println("builder:"+builder);
		System.out.println("builder2:"+builder2);
		System.out.println(builder == builder2); //true
	    // 可以添加 任何类型
		builder.append("hello");
		builder.append("world");
		builder.append(true);
		builder.append(100);
		// 在我们开发中,会遇到调用一个方法后,返回一个对象的情况。然后使用返回的对象继续调用方法。
        // 这种时候,我们就可以把代码现在一起,如append方法一样,代码如下
		//链式编程
		builder.append("hello").append("world").append(true).append(100);
		System.out.println("builder:"+builder);
	}
}
回一个对象的情况。然后使用返回的对象继续调用方法。
        // 这种时候,我们就可以把代码现在一起,如append方法一样,代码如下
		//链式编程
		builder.append("hello").append("world").append(true).append(100);
		System.out.println("builder:"+builder);
	}
}

猜你喜欢

转载自blog.csdn.net/ren9436/article/details/107582900