Learning Record

一、JavaSE复习

(一)Map

1.HashTable

(1). key 和 value 都不能为空,抛出空指针异常
(2). 线程安全的
(3). 底层为 HashtabelEntry[] 数组,初始大小为 11, loadFactor 为 0.75 ,扩容为两倍 + 1

2. Properties

(1). 继承了 HashTable
(2). 用于从 xxx.properties 文件中,加载数据到 Properties 类对象,并进行读取和修改

3 .TreeSet(排序)

(1). 使用无参构造器创建的话,仍是无序的 ,此时以添加的对象实现的 Compareable 接口的 compareTo 去重
(2). 使用 TreeSet 提供的一个构造器,传入一个比较器(匿名内部类)
(3). 底层是 TreeMap
(4). 传入的匿名内部类比较结果为 0 时,无法加入treeSet
(5). 不能 add null

4.TreeMap(规则同 3 )

(1). key 不能为 null

(二)Collections工具类

  1. reverse(List) 反转
  2. shuffle(List) 打乱
  3. sort(List) 自然排序
  4. sort(List, Comparator) 自定义排序
  5. swap(List, int, int) 元素交换
  6. max(Collection) 自然排序最大值
  7. max(Collection, Comparator) 自定义返回最大值
  8. min(Collection) 自然排序最小值
  9. min(Collection, Comparator) 自定义返回最小值
  10. frequency(Collection, Object) Object出现次数
  11. copy(List dest, List src) 将 src 的内容复制到 dest 中
  12. replaceAll(List list, Oject oldVal, Object newVal) 新值替换旧值

(三)泛型(generic)

1. 介绍

(1). 又称参数化类型,解决数据类型的安全问题
(2). 表示数据类型的数据类型 E=> Integer…
(3). 在定义对象的时候制定,即在编译期间就确定
(4). 可以在类声明时通过一个标识表示类中的某个属性的类型,或者是某个方法的返回值的类型,或者是参数类型

2. 泛型的声明

(1). interface 接口{} 和 class 类<K,V>{}
(2). T,K,V 不表示值,而是代表类型,任意字母都可以,常用 T

3. 细节

(1). 泛型指向的数据类型要求是引用类型,不能为基本数据类型
(2). 给泛型指定了引用类型后,子类也可以传入
(3). List list = new ArrayList<(String)>() 后面尖括号里面可填可不填,推荐不填
(4). 不指定泛型,默认为Object

4. 自定义泛型类

(1). 基本语法 class 类名<T,R,…>{}
(2). 普通成员可以使用泛型(属性、方法)
(3). 使用泛型的数组,不能初始化(无法确定开辟多少空间)
(4). 静态方法中不能使用类的泛型
(5). 泛型类的类型,是在创建对象时确定的
(6). 创建对象时没有指定泛型类型,默认为 Object

5. 自定义泛型接口

(1). 基本语法 interface 接口名<T,R,…>{}
(2). 泛型接口的类型,在继承接口或实验接口时确定
(3). 默认 Object

6. 自定义泛型方法

(1). 修饰符 <T,R,…> 返回类型 方法名(){}
(2). 泛型方法,可以定义在普通类中,也可以定义在泛型类中
(3). 当泛型方法被调用时,类型会确定

7. 泛型的继承和通配符

(1). 泛型不具备继承性
(2). <?> 支持任意泛型类型
(3). <? extends A> 支持 A类以及 A类的子类,规定了泛型的上限
(4). <? super A> 支持 A类以及 A类的父类,不限于直接父类,规定了泛型的下限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值