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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yangxiaoqiang 初级黑马   /  2018-11-14 16:33  /  725 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 yangxiaoqiang 于 2018-11-14 16:50 编辑

一: 常用API
1:object类:
object是所有类的父类;    特点:  所有类的对象都可以使用object类中定义的方法;
①toString方法:  返回对象的字符串;    快捷键:  Alt + Insert, 选择 toString() , 全选
看一个类是否重写了toString方法,直接打印类的对象,如果没有返回的是对象的地址值

equals方法:  比较两个对象是否相等;  快捷键:   Alt + Insert, 选择 equals() and hashCode(), 全选

String类中的equals方法与Object类中的equals方法的不同点
String类比较的是两个对象的内容是否相同,     Object类是比较两个对象是否在同一个存储空间.

2:Date类:
Data类是表现日期和时间的类;  表示特定的瞬间,精确到毫秒
时间原点: 1970年1月1日00:00:00;    注意:中国是东八区,时间原点要增加八小时
换算:   1秒 等与 1000毫秒
// 换算示例(以0时区为例)
1970-01-01 00:00:00.000 = 0 毫秒
1970-01-01 00:00:00.500 = 500 毫秒
1970-01-01 00:00:01.000 = 1000 毫秒
1970-01-01 00:01:01.000 = (1000 * 60) + 1000 毫秒
1970-01-01 01:01:01.000 = (1000 * 60 * 60) + (1000 * 60) + 1000 毫秒

getTime(): 获取Date对象中保存的时间毫秒值
setTime(long time): 修改Date对象的时间

3:DateFormat类
DateFormat 是日期/时间格式化子类的抽象类,要使用它的子类SimpleDateFormat

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

SimpleDateFormat: 创建一个格式的对象
常用的时间:
y: 年   M: 月   d: 日   H: 时 (24小时制)   m: 分   s: 秒  E: 星期
D: 年中的天    K: 小时(12小时制)   S: 毫秒

示例: "yyyy-MM-dd E HH:mm:ss.SSS"
        结果: 2016-04-01 星期五 17:29:15.868

4 :Clendaar类
Clendaar类是一个抽象类,代表日历,  不能直接new,
Calendar c = Calendar.getInstance();
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        :秒

5:System类
currentTimeMillis() : 返回当前系统时间的毫秒值
②arrayCopy() :  复制源数组中指定长度元素到一个新数组中
        * Object src: 源数组 (被复制的数组)
        * int srcPos: 源数组索引 (从源数组的哪个索引开始复制)
        * Object dest: 目标数组 (要复制到哪个数组)
        * int destPos: 目标数组索引 (指定目标数组接收元素的索引位置)
        * int length: 长度 (要复制的元素个数)

6:StringBuilder类
作用: 可以提高字符串的操作效率,节省占用空间
StringBuilder(): 构造一个空的StringBuilder容器
StringBuilder(String str): String转StringBuilder
StringBuilder append(任意类型): 添加任意类型数据的字符串形式, 并返回当前对象

   


二: Collection 泛型笔记

1:Collection 接口 : 单列集合的顶层
   List接口: 元素存取有序, 可重复, 有索引
   Set接口: 不可重复, 无索引




常用功能:   Collection<String> coll = new ArrayList<>();
      
        boolean add(E e): 把给定的对象添加到当前集合中
        void clear(): 清空集合中所有的元素
        boolean remove(E e): 把给定的对象在当前集合中删除
        boolean contains(E e): 判断当前集合中是否包含给定的对象
        boolean isEmpty(): 判断当前集合是否为空(没有元素)
        int size(): 返回集合中元素的个数
        Object[] toArray(): 把集合中的元素,存储到数组中

2: 迭代器Iterator接口
迭代:
        类似于遍历, 判断是否有下一个元素, 有则取出下一个, 直到没有

使用迭代器遍历集合的标准写法:
Iterator<元素类型> iterator = 集合对象.iterator();
while (iterator.hasNext()) {
    元素类型 变量名 = iterator.next();
}

注意事项:
        迭代器对象迭代完毕后, 指针已经指向最后一个元素, 没有下一个元素了. 如果想再次从头遍历集合, 要获取新的迭代器对象

迭代过程中不能修改集合长度,否则会发生并发修改异常;

3: 增强for循环

增强for格式:

    for(元素的数据类型 变量名 : Collection集合或数组名){  //  操作代码  }

增强for, 普通for, 迭代器的区别:
        增强for:
                优点: 获取元素很方便, 格式简单
                缺点: 没有普通for中的索引, 没有迭代器对象可以进行元素的增删
                应用场景: 适用于遍历获取数组和集合元素的场景
        普通for:
                优点: 有索引可以使用, 某些方式可以在遍历过程中增删元素
                缺点: 格式繁琐
                应用场景: 需要用到索引的场景
        迭代器:
                优点: 可以使用迭代器对象的方法操作元素
                缺点: 格式繁琐
                应用场景: 需要在迭代过程中增删元素的场景

4 : 泛型
泛型:  是一种未知的数据类型
        定义集合时, 某些方法不知道使用什么类型时, 就可以使用泛型
        创建集合对象时, 需要确定泛型具体的类型

泛型的好处:
        1. 避免了类型转换的麻烦
        2. 将运行时的类型转换异常, 转移到了编译时期 (有利于程序员提前发现问题)

泛型的"定义"和"使用"
        泛型在"定义"时, "不能是"具体的类型, 只是一个变量名: public class ArrayList<E> {}
        泛型在"使用"时, "必须是"具体的数据类型 ArrayList<Integer>

带有泛型的类定义格式
    修饰符 class 类名<代表泛型的名字> {  // 泛型的变量一般用一个大写字母表示, 但也可以是多个字母  }

方法中的泛型定义位置:
        修饰符 和 返回值类型 之间
        
        // 带有泛型的方法定义格式
    修饰符 <代表泛型的名字> 返回值类型 方法名(参数){

    }

方法泛型的使用:
        "在调用方法时"确定泛型的具体类型

5: 通配符
        不知道使用什么类型来接收时, 此时可以使用 <?> 来表示未知通配符

注意: 只能接收数据, 不能调用方法存储元素
                List<?> list 这种集合不能调用 add() 添加元素, 只能调用 get() 获取元素
                List<?> list 其实是一个变量, 所以可以将一个集合赋值给它

使用方式:
                不能创建对象使用
                只能作为方法参数使用. (减少方法重载)

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

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



        
java.util.Collections工具类
        // 静态方法
        static void shuffle(List<?> list): 随机打乱集合中元素的顺序


0 个回复

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