美文网首页
【从零开始学Java】学习笔记Day019

【从零开始学Java】学习笔记Day019

作者: 蝴蝶的眼睛 | 来源:发表于2020-04-27 21:20 被阅读0次

    [if !supportLists]一.[endif]Object类

    java.lang.Object(无需导包)

    祖宗类

    所有类都可以使用Object类的方法

    Object类中的常用方法:

    String toString()返回该对象的字符串表示。

    Object类toString方法的底层源码:

            public String toString() {

                return getClass().getName() + "@" + Integer.toHexString(hashCode());

            }

    getClass().getName():使用反射技术获取类的全类名(包名+类名)

    "@" :字符串原样输出,分割的作用

    hashCode():Object类中的方法,可以获取对象的哈希值,哈希值是一个系统随机给出的十进制的整数

    Integer.toHexString(hashCode());把十进制的整数转换为十六进制

    toString方法,默认打印对象的地址值没有意义

            可以重写toString方法,打印对象的属性值(成员变量)

    Object类中的方法equals:

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

    Object类中的equals方法的源码:

            public boolean equals(Object obj) {

                return (this == obj);

            }

    ==:比较运算符

    基本数据类型:比较的是值是否相等  10==20

    引用数据类型(数组,集合,类Person):比较的是地址值是否相等

    对于引用数据类型,比较地址值没有意义,可以重写equals比较属性

    //重点:快捷键 alt+insert 重写equals方法

        @Override

        public boolean equals(Object o) {

            if (this == o) {

                return true;

            }

    //getClass() != o.getClass()使用反射技术判断对象的类型 相当于  obj instanceof Student

            if (o == null || getClass() != o.getClass()) {

                return false;

            }

            Student student = (Student) o;

            if (this.age != student.age) {

                return false;

            }

            return name != null ? this.name.equals(student.name) : student.name == null;

        }

    native本地方法

    native修饰的方法:说明这个方法不是java语言编写的调用的是其他语言编写的代码或者操作系统底层的代码,看不到具体的方法

    Objects对象的工具类

    java.util.Objects类:操作对象的工具类,里边的方法都是静态的

        Objects中的方法都是防止空指针异常的

    注意:

    工具类中的方法一般都是静态的,可以通过类名直接使用

        Obejcts工具类中的equals方法

            static boolean equals​(Object a, Object b) :判断两个对象是否相等,相等返回true,不相等返回false

    底层源码:

            public static boolean equals(Object a, Object b) {

                return (a == b) || (a != null && a.equals(b));

            }

    Date类

    java.util.Date类:用于描述日期和时间的类,类Date 表示特定的瞬间,精确到毫秒,时间原点:0毫秒的时间点是1970 年 1 月 1 日 00:00:00  英国格林威治时间(世界标准时间),中国:东八区 时间+8个小时的时差1970 年 1 月 1 日 08:00:00

    把日期和时间转换为毫秒值:就是时间原点和当前时间的一个差值

    构造方法:

            Date() 获取当前Date

            Date(long date) 参数传递毫秒值,把毫秒值转化为Date

    成员方法:

            long getTime() 重点

    返回自1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。把当前Date转化为毫秒数

            void setTime(long time)

    设置此Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点,参数传递毫秒值,把毫秒值转化为Date

    DateFormat类

    java.text.DateFormat类

    public abstract class DateFormat extends Format

    DateFormat 是日期/时间格式化子类的抽象类==> DateFormat是Format类的子类,DateFormat本身还是一个抽象类

    无法直接创建对象使用

    作用:

    它以与语言无关的方式格式化并解析日期或时间。

    格式化(也就是日期-> 文本)

    解析(文本-> 日期)

    String format(Date date) 传递指定的日期,把日期格式化为符合模式的字符串

    Date parse(String source) 把符合模式的字符串解析为Date日期

    java.text.SimpleDateFormat类 extends DateFormat类

    SimpleDateFormat类构造方法

    SimpleDateFormat(String pattern)

    用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。

    参数:

     String pattern:传递日期和时间的模式

      在模式中写y代表年

    在模式中写M代表月

    在模式中写d代表日

    在模式中写H代表时

    在模式中写m代表分

    在模式中写s代表秒

    在模式中写S代表毫秒

    Calendar类

     java.util.Calendar类:日历类

     Calendar 类是一个抽象类,无法直接创建对象使用,在Calendar类中有一个静态方法叫getInstance获取Calendar类的子类对象

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

    注意:

    西方的月份:0-11月

    东方的月份:1-12月

    西方的星期:星期日-星期六

    东方的星期:星期一-星期日

      Calendar类的常用方法

            int get(int field) 获取给定日历字段的值。

            void set(int field, int value) 将给定的日历字段设置为给定值。

            void add(int field, int amount)  把日历字段增加|减少指定的值

            Date getTime()  把日历转换为日期对象

    注意:

    以上方法的参数(int field),让我们传递指定的日历字段,这些日历字段在Calendar类中被定义为了常量

    年:public final static int YEAR = 1;

    月:public final static int MONTH = 2;

    日:public final static int DATE = 5;

    日:public final static int DAY_OF_MONTH = 5;

    时:public final static int HOUR = 10;

    分:public final static int MINUTE = 12;

    秒:public final static int SECOND = 13;

    毫秒:public final static int MILLISECOND = 14;

    Math类

     java.lang.Math类:数学工具类

    Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。

            Math类中的方法都是静态方法,通过类名.方法名(参数)可以直接使用

            Math类中私有了构造方法,不让我们直接创建对象使用  private Math() {}

    成员方法:

            public static int abs(int a) 获取参数a的绝对值:

            public static double ceil(double a) 向上取整        

    public static double floor(double a) 向下取整        

    public static long round(double a) 四舍五入取整          

    public static double pow(double a, double b) 获取a的b次幂

    System类

    java.lang.System类

            System 类包含一些有用的类字段和方法。它不能被实例化(私有了构造方法)。

    里边的方法都是静态的,通过类名.方法名(参数)可以直接使用

    成员方法:

            public static void exit(int status) 终止当前运行的 Java 虚拟机,非零表示异常终止

            public static long currentTimeMillis() 返回当前时间(以毫秒为单位)

            static void arraycopy(Object src(源数组), int srcPos(起始位置), Object dest(目标数组), int destPos(置入位置), int length(截取长度))

    相关文章

      网友评论

          本文标题:【从零开始学Java】学习笔记Day019

          本文链接:https://www.haomeiwen.com/subject/rbcpwhtx.html