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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© chongyang 初级黑马   /  2018-7-26 16:17  /  453 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 chongyang 于 2018-7-26 16:20 编辑

标题: 微软雅黑,5号,加粗,标红.
内容: 微软雅黑,3号
Object类常用API  
Object
java.lang.Object(在lang包下,不需要导包)
Object类是所有类的根类(通俗讲: 祖类,最高类)
特点:是所有类的父类,任何一个类都直接间接继承Object类,默认是继承Object类的。
成员方法
StringtoString(): 返回对象的字符串表示
任何类的对象都可调用toString(), 得到一个对象的字符串表示形式, 默认使用Object类中定义的方式。如果不想使用默认方式, 可以重写toString()方法
重写toString()方法又快捷键 Alt + Insert,选择toString()重写。
boolean equals(Objectobj): 指示其他某个对象是否与此对象“相等”
       equals()默认是通过“==”比较地址值,重写方法后,让对象属性值来判断是否相等
       重写快捷键 Alt + Insert,选择equlas() and hasCode()
       hasCode(),此方法现在不学,只做了解,后期会学。
日期时间相关的类
Date类及其相关方法
java.util.Date类  表示日期,精确到毫秒
注意: 不要导错包有两个Date类,要导入的是util
构造方法
       Date(): 创建Date对象,表示当前系统时间
       Date(long date): 创建Date对象,使用指定的毫秒值作为时间
成员方法
       long getTime(): 获取Date对象中保存的时间毫秒值   
voidsetTime(long time): 修改Date对象的时间
DateFormat类及其构造方法
java.text.DateFormat抽象类: 用于格式化和解析时间. 提供了方便的方法
成员方法
       String format(Date date): 格式化, 从Date对象转换为String对象
Dateparse(String source): 解析, 从String对象转换为Date对象
java.text.SimpleDateFormat
构造方法
SimpleDateFormat(“yyyy-MM-ddE HH:mm:ss.SSS”): 用给定的模式和默认语言环境的日期格式符号创建对象
年   月 日 星期  时  分 秒 毫秒
DateFormat
格式化format方法
       Stringformat(Date date): 格式化, 从Date对象转换为String对象
解析parse方法
       Date parse(String source): 解析, 从String对象转换为Date对象
Calendar对象的获取方式(抽象类)
java.util.Calendar抽象类:代表日历, 提供了不同国家的历法, 封装了很多时间属性
静态方法
       static Calendar getInstance(): 根据当前系统设置获取合适的Calendar对象, 表示当前系统时间
常用功能
       静态成员变量
       static int YEAR                       年份   
staticint MONTH                   月份. 注意月份数值是 0-11   
staticint DAY_OF_MONTH     日期   
staticint HOUR                      小时(12小时制)   
staticint HOUR_OF_DAY        小时(24小时制)   
staticint MINITE                    分钟   
staticint SECOND                  秒   
非静态成员方法   

intget(int field):                                
intyear = cal.get(Calendar.YEAR)           获取指定日历字段的值  
voidset(int field, int value):                    修改指定日历字段为指定的值   
voidadd(int field, int amount):              调整指定日历字段的值. 正数增加, 负数减少   
DategetTime():                                     Calendar转Date  
voidsetTime(Date d):                            Date转Calendar
System

java.lang.System类:系统相关功能
获取毫秒值
静态方法
       static long currentTimeMillis(): 返回当前系统时间的毫秒值
数组复制方法
静态方法
       static void arrayCopy(Object src, intsrcPos, Object dest, int destPos, int length): 复制源数组中指定长度个元素到一个新数组中
       源数组     源数组索引  目标数组   目标数组索引   长度
StringBuilder
思考:“+”拼接字符串有什么缺点
       在拼接字符串时,会创建很多新的对象,浪费内存空间
java.lang.StringBuilder类: 可变字符序列, 可以高效拼接字符串. 底层使用数组保存
构造方法
       StringBuilder(): 构造一个空的StringBuilder容器   
StringBuilder(Stringstr): String转StringBuilder
常用方法
       StringBuilderappend(任意类型): 添加任意类型数据的字符串形式, 并返回当前对象
StringtoString(): 将当前StringBuilder对象转换为String对象
包装类
       基本数据类型对应的引用数据类型
基本                            引用
byte                           Byte
short                          Short
int                              Integer
long                           Long
oat                           Float
double                       Double
char                           Character
boolean                     Boolean
自动装箱
自动拆箱
自动装箱: 从基本类型转换为对应的包装类对象
自动拆箱: 从包装类对象转换为对应的基本类型
基本类型字符串之间转换
staticbyte parseByte(String s): 将字符串参数转换为对应的byte基本类型   
staticshort parseShort(String s): 将字符串参数转换为对应的short基本类型 Short   
staticint parseInt(String s): 将字符串参数转换为对应的int基本类型 Integer   
staticlong parseLong(String s): 将字符串参数转换为对应的long基本类型   
staticfloat parseFloat(String s): 将字符串参数转换为对应的float基本类型   
staticdouble parseDouble(String s): 将字符串参数转换为对应的double基本类型   
staticboolean parseBoolean(String s): 将字符串参数转换为对应的boolean基本类型
Collection集合
集合和数组的区别:   
1. 数组长度不可变; 集合长度可变   
2. 数组可以存基本类型或引用类型, 只能存同一种类型; 集合只能存储引用类型元素, 可以是多种类型元素
Collection接口:单列集合顶层
                                                        /                            \
          List接口                      Set接口
           /                                       \
                     元素存取有序, 可重复, 有索引               元素存取无序, 不可重复, 无索引
