常用接口2

常用接口2

1.Object类

java.lang.Object类是Java语言的根类,是所有类的父类(超类),默认被未指定父类的类所继承。类中的方法可以被所有的子类使用

1.1.toString方法

  • public String toString:返回指定对象的字符串显示,

toString方法返回的字符串内容为对象的类型+@+内存地址值

通过system.out.println(对象)直接打印对象名,默认调用toString方法输出对象类型及其内存地址。

在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此需要对Object类的toString方法进行覆盖重写。

1.2.equals方法

  • public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。

调用equals方法指定参数为另一个对象,判断与调用equals方法的对象是否相同。

  • Object.equals(s1,s2)

对s1与s2两个对象进行比较,Object类中的equals方法容忍空指针,即允许一个对象为空进行比较。

默认地址比较

Object类中的equals方法默认进行 == 运算符的对象地址比较,除非是同一个对象,内存地址相同,否则其结果必为false

对象内容比较

如果是希望对对象的部分内容进行比较,即指定的成员变量;则可以对equals方法进行覆盖重写。

例:
@Override
    public boolean equals(Object o) {
        // 如果对象地址一样,则认为相同
        if (this == o)
            return true;
        // 如果参数为空,或者类型信息不一样,则认为不同
        if (o == null || getClass() != o.getClass())
            return false;
        // 转换为当前类型
        Person person = (Person) o;
        // 要求基本类型相等,并且将引用类型交给java.util.Objects类的equals静态方法取用结果
        return age == person.age && Objects.equals(name, person.name);

2.日期时间类

2.1.Date类

无参构造

  • public Date():获取当前系统的日期与时间(精确到毫秒)

有参构造

  • public Date(long date):传递毫秒值,将其转换为Date日期

getTime

  • public long getTime():将日期对象转换为对应的时间毫秒值

2.2.DateFormat类

java.text.DateFormat是一个用于日期/时间格式化的抽象类,主要通过它的子类java.text.SimpleDateFormat实现抽象方法完成日期:Date对象与文本:String对象之间相互转换。

  • 创建SimpleDateFormat对象:

    DateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

  • DataFormat类常用方法

    ft.format(Date date):将Date对象格式化为字符串

    ft.parse(String source):将字符串解析为Date对象

2.3.Calendar类

java.util.Clendar是在Date类之后出现的抽象日历类,替换掉了许多Date类的方法,该类中所有可能使用的时间信息(YEAR、MONTH、DAY-OF-MONTH、HOUR等)均被封装为静态成员变量,方便获取各个时间属性。

  • Calendar抽象类无法直接创建对象使用,通过Calendar的静态方法getInstance()返回Calendar的子类对象

    多态:Calendar c = Calendar.getInstance();

    使用默认时区与语言环境获得一个日历对象

  • 常用方法

    c.get(Calendar.YEAR):参数为指定时间字段,返回字段对应的具体时间

    c.set(Calendar.YEAR,1999):参数为指定时间字段+具体的字段值,从而设置对应的时间字段值

    c.set(1999,9,9):方法的重载,同时设置年月日

    c.add(Calendar.YEAR,2):指定时间字段+更改的值,正数为增加,负数为减少

    c.getTime():返回一个当前Calendar时间的Date对象

3.System类

java.lang.System类提供了大量的静态方法,可用于获取与系统相关的信息或系统级操作

常用方法

  • currentTimeMillis方法:获取自1970年开始到当前系统时间的毫秒值

    System.out.println(System.currentTimeMillis());

  • arraycopy(Object src, int srcPos, Object dest, int destPos, int length)方法:将数组中的数据拷贝到另一个数组

    参数序号参数名称参数类型参数含义
    1srcObject源数组
    2srcPosint源数组索引起始位置
    3destObject目标数组
    4destPosint目标数组索引起始位置
    5lengthint复制元素个数
            int[] src = new int[]{1,2,3,4,5};
            int[] dest = new int[]{6,7,8,9,10};
            System.arraycopy( src, 0, dest, 0, 3);
            /*代码运行后:两个数组中的元素发生了变化
             src数组元素[1,2,3,4,5]
             dest数组元素[1,2,3,9,10]
            */
    

4.StringBuilder类

在String类中描述字符串是常量,字符串的底层是一个被final修饰的数组,在创建后不能被修改,故若对字符串进行拼接操作,每次拼接均会构建一个新的String对象,既耗时又浪费内存空间,为解决该问题需使用java.lang.StringBuilder

  • StringBuilder,又称可变字符序列,是一个类似于String的字符缓冲区,通过内部数组存放字符串内容,自动维护数组的扩容

  • 构造方法:

    • 空参构造:StringBuilder bu1 = new StringBuilder

      构造一个不带任何字符的字符串生成器,初始容量为16个字符

    • 有参构造:StringBuilder bu2 = new StringBuilder(String str)

      构造一个字符串生成器,并初始化为指定的字符串内容

  • 成员方法

    • append():添加任意类型的字符串数据,并返回当前对象本身,若使用另一个StringBuilder对象接受append方法的返回值,即将原StringBuilder对象的地址值赋给新创建的StringBuilder对象,二者完全相同,故使用append方法无需接受返回值

      StringBuilder sb1 = new StringBuilder
      sb1.append("abc");
      sb1.append(1);
      sb1.append(true);
      System.out.println(sb1);
      //输出结果w为abc1true,StringBuilder对象自动拼接扩充
      
    • toString():StringBuilder对象转换为String对象方法

      String str1 = "Hello";
      StringBuilder sb1 = StringBuilder(str);//String转换为StringBuilder对象
      sb1.append("World");
      String str2 = sb1.toString();
      System.out.println(str2);
      //输出结果为HelloWorld
      

5.包装类

基本数据类型没有对应的方法来操作这些基本类型的数据,为解决此问题,可以使用一个类,把基本类型的数据封装起来,在类中定义一些方法,使用这些方法来操作这些基本类型的数据,这种类被称为包装类

基本类型对应的包装类(位于java.lang包中)
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

转换

  • 装箱:从基本类型转换为对应的包装类对象

    • 构造方法:
      1. Integer(int value);构造一个表示指定的int值的Integer对象
      2. Integer(String s);构造一个表示String参数指定的int值的Integer对象,若传递的String字符串指向的不是Int类型的数据则会报错。Integer("110")
    • 静态方法:
      1. statifc Integer valueof(int i);:返回一个表示指定int值的Integer对象
      2. static Integer valueof(String s);:返回保存指定String代表Int值的Integer对象
  • 拆箱:从包装类对象转换为对应的基本类型

    • 成员方法:
      1. int Integer();以int类型返回Integer对象的值
  • 自动装箱

    Integer in = 1;//把int类型的整数赋值给包装类

  • 自动拆箱

    in = in+2;😕/in是包装类,无法直接参与运算,可以自动转换为基本数据类型再进行计算,然后再次自动装箱转换为Integer对象

基本类型与字符串的相互转换

1.基本类型转字符串

  • 基本类型的值+" ",添加空字符串自动转换为String类型

    String s = 1+" ";

  • 包装类的静态方法:toString(参数),返回一个指定包装类对象的String对象

    String s = Integer.toString(1);

  • String类的valueof()方法,取得基本数据类型的String对象

    String s = String.valueof(1);

2.字符串转基本类型

  • 包装类的静态方法:static xxx parsexxx(String s),返回一个指定字符串的基本数据类型对象

    int i = Integer.parseInt("1");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值