Java面试宝典每日更新十二


56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。

public class ThreadTest {

public static void main(String[] args) throws Exception {

for (int i = 0; i < 50; i++) {

MainThread main = new MainThread();

main.start();

main.join();

}

}

}

class MainThread extends Thread {

@Override

public void run() {

SubThread sub = new SubThread();

sub.start();

try {

sub.join();

} catch (InterruptedException e) {

// LOG

}

for (int i = 0; i < 100; i++) {

System.out.println("main: " + i);

}

}

}

class SubThread extends Thread {

@Override

public void run() {

for (int i = 0; i < 10; i++) {

System.out.println("sub: " + i);

}

}

}

57、介绍Collection框架的结构

Iterable

    Collection

        List

            ArrayList

            LinkedList

            Vector

                Stack

        Set

            HashSet

            SortedSet

TreeSet

Map

SortedMap

TreeMap

    Hashtable

Properties

HashMap

    LinkedHashMap

Collections,不属于集合,是集合类的工具类

Arrays,不属于集合类,是数据对象的工具类

58、Collection框架中实现比较要实现什么接口

Comparable/Comparator

59、ArrayList和Vector的区别

1. 线程同步,Vector线程安全,ArrayList线程不安全

2. 效率问题,Vector效率低,ArrayList效率高

3. 增长数量,Vector以1.5倍增长,ArrayList以2倍增长

60、HashMap和Hashtable的区别

1. 线程同步,Hashtable线程安全,HashMap线程不安全

2. 效率问题,Hashtable效率低,HashMap效率高

3. HashMap可以使用null作为key,Hashtable不可以使用null为key

4. HashMap使用的是新实现,继承AbstractMap,而Hashtable是继承Dictionary类,实现比较老

5. Hash算法不同,HashMap的hash算法比Hashtable的hash算法效率高

6. HashMap把Hashtable的contains方法去掉了,改成containsValue和containsKey。因为contains方法容易让人引起误解。

7. 取值不同,HashMap用的是Iterator接口,而Hashtable中还有使用Enumeration接口

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容