自制力不行,需改正,为什么昨天断了,以后这样的事情是否还会发生
=========================================================================
1、下列的哪个选项可以正确用以表示八进制值8? ( 010 )
个人见解:
我特喵的竟然这道题错了,我竟然选择了08,8进制会有8会有8会有8????
=========================================================================
2、下面有关java HashMap的说法错误的是 ()
A HashMap的实例有两个参数影响其性能:“初始容量” 和 “加载因子”。 B HashMap的实现不是同步的,意味着它不是线程安全的 C HashMap通过开放地址法解决哈希冲突 D HashMap中的key-value都是存储在Entry数组中的
查阅资料:
a) HashMap的数据结构是"链表散列",链表散列是数组和链表的结合体。HashMap的底层结构是一个数组,数组中的每一项是一条链表。
b) HashMap的实例有两个参数在影响其性能:"初始容量"和"装填因子"。
c) HashMap不同步, 线程不安全。HashTable线程安全。
d) HashMap的key-value都存储在Entry中。
e) HashMap可以存放null键值, 但是不保证元素顺序不发生变化, 通过hashCode和equals来保证键的唯一性,HashTable不可以存放null键值。
f) HashMap解决Hash冲突使用拉链法。
g) HashMap继承AbstractMap实现Map, HashTable继承Dictionary实现Map。
h) Hashtable中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。在多线程并发的环境下,可以直接使用Hashtable,但是要使用HashMap的话就要自己增加同步处理了。
i) 判断key是否存在应该使用containsKey而不是使用get查看返回值是否为null。
j) Hashtable和HashMap它们两个内部实现方式的数组的初始大小和扩容的方式。HashTable中hash数组默认大小是11,增加的方式是old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数。
k) 两个遍历方式的内部实现上不同。Hashtable、HashMap都使用了Iterator。而由于历史原因,Hashtable还使用了Enumeration的方式。
另: HashSet子类依靠hashCode()和equal()方法来区分重复元素。 HashSet内部使用Map保存数据,即将HashSet的数据作为Map的key值保存,这也是HashSet中元素不能重复的原因。而Map中保存key值的,会去判断当前Map中是否含有该Key对象,内部是先通过key的hashCode,确定有相同的hashCode之后,再通过equals方法判断是否相同。
=========================================================================
3、在Java线程状态转换时,下列转换不可能发生的有(A C)?
A 初始态->运行态 B 就绪态->运行态 C 阻塞态->运行态 D 运行态->就绪态
看图可知:
=========================================================================
4、Consider the following code:
Integer s=new Integer(9); Integer t=new Integer(9); Long u=new Long(9);
Which test would return true? (CDE)
A (s==u) B (s==t) C (s.equals(t)) D (s.equals(9)) E (s.equals(new Integer(9))
个人见解:
Integer对象是可以使用==来判断是否相等,但是这样是存在前提条件a)不能使用new的方式来判断,b)赋值必须在-128~127之间,在此范围内使用==和equals得到的结果相同,否则不能使用==只能使用equals判断是否相等
Integer i = 100 等同于 Integer i = Integer.valueOf(100); 而valueOf方法会去缓存中取数据,这个缓存的区间恰好是-128~127之间