网站首页 新闻首页 网页设计图形动画软件编程网站开发办公软件操作系统数据库网络技术认证考试范文资料黑客攻防 书籍教程 进入论坛

变态级JAVA程序员面试32问(转)

http://www.diybl.com/ 2007-2-6  网络 点击:  [ 评论 ]
文章搜索:    【点击打包该文章】

前面部分是问题,后面部分是一些网友给的答案,大家参考吧:

****************************原题部分**************************************

第一,谈谈final, finally, finalize的区别。

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

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

第四,&和&&的区别。

第五,HashMap和Hashtable的区别。

第六,Collection 和 Collections的区别。

第七,什么时候用assert。

第八,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等於几?

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

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

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

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


***********************第一个人的回答 abcdhy(程旭) **********************************

比较简单,不是太难吧.

第一,谈谈final, finally, finalize的区别。
太长....不写出来了.

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

第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。
知道80%吧,说不全, 理解起来太难

第四,&和&&的区别。
按位 和 逻辑 与

第五,HashMap和Hashtable的区别。
不同步 同步

第六,Collection 和 Collections的区别。
接口 实用类

第七,什么时候用assert。

第八,GC是什么? 为什么要有GC?
自动内存回收,减少内存泄漏,提高系统稳定性

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

第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
不知道.随机的

第十一,short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
需要一个 short ,却找到一个 int

第十二,sleep() 和 wait() 有什么区别?
sleep() 休眠指定时间 wait() 休眠,需要其他线程唤醒

第十三,Java有没有goto?
没有,但 break 可以是实现部分 goto 的功能

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

第十五,Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
不可以,Overloaded 必须更改参数

第十六,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
视具体子类而定, 比如 HashSet ,就以 hashCode 来比较.
== 是比较实例的内存地址是不是一样, 而equals()一般是比较实例的具体内容

第十七,给我一个你最常见到的runtime exception。
NullPointerException ,IOException

第十八,error和exception有什么区别?
error 是不可恢复的,必须停止运行. 而 exception 是可预期,可恢复的.

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

第二十,abstract class和interface有什么区别?
就是 class 和 interface 的区别,具体的可以随便说

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

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

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

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

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

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

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

第二十八,编程题: 用最有效率的方法算出2乘以8等於几?
2<<3

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

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

第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
long 和 String 不可以. byte 可以

第三十二,编程题: 写一个Singleton出来。
public class aaa {
private aaa ii = new aaa();
private aaa(){};
public aaa get() {
return ii;
}
}

花了几分中,简单的回答了一下,学得不够深入,请高手们指点.


*************************第二个人的回答 dengyin2000**************************************

第一,谈谈final, finally, finalize的区别。
final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载
finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。
finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。

第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现。

第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。
Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。具体可见http: //www.frontfree.net/articles/services/view.asp?id=704&page=1
注: 静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象

第四,&和&&的区别。
&是位运算符。&&是布尔逻辑运算符。

第五,HashMap和Hashtable的区别。
都属于Map接口的类,实现了将惟一键映射到特定的值上。
HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。
Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。

第六,Collection 和 Collections的区别。

欢迎光临DIY部落,点击这里查看更多文章教程   【点击打包该文章】
如果图片或页面不能正常显示请点击这里 站内搜索:   

文章评论

请您留言