前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【Java_11】Object 类、常用API、包装类

【Java_11】Object 类、常用API、包装类

作者头像
用户8250147
发布2021-02-04 10:05:22
发布2021-02-04 10:05:22
52300
代码可运行
举报
文章被收录于专栏:黑马黑马
运行总次数:0
代码可运行

一、Object 类

1. Object 类介绍
代码语言:javascript
代码运行次数:0
运行
复制
* Object 类是所有类的父类,若一个类没有指定继承的类则继承Object。任一类都直接或间接继承于Object
2. Object 类的方法
代码语言:javascript
代码运行次数:0
运行
复制
① toString()
    * 源码
        public String toString() {
            return getClass().getName() + '@' + Integer.toHexString(hashCode())
        }
    * 若不重写 toString() 则返回 对象类型 + @ + 地址的哈希值
    * 重写 toString()
        @Override
        public String toString() {
            return "Student{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    '}';
        }
② equals()
    * 源码
        public boolean equals(Object obj) {
            return (this == obj);
        }
    * 若不重写 equals() 则比较两个对象的地址值
    * 重写 equals()
        @Override
        public boolean equals(Object o) {
            //判断是否为同一个对象
            if (this == o) 
                return true;
            //判断是否为空,是否为同一引用类型
            if (o == null || getClass() != o.getClass()) 
                return false;
            //向下转型
            Student_equals that = (Student_equals) o;
            //返回内容的比较结果
            return age == that.age && Objects.equals(name, that.name);
        }
3. Objects 工具类
代码语言:javascript
代码运行次数:0
运行
复制
* Objects.equals()
    public static boolean equals(Object a, Object b) {  
        return (a == b) || (a != null && a.equals(b));  
    }
* Objects.equals()容忍空指针

二、常用API

1. Date 类
代码语言:javascript
代码运行次数:0
运行
复制
① 时间原点
    格林威治:1970-01-01 00:00:00
    北京:1970-01-01 08:00:00
② Date 类
    Date 类的大部分方法都已经过时,在 jdk1.1 以后由 Carendar 类取代
③ 构造方法
    * public Date()
        分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
    * public Date(long date)
        分配Date对象并初始化此对象,以表示自从原点以来经过的毫秒数。
④ getTime()
    * 把日期对象转换成对应的时间毫秒值。
⑤ 示例
    import java.util.Date;

    public class DemoDate {
        public static void main(String[] args) {
            Date date1 = new Date(1000 * 60 * 2);       //Thu Jan 01 08:02:00 CST 1970
            Date date2 = new Date(0);                     //Thu Jan 01 08:00:00 CST 1970
 
            //无参构造。表示当前时间L
            Date date3 = new Date();        //Wed May 29 13:41:42 CST 2019
 
            //将日期对象转为毫秒值
            long m = date3.getTime();       //1559108502853
 
            System.out.println(date1);
            System.out.println(date2);
            System.out.println(date3);
        }
    }
4. DateFormat 类
代码语言:javascript
代码运行次数:0
运行
复制
① DateFormat 介绍
    * DateFormat 是一个抽象类,不能直接 new 对象,需要使用子类
② SimpleDateFormat
    * 格式
        //用给定的模式和默认语言环境的日期格式符号创建SimpleDateFormat对象
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
    * 规则
        y ---> 年
        M ---> 月
        d ---> 日
        H ---> 时
        m ---> 分
        s ---> 秒
    * 方法
        format()
            格式化,按照指定的格式,从Date对象转换为String对象。
        parse()
            解析,按照指定的格式,从String对象转换为Date对象。
③ 示例
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Scanner;

    public class DemoDateFormat {
        public static void main(String[] args) throws ParseException {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入出生日期(格式:xxxx-xx-xx xx:xx:xx)");
            String s = sc.nextLine();
            //日期对象
            Date date = new Date();
            //格式化对象
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            //格式化当前日期
            String format = sdf.format(date);
            System.out.println(format);
 
            //解析传入日期
            Date parse = sdf.parse(s);
            //计算出生毫秒数
            long l = date.getTime() - parse.getTime();
            //输出毫秒
            System.out.println(l);
            //输出年龄
            System.out.println(l / 1000 / 60 / 60 / 24 / 30 / 12);
        }
    }
5. Calendar 类
代码语言:javascript
代码运行次数:0
运行
复制
① Calendar 类为抽象类,提供了 getIntence() 获取 Calendar 类的子类对象。
② 常用方法
    * get(int field)
        返回给定日历字段的值。
    * set(int field, int value)
        将给定的日历字段设置为给定值。
    * add(int field, int amount)
        根据日历的规则,为给定的日历字段添加或减去指定的时间量。
    * getTime()
        返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。
