栈(stack)又称堆栈,是限制在表的一端进行插入和删除的线性表。其限制是仅允许在表的一端进行插入和删除操作,不允许在其他任何位置进行插入、查找、删除等操作。
-
堆中某个节点的值总是不大于或不小于其父节点的值;
-
堆总是一棵完全二叉树。
T1.下列Java代码中的变量a、b、c分别在内存的____存储区存放。
class A {
private String a = “aa”;
public boolean methodB() {
String b = “bb”;
final String c = “cc”;
}
}
A 、堆区、堆区、堆区
B 、堆区、栈区、堆区
C 、堆区、栈区、栈区
D 、堆区、堆区、栈区
E 、静态区、栈区、堆区
F 、静态区、栈区、栈区
答案:C
解释:
堆区:只存放类对象,线程共享;
方法区:又叫静态存储区,存放class文件和静态数据,线程共享;
栈区:存放方法局部变量,基本类型变量区、执行环境上下文、操作指令区,线程不共享;
T2 .(不定项选择题) 以下集合对象中哪几个是线程安全的()
A LinkedList
B ArrayList
C Vector
D Hashtable
正确答案是:CD
Collection 是对象集合, Collection 有两个子接口 List 和 Set。
List 可以通过下标 (1,2..) 来取得值,值可以重复,而 Set 只能通过游标来取值,并且值是不能重复的。
ArrayList , Vector , LinkedList 是 List 的实现类。
ArrayList 是线程不安全的, Vector 是线程安全的,这两个类底层都是由数组实现的。
LinkedList 是线程不安全的,底层是由链表实现的。
Map 是键值对集合。
HashTable 和 HashMap 是 Map 的实现类。
HashTable 是线程安全的,不能存储 null 值。
HashMap 不是线程安全的,可以存储 null 值。