Java每日笔试题错题分析(7)
- 一、错题知识点前瞻
- 第1题
- 第2题
- 第3题
- 第4题
- 第5题
- 二、错题展示及其解析
- 第1题
- 第2题
- 第3题
- 第4题
- 第5题
一、错题知识点前瞻
第1题
非静态变量不能被静态方法引用
第2题
start()方法与run()方法
start()方法是启动一个线程,此时的线程处于就绪状态,但并不一定就会执行,还需要等待CPU的调度。
run()方法才是线程获得CPU时间,开始执行的点。
第3题
成员变量的引用在堆区
成员变量的引用在堆区,因为成员变量的所属对象在堆区,所以它也在堆区,局部变量的引用在栈区,因为它不属于某一个对象,在调用时才被加载,所以在栈区
第4题
LinkedList是实现List而不是继承
List是接口,需要类实现而不是继承
第5题
HashMap
1.HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。HashMap的底层结构是一个数组,数组中的每一项是一条链表
2. HashMap的实例有俩个参数影响其性能: “初始容量” 和 装填因子。
3. HashMap实现不同步,线程不安全。HashTable线程安全
4. HashMap中的key-value都是存储在Entry中的。
5. HashMap可以存null键和null值,不保证元素的顺序恒久不变,它的底层使用的是数组和链表,通过hashCode()方法和equals方法保证键的唯一性
6. 解决冲突主要有三种方法:定址法,拉链法,再散列法。HashMap是采用拉链法解决哈希冲突的。
二、错题展示及其解析
第1题
原理:
非静态变量不能被静态方法引用
解析:若需要调用x,则需要创建一个类的实例变量方可调用x
第2题
原理:
start()方法与run()方法
start()方法是启动一个线程,此时的线程处于就绪状态,但并不一定就会执行,还需要等待CPU的调度。
run()方法才是线程获得CPU时间,开始执行的点。
第3题
原理:
成员变量的引用在堆区
成员变量的引用在堆区,因为成员变量的所属对象在堆区,所以它也在堆区,局部变量的引用在栈区,因为它不属于某一个对象,在调用时才被加载,所以在栈区
第4题
原理:
LinkedList是实现List而不是继承
List是接口,需要类实现而不是继承
第5题
原理:
HashMap
1.HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。HashMap的底层结构是一个数组,数组中的每一项是一条链表
2. HashMap的实例有俩个参数影响其性能: “初始容量” 和 装填因子。
3. HashMap实现不同步,线程不安全。HashTable线程安全
4. HashMap中的key-value都是存储在Entry中的。
5. HashMap可以存null键和null值,不保证元素的顺序恒久不变,它的底层使用的是数组和链表,通过hashCode()方法和equals方法保证键的唯一性
6. 解决冲突主要有三种方法:定址法,拉链法,再散列法。HashMap是采用拉链法解决哈希冲突的。