A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 18032086639 于 2018-11-14 17:01 编辑

第一天
Object类
    是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object
如果一个类没有特别指定父类, 那么默认则继承自Object类.
    public String toString() :返回该对象的字符串表示
任何类的对象都可调用 toString(), 得到一个对象的字符串表示形式, 默认使用Object类中定义的方式
    由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。
注: Alt + Insert 选择 toString() 即可重写
    public boolean equals(Object obj:指示其他某个对象是否与此对象“相等”。
重写equals()的作用:
   不重写时, 自定义对象默认继承Object类的equals()方法, 通过 == 比较地址值,但开发时, 一般要重写equals()方法, 让对象"根据属性值"来判断是否相等.
注: Alt+Insert, 选 equals() and hashCode();
Date时间相关的类
Public Date():              Date date=new Date
    分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)
public Date(long date):  Date date=  Date(0L);
    分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数.
public long getTime():           date.getTime();
    把日期对象转换成对应的时间毫秒值。
void setTime(long time):             date..setTime(long time)
修改Date对象的时间
DateFormat类和SimpleDateFormat类
    DateFormay类是日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。
SimpleDateFormat类用给定的模式和默认语言环境的日期格式符号创建对象
SimpleDateFormat format = new SimpleDateFormat("yyyy‐MM‐dd HH:mm:ss");
    String format(Date date): 格式化:按照指定的 格式,从Date对象转换为String对象。
Date parse(String source)
解析:按照指定的格式,从String对象转换为Date对象。
format方法,parse方法

    String format(Date date): 格式化, 从Date对象转换为String对象

SimpleDateFormat对象的模式是: "yyyy年MM月dd日  HH:mm:ss"

    将Date格式化后就可以是这种样子: 2018年01月02日  03:04:05

Date parse(String source): 解析, 从String对象转换为Date对象

    SimpleDateFormat对象的模式是: "yyyy-MM-dd"

要解析为Date对象的字符串必须符合模式: 2000-01-02

Calendar类
    是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。日历类就是方便获取各个时间属性的。
Calendar c = Calendar.getInstance();  //代表当前时间
java.util.Calendar抽象类: 代表日历, 提供了不同国家的历法, 封装了很多时间属性
       // 静态成员变量
       static int YEAR         :年份
       static int MONTH        :月份. 注意月份数值是 0-11
       static int DAY_OF_MONTH :日期
       static int HOUR         :小时(12小时制)
       static int HOUR_OF_DAY  :小时(24小时制)
       static int MINITE       :分钟
       static int SECOND       :秒
       // 非静态成员方法  2018 09 11
       int get(int field): 获取指定日历字段的值   int date = cal.get(Calendar.DAY_OF_MONTH)
       void set(int field, int value): 修改指定日历字段为指定的值
       void set(int year, int month, int date): 快速设置年月日
       void add(int field, int amount): 调整指定日历字段的值. 正数增加, 负数减少
       Date getTime(): Calendar转Date
       void setTime(Date d): Date转Calendar


// 示例
// 获取日期:
int day = calendar.get(Calendar.DAY_OF_MONTH);
// 修改年:
calendar.set(Calendar.YEAR, 2000);
// 修改月:
calendar.set(Calendar.MONTH, 0);
// 日期增加一天:
calendar.add(Calendar.DAY_OF_MONTHY, 1);
// 日期减少一天:
calendar.add(Calendar.DAY_OF_MONTHY, -1);

    long (数学计算)
        \       SimpleDateFormat
         Date -------------------- String (用户输入和显示)
        /
Calendar (获取时间的某个部分, 调整时间)


long和Date对象互转
       利用Date
              Date(long millis): long转Date
              long getTime(): Date转long
String和Date对象互转
       利用SimpleDateFormat
              Date parse(String s): String转Date
              String format(Date): Date转String
Calendar对象和Date对象互转
       利用Calendar
              Date getTime(): Calendar转Date
              void setTime(Date d): Date转Calendar
