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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 大桃之 于 2018-7-26 15:00 编辑

标题:微软雅黑  5号 加粗 标红    内容: 微软雅黑 3号
常用API
Object类   常用API
Object类 是所有类的父类, 也叫根类.
任何一个类都直接或间接继承Object类,并且可以使用Objec类中定义的方法,
一个类如果没有指定继承其某个父类,字默认继承Object类.


Object类的toString方法
任何类的对象都可以调用toString(),得到一个对象的字符串表示形式,默认使用Object类中定义的方式.
如果不想使用默认方式,子类可以重写toString()方法,转换为自己想要的内容
如果要输出JavaBean 的属性和属性名 快捷键Alt+Insert 选择 toString()即可重写.
Object类的equals方法
Object类的中的equals方法的作用为重写其他两个对象是否相等.
不重写时,自定义的对象默认继承Object类的equals()方法,通过==比较地址值
但是在开发时,一般要重写equals()方法,让对象根据属性值来判断是否相等
快捷键Alt+Insert 选择 equals( ) andhashCode() 即可重写.


日期时间相关的类
Date类及其方法介绍
Date类表示日期类,表示特定的瞬间,精确到 毫秒
Date类的构造方法:
Date() 创建Date 对象,默认使用当前系统时间,
Date(long date) 创建Date 对象,使用指定的毫秒值最为时间
常用成员方法:
Long gettime()  获取Date对象中保存的时间毫秒值
Void settime(long time)  修改Date对象的时间
UNIX时间戳 : 从0时区1970-01-01 00:00:00 开始,至今经过的毫秒值
我国时间为东八区  默认时间加八小时
Dateformat类及其构造方法
Dateformat抽象类的作用为格式化和解析时间
格式化 : 从Date对象转换成string对象
解析 : 从string对象装换成Date对象
SimpleDateFormat(String pattern): 用给定的模式和默认语言环境的日期格式符号创建对象
常用模式: 可在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
DateFormat类之格式化format方法
String format(Date date): 格式化, 从Date对象转换为String对象
例如, SimpleDateFormat对象的模式是: "yyyy年MM月dd日 HH:mm:ss"
Date格式化后就可以是这种样子: 2018年01月02日 03:04:05

DateFormat之解析parse方法
Date parse(String source): 解析, 从String对象转换为Date对象
例如, SimpleDateFormat对象的模式是: "yyyy-MM-dd"
要解析为Date对象的字符串必须符合模式: 2000-01-02


Calendar对象的获取方式
Calendar对象为日历类 提供了不同国家的历法,封装了很多的时间属性
静态方法
static Calendar getInstance(): 根据当前系统设置获取合适的Calendar对象, 表示当前系统时间
获取日历对象的示例
Calendar c = Calendar.getInstance(); // 代表了当前时间
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 :秒
// 非静态成员方法
int get(int field): 获取指定日历字段的值 int year = cal.get(Calendar.YEAR)
void set(int field, int value): 修改指定日历字段为指定的值
void add(int field, int amount): 调整指定日历字段的值. 正数增加, 负数减少
Date getTime(): Calendar转Date
void setTime(Date d): Date转Calendar


System类
获取当前时间的毫秒值:
static long currentTimeMillis(): 返回当前系统时间的毫秒值

System类之数组复制方法
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是不可变的, 使用加号进行字符串拼接, 会创建很多额外的对象, 浪费内存空间
实际上+加号在最终执行时, 会被翻译为:
new StringBuilder("原字符串").append("要拼接的字符串").toString();
额外创建了多余的StringBuilder对象

StringBuilder概述与构造
构造方法
StringBuilder(): 构造一个空的StringBuilder容器
StringBuilder(String str): String转StringBuilder
常用方法
StringBuilder append(任意类型): 添加任意类型数据的字符串形式, 并返回当前对象
String toString(): 将当前StringBuilder对象转换为String对象
包装类  
包装类的概述
包装类: 基本数据类型对应的引用数据类型
ArrayList<Integer> list = ...
list.add(10)
int a = list.get(0);
基本类型 对应的包装类(位于java.lang包中)
byte        Byte
short         Short
int         Integer
long         Long
float         Float
double         Double
char         Character
boolean         Boolean

