Java工程师面试题精选与解析

0 下载量 15 浏览量 更新于2024-06-22 收藏 114KB DOC 举报
Java面试题带答案文档包含了针对Java工程师面试的一些常见问题及其答案。以下将详细解释几个关键知识点: 1. **Java HashMap的size方法** - 在单选题1中,题目涉及到HashMap的使用。Java HashMap在put操作后,如果键(key)已经存在,则新值会覆盖旧值,但键值对的数量(size)不会改变。因此,即使先put了一个null值,再put一个非null的"name",size仍然是1,因为HashMap的size表示唯一键值对的数量。所以正确答案是C:1。 2. **StringBuffer的operator方法** - 题目中的多线程字符串连接问题在单选题2中出现。`operator`方法将`y`追加到`x`,然后交换两个StringBuffer引用。执行后,原始的`a`保持不变,`b`的内容被`a`覆盖,所以最终输出`AB`。答案是D。 3. **依赖注入的理解** - 在单选题3中,依赖注入(Dependency Injection, DI)的核心是解耦组件之间的依赖,使得每个组件只需关心自己的职责,而不是如何创建或管理其他组件。选项B错误,因为它表明组件之间相互依赖,这是DI要避免的,应该是通过DI容器来管理依赖关系。 4. **Spring框架的特点** - 单选题4考察Spring框架的知识。选项D错误,因为Spring不直接提供AOP方式的日志系统,而是通过第三方库如Logback或Log4j来实现日志功能,虽然Spring可以集成这些日志系统。 5. **Java Session管理** - 在单选题5中,session是Java Servlet API中的一个重要概念,用于在客户端与服务器之间保存状态信息。设置session属性通常使用`session.setAttribute`方法,传递键值对,答案是B。 6. **静态变量和构造函数** - 题目末尾提到的类`HasStatic`包含一个静态变量`x`,这意味着这个变量属于类本身,而不是类的实例。在`main`方法中创建`HasStatic`的实例`HasStatic1`时,静态变量`x`的值会被共享。这说明静态变量和实例变量的生命周期、作用域以及初始化时机的区别。 总结,这些面试题涉及Java语言基础、HashMap的使用、字符串操作、依赖注入的理解、Spring框架特性和Java Session管理等多个方面,熟悉这些知识点对于准备Java工程师面试至关重要。
2009-09-17 上传
1. 用代码示例一个多态的例子 2. java的基本数据类型包括哪些,String是基本的数据类型吗 ? 3. int 和 Integer 有什么区别 4. String 和StringBuffer的区别 5. Collection 和 Collections的区别。 6. &和&&的区别。 7. Overload和Override的区别,试用java代码举例。 8. error和exception有什么区别? 9. abstract class和interface有什么区别? 10. final, finally, finalize的区别,试用java代码示例。 11. 什么时候用assert。 试给出例子 12. forward 和redirect的区别 13. GC是什么? 为什么要有GC? 14. short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 15. Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 16. String s = new String("xyz");创建了几个String Object? 17. 设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 18. Java有没有goto? 19. 启动一个线程是用run()还是start()? 20. 应用服务器有那些,列出你所知道的例子? 21. 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类 22. Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 23. 它们有何区别? 24. 构造器Constructor是否可被override? 25. 是否可以继承String类? 26. swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上? 27. try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会 28. 编程题: 用最有效率的方法算出2乘以8等於几? 29. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 30. 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 31. 编程题: 写一个Singleton的示例。 32. 数组有没有length()这个方法? String有没有length()这个方法? 33、排除错误 interface Playable { void play(); } interface Bounceable { void play(); } interface Rollable extends Playable, Bounceable { Ball ball = new Ball("PingPang"); } class Ball implements Rollable { //… }