System类
currentTimeMillis()和arrayCopy()方法
java.lang.System类: 系统相关功能
       // 静态方法
       static long currentTimeMillis(): 返回当前系统时间的毫秒值
       static void arrayCopy(Object src, int srcPos, Object dest, int destPos, int length): 复制源数组中指定长度个元素到一个新数组中
        * Object src: 源数组 (被复制的数组)
        * int srcPos: 源数组索引 (从源数组的哪个索引开始复制)
        * Object dest: 目标数组 (要复制到哪个数组)
       * int destPos: 目标数组索引 (指定目标数组接收元素的索引位置)
       * int length: 长度 (要复制的元素个数)
StringBuilder称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。
public StringBuilder():构造一个空的StringBuilder容器。
public StringBuilder(String str):构造一个StringBuilder容器,并将字符串添加进去。
常用方法: StringBulider append()添加任意类型数据的字符串形式,并返回当前对象自身。
public String toString():将当前StringBuilder对象转换为String对象。
包装类   基本类型与对应的包装类对象之间,来回转换的过程称为装箱拆箱“;
装箱:从基本类型转换为对应的包装类对象。
拆箱:从包装类对象转换为对应的基本类型。
基本类型转换为String,基本类型直接与””相连接即可;如:34+""
除了Character类之外,其他所有包装类都具有parseXxx静态方法可以将字符串参数转换为对应的基本类型
第二天
Collection集合集合
    集合是java中提供的一种容器,可以用来存储多个数据。
数组的长度是固定的。集合的长度是可变的。
    数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。
    Collection是所有单列集合的父接口,因此在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列集合。方法如下:
publicboolean add(E e): 把给定的对象添加到当前集合中 。
publicvoid clear() :清空集合中所有的元素。
publicboolean remove(E e): 把给定的对象在当前集合中删除。
publicboolean contains(E e): 判断当前集合中是否包含给定的对象。
publicboolean isEmpty(): 判断当前集合是否为空。
public int size(): 返回集合中元素的个数。
public Object[] toArray(): 把集合中的元素,存储到数组中。
Iterator迭代器:
    Iterator接口想要遍历Collection集合,那么就要获取该集合迭代器完成迭代操作,下面介绍一下获取迭代器的方法:
public Iteratoriterator():获取集合对应的迭代器,用来遍历集合中的元素
Iterator接口的常用方法如下:
public E next():返回迭代的下一个元素。
publicboolean hasNext():如果仍有元素可以迭代,则返回 true
增强for它用于遍历Collection和数组。通常只进行遍历元素,不要在遍历的过程中对集合元素进行增删操作。
For(数据类型 变量 :数组或集合)
泛型的"定义"和"使用"
泛型在"定义"时, "不能是"具体的类型, 只是一个变量名:
public class ArrayList<E> {}
泛型在"使用"时, "必须是"具体的数据类型 ArrayList<Integer>.
修饰符 class 类名<代表泛型的名字> {...}
定义与使用含有泛型的接口
public class A implementsGenericInterface<String>
public class A<I> implementsGenericInterface<I>
泛型定义总结:
     定义在类上的泛型:
         有效范围: 整个类中都有效
         何时确定具体类型: 创建该类对象时确定泛型的具体类型
     定义在方法上的泛型:
         有效范围: 方法中(包括返回值类型和参数类型)有效
         何时确定具体类型: 调用方法传参时确定泛型的具体类型
     定义在接口上的泛型:
         有效范围: 接口中
         何时确定具体类型:
              1. 子接口或实现类定义时确定泛型的具体类型
              2. 创建实现类对象时确定泛型的具体类型
泛型的通配符
不知道使用什么类型来接收的时候,此时可以使用?,?表示未知通配符。
public static void getElement(Collection<?> coll){}
之前设置泛型的时候,实际上是可以任意设置的,只要是类就可以设置。但是在JAVA的泛型中可以指定一个泛型的上限和下限。
泛型的上限:
泛型的上限:
格式: 类型名称<? extends 类名> 对象名称
示例: List<? extends Number> list
作用: 只能接收泛型为该类型及其子类的对象(Number及其子类的泛型)

泛型的下限:
格式: 类型名称<? super 类名> 对象名称
示例: List<? super Number> list
作用: 只能接收泛型为该类型及其父类型的对象(Number及其父类的泛型)







0 个回复

您需要登录后才可以回帖 登录 | 加入黑马