③ 成员常量
    YEAR				年
    MONTH				月(从0开始,可以+1使用)
    DAY_OF_MONTH		月中的天(几号)
    HOUR				时(12小时制)
    HOUR_OF_DAY			时(24小时制)
    MINUTE				分
    SECOND				秒
    DAY_OF_WEEK			周中的天(周几,周日为1,可以-1使用)
④ 示例
    import java.util.Calendar;

    public class DemoCalendar {
        public static void main(String[] args) {
            //创建日历对象
            Calendar c = Calendar.getInstance();
            //这是时间
            c.set(2019,5,20);
            //西方月份是:0 - 11 , 每周第一天是周日
            c.add(Calendar.MONTH,1);
            //获取当前时间月份并打印
            System.out.println(c.get(Calendar.MONTH));
        }
    }
6. System 类
代码语言:javascript
代码运行次数:0
运行
复制
① currentTimeMillis()
    获取系统时间与时间原点之间的毫秒插值。
② arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
    将数组中指定的数据拷贝到另一个数组中。
	
    * 参数 
        src 		源数组
        srcPos 		源数组起始位置
        dest		目标数组
        destPos		目标数组起始位置
        length		拷贝长度
7. StringBuilder 类
代码语言:javascript
代码运行次数:0
运行
复制
① 它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容。
   StringBuilder会自动维护数组的扩容。(默认16字符空间,超过自动扩充)
② 构造方法
    * public StringBuilder()
        构造一个空的StringBuilder容器。
    * public StringBuilder(String str)
        构造一个StringBuilder容器,并将字符串添加进去。
③ 常用方法
    * append(String str)
        添加任意类型数据的字符串形式,并返回当前对象自身。
    * toString()
        将当前StringBuilder对象转换为String对象。
④ 示例
    public class DemoStringBuilder {
       public static void main(String[] args) {
            //使用有参构造创建 StringBuilder 对象
            StringBuilder sb = new StringBuilder("中国");
            //将字符追加到sb后
            sb.append("©");
            sb.append(2019);

            //将StringBuilder转为字符串
            String s = sb.toString();
 
            System.out.println(s);
 
        }
    }

三、包装类

1. 装箱与拆箱
代码语言:javascript
代码运行次数:0
运行
复制
* 【装箱】基本数值 ---> 包装对象
    //使用构造函数函数
    Integer i1 = new Integer(int i);
    //使用包装类中的valueOf方法
    Integer i2 = Integer.valueOf(int i);
* 【拆箱】包装对象 ---> 基本数值
    int num = i.intValue();
* 从 JDK 1.5 开始,基本类型与包装类的装箱、拆箱动作可以自动完成。
    Integer i = 1;//自动装箱 相当于 Integer i = Integer.valueOf(1);
    int a = i + 2;//自动拆箱 相当于 i.intValue() + 2;

基本数据类型对应的包装类在 Java_06 中有说明

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

除了Character类之外,其他所有包装类都具有parseXxx静态方法可以将字符串参数转换为对应的基本类型

代码语言:javascript
代码运行次数:0
运行
复制
* 【Byte】 parseByte(String s)
    将字符串参数转换为对应的 byte 基本类型。
* 【Short】parseShort(String s)
    将字符串参数转换为对应的 short 基本类型。
* 【Integer】parseInt(String s)
    将字符串参数转换为对应的 int 基本类型。
* 【Long】parseLong(String s)
    将字符串参数转换为对应的 long 基本类型。
* 【Float】parseFloat(String s)
    将字符串参数转换为对应的 float 基本类型。
* 【Double】parseDouble(String s)
    将字符串参数转换为对应的 double 基本类型。
* 【Boolean】parseBoolean(String s)
    将字符串参数转换为对应的 boolean 基本类型。
3. 示例
代码语言:javascript
代码运行次数:0
运行
复制
public class DemoParse {
    public static void main(String[] args) {
        int num = Integer.parseInt("100");
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Object 类
    • 1. Object 类介绍
    • 2. Object 类的方法
    • 3. Objects 工具类
  • 二、常用API
    • 1. Date 类
    • 4. DateFormat 类
    • 5. Calendar 类
    • 6. System 类
    • 7. StringBuilder 类
  • 三、包装类
    • 1. 装箱与拆箱
    • 2. 基本类型与字符串之间的转换
    • 3. 示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档