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

[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(截取长度))

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容