Collection接口是顶层的方法,所有的子类都可以使用,使用时使用底层子类实现类创建对象
Collection常用功能
java.util.Collection接口:
成员方法
       boolean add(E e): 把给定的对象添加到当前集合中
voidclear(): 清空集合中所有的元素
booleanremove(E e): 把给定的对象在当前集合中删除
booleancontains(E e): 判断当前集合中是否包含给定的对象
booleanisEmpty(): 判断当前集合是否为空(没有元素)
intsize(): 返回集合中元素的个数
Object[]toArray(): 把集合中的元素,存储到数组中
Iterator<E>iterator(): 获取集合的迭代器对象 (后面讲到)
Iterator接口: 迭代器
迭代器
迭代:类似于遍历, 判断是否有下一个元素, 有则取出下一个, 直到没有
迭代器: 用于遍历集合的对象
java.util.Collection<E>接口:
成员方法
       Iterator<E> iterator(): 获取集合的迭代器对象
java.util.Iterator<E>接口: 迭代器
成员方法   
booleanhasNext(): 判断是否有下一个元素   
Enext(): 获取下一个元素        
voidremove(): 删除next指向的元素
使用迭代器遍历集合的3步:   
1. 使用集合对象的 iterator() 获取迭代器对象, 用 Iterator 接口接收.(多态)   
2. 使用 Iterator 接口中的 hasNext() 方法, 判断是否有下一个元素   
3. 使用 Iterator 接口中的 next() 方法, 获取下一个元素
每个集合都有对应的一个迭代器对象
迭代器实现原理
       迭代器有一个指针(可以理解为索引),最初指向集合的-1索引
       hasNext()方法判断是否有下一个元素
       next()方法移动指针到下一个元素,并返回元素
增强for循环(foreach)
用于遍历集合,实际就是迭代器!
格式:
for(元素的数据类型 变量名 : Collection集合或数组名){
       //代码
}
增强for对于数组和集合的操作:
对数组只是写法上的优化, 底层还是普通for循环
对集合是通过迭代器实现的
增强for, 普通for, 迭代器的区别:
增强for:
优点: 获取元素很方便, 格式简单
缺点: 没有普通for中的索引, 没有迭代器对象可以进行元素的增删
应用场景: 适用于遍历获取数组和集合元素的场景
普通for:
优点: 有索引可以使用, 某些方式可以在遍历过程中增删元素
缺点: 格式繁琐
应用场景: 需要用到索引的场景
迭代器:
优点: 可以使用迭代器对象的方法操作元素
缺点: 格式繁琐
应用场景: 需要在迭代过程中增删元素的场景
泛型
是一种未知的数据类型
定义集合时, 某些方法不知道使用什么类型时, 就可以使用泛型
创建集合对象时, 需要确定泛型具体的类型
泛型可以看作是一个变量, 用来接收数据类型
使用泛型的优点:
避免了类型转换的麻烦
将运行时的类型转换异常, 转移到了编译时期 (有利于程序员提前发现问题)
定义和使用含泛型的类
       泛型在定义时, 不能是具体的类型, 只是一个变量名
泛型在使用时, 必须是具体的数据类型
格式:
修饰符 class 类名<代表泛型的名字>{}
在类中创建泛型对象时,确定泛型的具体类型
定义含有泛型的方法与使用
方法中的泛型定义位置:
修饰符 和 返回值类型 之间
带有泛型的方法定义格式
修饰符 <代表泛型的名字> 返回值类型 方法名(参数){}
方法中定义泛型后, 返回值类型和参数类型都可以使用泛型
定义与使用含有泛型的接口
带有泛型的类定义格式
修饰符 interface接口名<代表泛型的变量> {}
实现类实现了泛型接口后可以有2种选择:
1. 定义实现类时就确定泛型的具体类型
2. 定义实现类时仍然沿用泛型, 直到创建该类对象时才确定泛型的具体类型
泛型定义总结:
定义在类上的泛型:
有效范围: 整个类中都有效
何时确定具体类型: 创建该类对象时确定泛型的具体类型
定义在方法上的泛型:
有效范围: 方法中(包括返回值类型和参数类型)有效
何时确定具体类型: 调用方法传参时确定泛型的具体类型
定义在接口上的泛型:
有效范围: 接口中
何时确定具体类型:
       子接口或实现类定义时确定泛型的具体类型
      创建实现类对象时确定泛型的具体类型
泛型通配符
       不知道使用什么类型来接受时,可以使用<?>来表示未知通配符
注意:只能用来接收数据,不能调用方法储存元素
              不能创建对象使用
              只能作为方法参数使用(减少方法重载)
泛型的上限:   
格式: 类型名称<? extends 类名> 对象名称
       作用: 只能接收该类型及其子类
泛型的下限:     
格式: 类型名称<? super 类名>对象名称
       作用: 只能接收该类型及其父类型

0 个回复

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