黑马程序员技术交流社区

标题: 【成都校区】2018/11/10 9:10 就业班day01 [打印本页]

作者: blovedr    时间: 2018-11-15 09:43
标题: 【成都校区】2018/11/10 9:10 就业班day01
本帖最后由 blovedr 于 2018-11-15 10:22 编辑

2018/11/10  9:10   就业班day01

Object  java.lang.Object
概述:
1.      Object所有类直接或间接的父类
2.      一个类如果没有显示声明继承谁, 默认继承自Object(任何类都拥有Object类中的方法)


方法:
  1  String toString()  将一个对象用一个字符串来描述

    hastCode(): 将对象的内存地址转换为十六进制的整数

        说明: Object的toString方法不能很好描述我们子类对象, 所以可以重写父类的方法。

       重写的方式:
1.      手动重写
2.      EDEA 自动重写   Alt+insert 选择toStirng 方法


       注意:
             如果直接输出对象, 默认就会调用对象的toStirng 方法, 输出其返回值。


      2  Equals方法
       Boolean equals(Object obj)   比较两个对象是否相等
           源码;return(this == obj);
           解释:this 就是调用方法的对象 obj 就是传递尽量的对象
                    Object 的实现直接就是用 == 号比较两个对象的地址值

            If (obj intanceof Person) // 如果obj传递进来的对象属于Person类型, 是就返回true, 否则返回false.

           This.getClass()!= obj.get Class()
            // 如果this对象所在的类, 和obj所在的类, 不是同一个, 则不需要比较// 属性, 直接false。


           // 如果是同一个对象,则不需要比较属性,直接返回true


日期时间类【参考pdf及视频】
    Java.util.Date: 表示日期时间类

毫秒:千分之一秒   1000毫秒 = 1秒
特定的瞬间:一个时间点, 一刹那时间
2088-08-0909:55:33:333 瞬间

日期转换为毫秒进行计算, 计算完毕, 再把毫秒转换为日期

把日期装换为毫秒
    当前日期: 2088-01-01
    时间原点(0毫秒): 1970年1月1日 00:00:00

    System.currentTimeMillis()  : 获取当前系统时间到1970年1月1日 00:00:00经历了多少毫秒


     注意:中国东八区  + 8小时


       把毫秒转换为日期:
           1 = 24 * 60 * 60 = 86400 * 1000 = 86400000 毫秒


      通过构造方法创建成员变量,之后通过成员变量来调用API中的成员方法。

      构造方法:
      Date 类的空参构造方法
      Date() 获取当前系统的日期和时间 CST: 代表北京时间或上海时间。

      Date 类的带参数构造方法
      Date(Long date): 传递毫秒值, 把毫秒值转换为Date日期   
                      指定毫秒值的相对时间。

      成员方法:
      Long getTime() 把日期转换为毫秒(相当于System.currentTimeMillis()方法
                    获取Date对象所表示时间的毫秒值

     Void setTime(long time): 设置Date对象所表示时间的毫秒值   

     Ctrl + N 获取一个类(Date)的底层代码。



      DateFormat 日期格式化类
          格式化日期 Date -à String   将日期对象, 转换为一个指定格栅灯 字符串

String format(Date date)

解析日期: String -àDate  将一个指定日期格式的字符串, 还原为一个Date对象。
  Dateparse(String source)


         // 20181110  23:59:59
         // yyyyMMdd HH:mm:ss

         // 计算自己活了多少天: 键盘录入一个生日(yyyy-MM-dd
       /*
1.      键盘录入一个指定格式的日期字符串
2.      先计算现在到时间原点的毫秒值差
3.      再计算生日到时间原点的毫秒值差
4.      用现在的 - 生日的 = 活了多少毫秒
5.      将毫秒换算为天
*/  


Calendar --- 抽象类
Java.util.Colendar类:日历类 , 提供了操作字段(年月日…)的方法
Calendar类是一个抽象类,无法直接创建对象,静态方法getInstance(),该方法返回了Calendar的子类对象。
Static Calendar getInstance() 使用默认时区和语言获得一个日历。

    创建对象
Calendar c = Calendar.getInstance();  默认获取当前系统时间

成员方法:
     Int get(intfield)   返回给定日历字段值
     Void set(intfield, int value) 将给定的日历字段设置为给定值
     Void add(intfield, int amount) 为给定的日历字段添加或减去指定的时间量
// 8加八年  -8 减去八年
     Date getTime()   返回日历对应时间的日期对象。


        Calendar.YEAR
        Int month = c.get(Calendar.MONTH); // 注意月份从0开始
        Calendar.DAY_OF_MONTH  // 也可以用DATA

        注:
1.      月份默认从0开始的, 如果想拿到正常的月份至, 要+1
2.      星期默认从星期天开始算第一天, 所以想拿到正常星期, 需要 -1


System类: 是一个和系统有关的类   ctrl+alt+M 提取选中内容为一个方法
    currentTimeMillis()   返回当前系统时间的毫秒值
   static void arraycopy(Object src, int srcPos, Object dest, int dest Pos,int length)
       参数:
           Src: 被复制的数组
           SrcPos: 从哪个索引开始复制
           Dest: 目的地数组
           destPos: 目标数组的起始位置
           length: 长度(复制元素的)

第四章   StringBuilder

String
     字符串是常量; 它们的值在创建之后不能更改
     字符串底层是一个被final修饰的数组, 不能改变, 是一个常量。
     Privatefinal byte[] value;

StringBuilder
     字符串缓冲区类 可以提高字符串的操作效率(看成以长度可变字符串)
     底层也是一个数组, 但没有被final修饰, 可改变长度
     Byte[]value = new byte[16];

    StringBuilder在内存中始终是一个数组,占用空间少, 效率高
     如果超出StringBuilder范围, 会自动扩容。

     “a”+”b”+”c”  直接用字符串拼接, 产生中间不需要的字符串对象, 影响程序效率。
    StringBuilder则可以减少中间字符串的产生。

     但是, java高版本JDK中, 已对字符串常量进行了优化,如果都是字符串常量参与运算, 则会直接整合为一个整的字符串常量, 不会产生中间字符串。

     总结: StringBuilder可以字符串运算变得高效

3.3StringBuilder构造方法
     StringBuilder()
     StringBuilder(String str)


StringBuilder成员方法
Public StringBuilder append(…): 添加任意类型数据的字符串形式, 并返回当前对象自身。
Append()方法返回的是this,调用方法的对象。
// 使用append方法无需接收返回值

// 链式编程: 方法返回值是一个对象, 可以继续调用方法。

    *)使用: append往缓冲区中添加数据。

   PublicStringBuilder toString()

包装类【参考pdf
字符串   int的相互转换:
如何将字符串转换为int: int num =Integer.parseInt(str);
如何将int转为字符串: String str = 123 + “”;

需求: “123456”    【掌握】
Integer:   static intparseInt(String str)


JDK1.5 包装类的新特性:
自动拆箱: 包装类型可以自动装换为对应的基本类型。
自动装箱:基本类型可以自动装换为对应的包装类型。


Ctrl+F12 可以查询一个类中的所有方法














欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2