第一题:

第二题:

此题考查的是final关键字的使用,final修饰类的时候,该类不可被继承,A是正确的
。
final修饰方法的时候,该方法不可被重写,而B中说的是重载,所以B是错误的。用final修
饰的属性是常量所以C正确。final和static可以同时去修饰类、变量和类的方法,顺序没有
要求,所以D正确,final变量只有在一种情况下可以先声明后初始化,就是在构造器中
否则必须声明的同时初始化
class QQ {final int a;public QQ(){a=0;}}
![]()
![]()
java.util 接口 Comparator<T>
-
类型参数:
-
T
- 此 Comparator 可以比较的对象类型 - 此接口只有两个方法
-
int
compare(T o1, T o2)
比较用来排序的两个参数。boolean
equals(Object obj)
指示某个其他对象是否“等于”此 Comparator。java.lang :所有的基础类型都在lang包里 接口 Comparable<T>
-
类型参数:
-
T
- 可以与此对象进行比较的那些对象的类型 - 此接口只有一个方法
-
int
compareTo(T o)
比较此对象与指定对象的顺序。 - 八大包装类和String都实现此接口
-
List特点:有序可重复
Map特点:无序不可重复 - |----HashMap:底层是哈希表-----键值对都可为空
-
|----TreeMap:底层是二叉树------有序不可重复,键不可为空,值可为空,而且键必须是同一类型Set特点:无序不可重复 |----HashSet:底层是哈希表--可添加null值
-
|-----TreeSet:底层是二叉树--
有序不可重复,键不可为空,值可为空,而且键必须是同一类型
-
会发现Set 和Map基本上如出一辙,是因为Set的add()方法本质上就是Map的put()方法
-
(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的)
List接口有三个实现类:LinkedList,ArrayList,Vector
LinkedList:底层基于链表实现,链表内存是散乱的,每一个元素存储本身内存地址的同时还存储下一个元素的地址。链表增删快,查找慢
ArrayList和Vector的区别:ArrayList是非线程安全的,效率高;Vector是基于线程安全的,效率低
Set接口有两个实现类:HashSet(底层由HashMap实现),LinkedHashSet
SortedSet接口有一个实现类:TreeSet(底层由平衡二叉树实现)
Query接口有一个实现类:LinkList
Map接口有三个实现类:HashMap,HashTable,LinkeHashMap
HashMap非线程安全,高效,支持null;HashTable线程安全,低效,不支持null
SortedMap有一个实现类:TreeMap
其实最主要的是,list是用来处理序列的,而set是用来处理集的。Map是知道的,存储的是键值对
set 一般无序不重复.map kv 结构 list 有序面向对象三个特性是封装、继承、多态,其中,实现封装需通过private,在开发中,往往将属性私有,这些使用private修饰的属性或方法,只能在本类访问,在其他类中不可直接调用,而且构造方法也可以封装
-