当前位置:首页 > 2014年java复习1
|--Hashtable:底层是哈希表数据结构,是线程同步的。不可以存储null键,null值。 |--HashMap:底层是哈希表数据结构,是线程不同步的。可以存储null键,null值。替代了Hashtable.
|--TreeMap:底层是二叉树结构,可以对map集合中的键进行指定顺序的排序。
Map集合存储和Collection有着很大不同:
Collection一次存一个元素;Map一次存一对元素。 Collection是单列集合;Map是双列集合。
Map中的存储的一对元素:一个是键,一个是值,键与值之间有对应(映射)关系。 特点:要保证map集合中键的唯一性。
1,添加。
put(key,value):当存储的键相同时,新的值会替换老的值,并将老值返回。如果键没有重复,返回null。 void putAll(Map); 2,删除。
void clear():清空
value remove(key) :删除指定键。 3,判断。
boolean isEmpty():
boolean containsKey(key):是否包含key
boolean containsValue(value) :是否包含value 4,取出。
int size():返回长度
value get(key) :通过指定键获取对应的值。如果返回null,可以判断该键不存在。当然有特殊情况,就是在hashmap集合中,是可以存储null键null值的。 Collection values():获取map集合中的所有的值。 5,想要获取map中的所有元素: 原理:map中是没有迭代器的,collection具备迭代器,只要将map集合转成Set集合,可以使用迭代器了。之所以转成set,是因为map集合具备着键的唯一性,其实set集合就来自于map,set集合底层其实用的就是map的方法。
3.对于一个abstract的method,不能用下面哪个Java关键字同时修饰___D____ A.static B.native C.synchronized D.final
//final可以用于类名前,表示类不可被继承;final用于变量前,表示它是只能一次赋值的变量,如果初始化了那就是常量。
static可用于类内部的变量或方法前,表示这是整个类共享的变量和方法,与类对象无关。 abstract用于类名前表示一个抽象类,abstract用于成员方法前表示抽象方法,而抽象类内部至少要有一个抽象方法,这个跟final不能一起用,至于为什么,你一想就清楚了,抽象类本身必须有子类需要实现它的方法,但是final类又不能有子类,这不矛盾了么,所以不能一起用。
static final 用于修饰类的静态变量时表示一个常数,其实更多的还是用在接口里,毕竟用在类里面可能会被子类隐藏。
4.下面关于Java中Vector、ArrayList、LinkedList的表述正确的是____AC___ A.这三个类都实现了java.util.List接口,但只有Vector是线程安全的
B.ArrayList与Vector在从指定位置用index检索一个元素的时候,时间开销是O(1) C.LinkedList在插入、删除任意位置元素的时间开销都是O(1),但它在索引一个元素的时候比较慢,为O(i),其中i是索引的位置。
D.当向这几种类型中增加元素时,如果数目超出了其目前的长度,Vector缺省情况下自动增长原来一倍的长度,而ArrayList与LinkedList则增长50%的长度。//LinkedList是链表结构
//|--ArrayList:底层的数据结构是数组,线程不同步,ArrayList替代了Vector,查询元素的速度非常快。
|--LinkedList:底层的数据结构是链表,线程不同步,增删元素的速度非常快。 |--Vector:底层的数据结构就是数组,线程同步的,Vector无论查询和增删都巨慢。
5.在J2EE中,JSP可以使用下列哪些技术对客户端会话状态进行跟踪_____BD_____ A.建立匿名的表格字段 B.使用URL重写 C.使用持久化Cookies
D.使用session会话机制
三、 填空题(共5题,每题3分,共15分)
1.下面程序的运行结果为___XYAB______ public class Test{
public static void main(String[] args){ B obj = new B(); } } class A{
static {System.out.print(“X”);} public A(){System.out.print(“A”);} }
class B extends A{
static {System.out.print(“Y”);} public B(){System.out.print(“B”);} }
2.下面程序的运行结果为____XB_____ public class Test{
public static void main(String[] args) {
Sub obj = new Sub(); obj.print(); } }
class Base{
public String s = “X”; public void print() {
System.out.print(s); printAgain(); }
public void printAgain() {
System.out.print(“A”); } }
class Sub extends Base{ public String s = “Y”; public void printAgain()
共分享92篇相关文档