Java 面试题1

来源:
每日新闻头条
最后修订:
2017-03-22 00:10:51

摘要:int 和 Integer 比较 区别- int一个是基本数据类型Integer一个是类- int初始值为0 Integer的初始值为null;- int 如果跟Integer比较 Integer会自...

int 和 Integer 比较 区别

- int一个是基本数据类型Integer一个是类

- int初始值为0 Integer的初始值为null;

- int 如果跟Integer比较 Integer会自动拆箱为int 所以为true

- 如果是Integer 比较 如果数在 -128~127之间的数会进项缓存 再次定义Integer=127择不会重新new一个,直接从缓存中取,如果大于128择会new 一个所以不相同

class test{

public static void main(String args[]) {

Integer a = 100;

Integer b = 100;

int aa=100;

int bb=100;

if (a == b) {

System.out.println("true");

} else {

System.out.println("false");

}if (aa== bb) {

System.out.println("true");

} else {

System.out.println("false");

}

Integer c = 1000;

Integer d = 1000;

int cc=1000;

int dd=1000;

if (c == d) {

System.out.println("true");

} else {

System.out.println("false");

}if (cc == dd) {

System.out.println("true");

} else {

System.out.println("false");

}

}}

- 结果为:

true

true

false

true

2、in和exists

in是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询,一直以来认为exists比in效率高的说法是不准确的

如果查询的两个表大小相当,那么用in和exists差别不大;如果两个表中一个较小一个较大,则子查询表大的用exists,子查询表小的用in;

3. HashMap 和 Hashtable 有什么区别?

HashMap 和 Hashtable 都实现了 Map 接口,因此很多特性非常相似。但是,他们有以下不同点: HashMap 允许键和值是 null,而 Hashtable 不允许键或者值是 null。

Hashtable 是同步的,而 HashMap 不是。因此, HashMap 更适合于单线程环境,而 Hashtable 适合于多线程环境。

HashMap 提供了可供应用迭代的键的集合,因此,HashMap 是快速失败的。另一方面,Hashtable 提供了对键的列举(Enumeration)。