posts - 129, comments - 17, trackbacks - 0, articles - 0
  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

JAVA 面试基础试题

Posted on 2005-07-11 10:46 woow 阅读(476) 评论(0)  编辑 收藏 引用 所属分类: J2ee -struts
出处:www.csdn.net

  找工作要面试,有面试就有对付面试的办法。以下一些题目来自我和我朋友痛苦的面试经历,提这些问题的公司包括IBM, E*Trade, Siebel, Motorola, SUN, 以及其它大小公司。


 
  面试是没什么道理可讲的,它的题目有的不合情理、脱离实际。有在纸上写的,有当面考你的,也有在电话里问的,给你IDE的估计很少(否则你赶快去买彩票, 说不定中)。所以如果你看完此文后,请不要抱怨说这些问题都能用IDE来解决。你必须在任何情况下准确回答这些问题,在面试中如果出现一两题回答不准确很 有可能你就被拒之门外了。

  当然这些都是Java的基本题,那些面试的人大多数不会问你Hibernate有多先进,Eclipse的三个组成部分,或command design pattern,他们都是老一辈了,最喜欢问的就是基础知识。别小看了这些基础,我朋友水平一流,结果就栽在一到基础知识的问题下,和高薪无缘。

  好了废话少说,开始正题。

  第一,谈谈final, finally, finalize的区别。
最常被问到。

  第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

  第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。

  第四,&和&&的区别。
这个问得很少。

  第五,HashMap和Hashtable的区别。
常问。

  第六,Collection 和 Collections的区别。
你千万别说一个是单数一个是复数。

  第七,什么时候用assert。
API级的技术人员有可能会问这个。

  第八,GC是什么? 为什么要有GC?
基础。

  第九,String s = new String("xyz");创建了几个String Object?

  第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

  第十一,short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
面试题都是很变态的,要做好受虐的准备。

  第十二,sleep() 和 wait() 有什么区别?
搞线程的最爱。

  第十三,Java有没有goto?
很十三的问题,如果哪个面试的问到这个问题,我劝你还是别进这家公司。

  第十四,数组有没有length()这个方法? String有没有length()这个方法?

  第十五,Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
常问。

  第十六,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?

  第十七,给我一个你最常见到的runtime exception。
如果你这个答不出来,面试的人会认为你没有实际编程经验。

  第十八,error和exception有什么区别?

  第十九,List, Set, Map是否继承自Collection接口?

  第二十,abstract class和interface有什么区别?
常问。

  第二十一,abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?

  第二十二,接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?

  第二十三,启动一个线程是用run()还是start()?

  第二十四,构造器Constructor是否可被override?

  第二十五,是否可以继承String类?

  第二十六,当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

  第二十七,try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

  第二十八,编程题: 用最有效率的方法算出2乘以8等於几?
有C背景的程序员特别喜欢问这种问题。

  第二十九,两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?

  第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

  第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?

  第三十二,编程题: 写一个Singleton出来。

1,定义在一个方法中的内部类,除了能访问该方法中定义的final属性以外,还能不能访问外部类的属性?(定义在一个类中的内部类是可以的)

2,一个类能不能在继承一个类的同时又实现一个借口?

编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC4,应该截为“我AB”,输入“我ABCDEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。




package string;
class SplitString
{
 private String str;
 private int byteNum;

 public SplitString(){}

 public SplitString(String str,int byteNum)
 {
  this.str=str;
  this.byteNum=byteNum;

 }
 
 public void splitIt()
 {
什么是敏捷开发。。。。

什么叫重构,为什么要重构,什么时候重构

设计模式是什么。。。。

java基础问题

1.简述逻辑操作(&,|,^)与条件操作(&&,||)的区别。(15分)
2.下面程序运行会发生什么结果?如果有错误,如何改正? (15分)
interface  A{
  int x = 0;
}
class B{
  int x =1;
}
class C
    extends B implements A {
  public void pX(){
    System.out.println(x);
  }
  public static void main(String[] args) {
    new C().pX();
  }
}
}


3.简述 Java Server Page 和 Servlet 的联系和区别。(20分)
4.XML文档定义有几种形式?它们之间有何本质区别?
解析XML文档有哪几种方式?(20分)
5.简述synchronized和java.util.concurrent.locks.Lock的异同 ?(15分)
6.EJB规范规定EJB中禁止的操作有哪些?(15分)

最后还有一题考考你的眼力:

public String toString(){
   return this + "@" + this.hashCode();
}
这个toString()方法实现有无不当的地方?(toString方法其实可以按你想输出的任何内容输出一些该类的信息)

**********************************************************************************

public String toString(){
   return this + "@" + this.hashCode();
}


会变成

public String toString(){
   return String.valueOf(this) + "@" + String.valueOf(this.hashCode());
}

而valueOf方法又将去调用toString();
/**
   public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
    }
*/


这样好像会有问题了吧???

以下答案供参考(不一定完全正确),也没有很详细说明.相关知识可以自己参考相关资料加上自己的理解.欢迎拍砖

1.简述逻辑操作(&,|,^)与条件操作(&&,||)的区别。(15分)
区别主要答两点:
a.条件操作只能操作布尔型的,而逻辑操作不仅可以操作布尔型,而且可以操作数值型
b.逻辑操作不会产生短路.如:
int a = 0;
int b = 0;

if( (a = 3) > 0 || (b = 3) > 0 ) //操后a =3,b=0.
if( (a = 3) > 0 | (b = 3) > 0 ) //操后a =3,b=3.
 
答对第一点得5分,答对第二点得10分.

本题考察最最基本的知识,但仍然有很多大牛级开发人员下马,任何语言在开始的部分
都会详细介绍这些基本知识,但除了学习第一种语言时,没有人在学习新的语言时愿意
花五分钟来复习一下.


2.下面程序运行会发生什么结果?如果有错误,如何改正? (15分)
interface  A{
  int x = 0;
}
class B{
  int x =1;
}
class C
    extends B implements A {
  public void pX(){
    System.out.println(x);
  }
  public static void main(String[] args) {
    new C().pX();
  }
}
}

