新的起点 新的开始

快乐生活 !

java 标准基础笔试题(QA)

Q:请大概描述一下Vector和ArrayList的区别,Hashtable和HashMap的区别。(5)

A:thread-safe or unsafe, could contain null values or not

Q:请问你在什么情况下会在你的JAVA代码中使用可序列化?(5)
为什么放到HttpSession中的对象必须要是可序列化的?(5)

A:save, communicate

Q:为什么在重写了equals()方法之后也必须重写hashCode()方法?(10)

A:implementations of dictionaries need hashCode() and equals()

Q:Sleep()和wait()有什么区别?(10)

A:threads communication: wait() and notifyAll()
sleep hold lock and wait auto release lock.

Q:编程题:用最有效率的方法算出2乘以17等于多少?(5)

A: 2<<4+2

Q:JAVA是不是没有内存泄漏问题?看下面的代码片段,并指出这些代码隐藏的问题。(10)

Object[] elements = new Object[10];
int size;

public Object pop() {
if (size == 0)
return null;
Object o = elements[--size];
return o;
}

A: elements[size] = null;

Q:请阐述一下你对JAVA多线程中“锁”的概念的理解。(10)

A:optimistic lock, pessimistic lock, signal, dead lock, starvation, synchronization

Q:所有的递归实现都可以用循环的方式实现,请描述一下这两种实现方式各自的优劣。
并举例说明在什么情况下可以使用递归,而在什么情况下只能使用循环而不能使用递归?(5)

A:recursive: when you need a stack and stack memory is enough
   non-recursive: when you need a queue

Q:请简要讲一下你对测试驱动开发(TDD)的认识。(10)

A:write unit testing code first

Q:请阐述一下你对“面向接口编程”的理解。(10)

A:adapter, listener, bridge, decorator, proxy… patterns

Q:在J2EE中有一个“容器(Container)”的概念,不管是EJB、PICO还是Spring都有他们
各自实现的容器,受容器管理的组件会具有有生命周期的特性,请问,为什么需要容器?
它的好处在哪里?它会带来什么样的问题?(15)

A:encapsulation decouple.

Q:请阐述一下你对IOC(Inversion of Control)的理解。(可以以PICO和Spring的IOC作为例子说明他们在实现上各自的特点)(10)

A:reduce classes' dependencies

Q:下面的代码在绝大部分时间内都运行得很正常,请问在什么情况下会出现问题?问题的根源在哪里?(10)
import java.util.LinkedList;

public class Stack {

LinkedList list = new LinkedList();

public synchronized void push(Object x) {
synchronized(list) {
list.addLast( x );
notify();
}
}

public synchronized Object pop()
throws Exception {
synchronized(list) {
if( list.size() <= 0 ) {
wait();
}
return list.removeLast();
}
}
}

A: dead lock, synchronized on both 'list' and 'this'

posted on 2007-09-29 12:56 advincenting 阅读(1553) 评论(1)  编辑  收藏

评论

# re: java 标准基础笔试题(QA) 2007-11-12 00:19 eric lin

Q:编程题:用最有效率的方法算出2乘以17等于多少?(5)

A: 17<<1

Q:JAVA是不是没有内存泄漏问题?看下面的代码片段,并指出这些代码隐藏的问题。(10)

Object[] elements = new Object[10];
int size;

public Object pop() {
if (size == 0)
return null;
Object o = elements[--size];
return o;
}

A: elements 没释放,可能存在内存泄露  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

公告

Locations of visitors to this page

导航

<2007年9月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

统计

常用链接

留言簿(13)

随笔分类(71)

随笔档案(179)

文章档案(13)

新闻分类

IT人的英语学习网站

JAVA站点

优秀个人博客链接

官网学习站点

生活工作站点

最新随笔

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