自动装箱与自动拆箱
装箱 : 从基本类型转换为对应的包装类对象
拆箱 : 从包装类对象转换为队形的基本类型
// 自动装箱原理
Integer i2 = Integer.valueOf(4); //使用包装类中的valueOf方法
// 自动拆箱原理
int num = i.intValue();
包装类常用方法 : 基本类型与字符串之间转换
基本类型转为String: 拼接空字符串
"" + 34
true + ""
String转基本类型: 利用包装类的静态方法
static byte parseFloat(String s): 将字符串参数转换为对应的float基本类型
其余的都是基本类型第一个字母大写.


Collection 泛型
集合
集合: 长度可变容器, 可以存储多个对象
集合和数组的区别:
1. 数组长度不可变; 集合长度可变
2. 数组可以存基本类型或引用类型, 只能存同一种类型; 集合只能存储引用类型元素, 可以是多种类型元素


集合框架介绍
Collection接口: 单列集合顶层
|_ List接口: 元素存取有序, 可重复, 有索引
|_ Set接口: 元素存取无序, 不可重复, 无索引


Collection常用功能
// 多态创建对象: 父类引用指向子类对象
ArrayList list = new ArrayList();
list.特有方法();
Collection<String> coll = new ArrayList<>();
// 多态调用方法
coll.方法()


迭代器
迭代器Iterator接口介绍和迭代步骤
迭代: 类似于遍历, 判断是否有下一个元素, 有则取出下一个, 直到没有
迭代器: 用于遍历集合的对象
使用迭代器遍历集合的3步:
1. 使用集合对象的 iterator() 获取迭代器对象, 用 Iterator 接口接收.(多态)
2. 使用 Iterator 接口中的 hasNext() 方法, 判断是否有下一个元素
3. 使用 Iterator 接口中的 next() 方法, 获取下一个元素

迭代器的实现原理
集合和迭代器对象的关系:
每个集合都有对应的一个迭代器对象
迭代器的原理:
迭代器有一个指针(其实就是个变量保存索引值), 最初指向集合的 -1 索引
hasNext() 方法可以判断下一个索引是否有元素
next() 方法移动指针到下一个索引, 并返回元素


增强for循环
增强for: 也称foreach循环, JDK 5出现, 用于遍历集合, 底层采用迭代器
作用:
遍历数组
遍历集合
增强for格式:
for(元素的数据类型 变量名 : Collection集合或数组名){
//操作代码
}

增强for对于数组和集合的操作:
对数组只是写法上的优化, 底层还是普通for循环
对集合是通过迭代器实现的

泛型
泛型的概述以及不使用泛型产生的问题
泛型: Generic. JDK 5 增加. 是一种未知的数据类型
定义集合时, 某些方法不知道使用什么类型时, 就可以使用泛型
创建集合对象时, 需要确定泛型具体的类型
泛型可以看作是一个变量, 用来接收数据类型

泛型的好处
不使用泛型的问题:
集合实际存储的是 Object 类型, 存入的元素无论是什么类型, 都会被提升为 Object, 取出来的也是 Object,
要想调用元素特有方法, 就要向下转型, 有可能发生类型转换异常 ClassCastException
泛型的好处:
1. 避免了类型转换的麻烦
2. 将运行时的类型转换异常, 转移到了编译时期 (有利于程序员提前发现问题)

泛型通配符
泛型通配符:
不知道使用什么类型来接收时, 此时可以使用 <?> 来表示未知通配符
示例: List<?> list 接收泛型是任意类型的List对象

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

E99V{[6CP{[HUTE%}DXVKWC.png (31.81 KB, 下载次数: 5)

Collection单列集合的顶层接口

Collection单列集合的顶层接口

J3RVCK}D@221{@)QE(XLVKP.png (56.53 KB, 下载次数: 5)

Collection接口

Collection接口

S[R[29]3QOPS2VSWAH6H%]8.png (26.67 KB, 下载次数: 2)

S[R[29]3QOPS2VSWAH6H%]8.png

0 个回复

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