本题在编译时会发生错误(错误描述不同的JVM有不同的信息,意思就是未明确的x调用,
两个x都匹配,就象在同时import java.util和java.sql两个包时直接声明Date一样)

本题主要考察对接口和类的最最基本的结构的了解.对于父类的变量,可以用super.x来
明确,而接口的属性默认隐含为 public static final.所以可以通过A.x来明确.


3.简述 Java Server Page 和 Servlet 的联系和区别。(20分)
本题不用多说,在答相同点时应该明确知道jsp编译后是"类servlet"而"不是Servlet",
答区别时应该回答出"侧重于(视图/控制逻辑)".其它可根据情况加减分值.知识很简单,
但从面试的角度看,被试者不仅要能知道它们的区别,而且要能比较准确地表达出来(以
后写文档要能让别人看得懂,不产生歧义),回答"jsp编译后就是servlet"视为错误,回答
"jsp用于视图,servlet用于控制逻辑"视为错误,应该用侧重于,主要(多数)用于等词语
表达.


4.XML文档定义有几种形式?它们之间有何本质区别?
解析XML文档有哪几种方式?(20分)
本题三个答题点:
a: 两种形式 dtd,schema
b: 本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的
根本目的)
c: 两种主要方式:dom,sax.答出两种得全分,如能答出saxt,或其它(在答出dom,sax的基
础上,如果应试者认为其它方式也可以视为对xml的解析应该允许.但没有答出dom,sax把
其它方式说成是对XML的解析不得分)应该加分.

5.简述synchronized和java.util.concurrent.locks.Lock的异同 ?(15分)

主要相同点:
Lock能完成synchronized所实现的所有功能.(其它不重要)
主要不同点:
Lock有比synchronized更精确的线程语义和更好的性能(在相同点中回答此点也行)
synchronized会自动释放锁.而Lock一定要求程序员手工释放.并且必须在finally从句
中释放,如果没有答出在finally中释放不得分.就如Connection没有在finally中关闭一
样.连最基本的资源释放都做不好,还谈什么多线程编程.




6.EJB规范规定EJB中禁止的操作有哪些?(15分)
共有8点,答出下列3-4点得满分.

1.不能操作线程和线程API(线程API指非线程对象的方法如notify,wait等)
2.不能操作awt
3.不能实现服务器功能
4.不能对静态属生存取.
5.不能使用IO操作直接存取文件系统
6.不能加载本地库.
7.不能将this作为变量和返回.
8.不能循环调用.

 

 

以下是香港电信的笔试题,请关心概念题的朋友和考官看一下,如果有时间请和大家一起分享一下你的思路。(不一定非要用英语在1小时完成)
香港电信的工资肯定不只6000人民币!

1.Based on your understanding of the following java related technologies:

servlets,JavaServerPage,JavaBeans,Enterprise JavaBeans, how do you think these technologies are work together or are applied in the development of an internet-based application(25marks)

2.In your opinion ,what do you think are the advantages or benefitsof using an object-oriented approach to software development? how do you think those benefits can be achieved or realized?(15marks)

3.In designing your classes, given the choice between inheritance and aggregation which do you choose(15marks)

4.How would you work around the lack of multiple inheritance feature in Java(15marks)

5.What would you consider to be the hardest part of OO analysis and design and why(10marks)

6.How do you keep yourself up to date with the latest in software techonogy, especially in the field of software development(10marks)

7.What is your career aspiration? Why do you think this E-Commerce Development Center can help you in achieving your career goals(10marks)

(1hr, answer in English)

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