"java面试葵花宝典.doc" Java面试葵花宝典是一份全面涵盖Java核心技术与面试常见问题的文档,旨在帮助求职者准备Java相关的面试。以下是对部分问题的详细解释: 1. **面向对象的特征**:面向对象编程(OOP)的特征包括封装、继承、多态和抽象。封装是将数据和操作数据的方法捆绑在一起,隐藏内部细节。继承允许子类继承父类的属性和方法,实现代码复用。多态允许不同的对象对同一消息作出不同的响应。抽象则通过抽象类或接口来定义共同的行为。 2. **String不是基本数据类型**:在Java中,String是一个对象,而不是基本数据类型,尽管它经常被当作基本类型来使用。它的值是不可变的。 3. **int和Integer的区别**:int是Java的基本数据类型,而Integer是其对应的包装类。int是原始类型,直接存储值,而Integer是对象,包含额外的方法和功能,如比较、自动装箱/拆箱等。 4. **String和StringBuffer的区别**:String是不可变的,每次修改都会创建新的对象,而StringBuffer是可变的,修改时不会创建新对象,因此在频繁修改字符串时,StringBuffer更高效。 5. **运行时异常与一般异常**:运行时异常是程序错误,不被捕获就会导致程序终止,如空指针异常。一般异常是可预见的异常,需要通过try-catch处理。 6. **Servlet生命周期**:Servlet经历初始化、服务、销毁三个阶段。Servlet和CGI的区别在于,Servlet是基于Java的,可处理多个请求,而CGI为每个请求创建新的进程,效率较低。 7. **ArrayList, Vector, LinkedList的特性**:ArrayList基于数组实现,适合随机访问,但插入删除慢。Vector是线程安全的ArrayList。LinkedList基于链表,插入删除快,但随机访问慢。 8. **EJB(Enterprise JavaBeans)技术**:EJB基于Java EE,用于构建企业级应用。SessionBean处理业务逻辑,无状态(Stateless)和有状态(Stateful)。EntityBean代表持久化数据。SessionBean用于短暂交互,而EntityBean对应数据库实体。 9. **Collection和Collections的区别**:Collection是所有集合类的父接口,表示一组对象。Collections是工具类,提供对集合的各种操作方法。 10. **&和&&的区别**:&是位运算符,&&是逻辑运算符。在布尔表达式中,&&具有短路特性,如果左侧为false,右侧不会执行。 11. **HashMap和Hashtable**:两者都是键值对的存储结构,HashMap非线程安全,允许null键值,而Hashtable线程安全,不接受null键值。 12. **final, finally, finalize**:final修饰变量不可变,类不能被继承,方法不能被覆盖。finally确保代码块总会执行,无论是否有异常。finalize是对象被垃圾收集器回收前调用的方法。 13. **sleep()和wait()**:sleep()使当前线程休眠,不释放锁。wait()使线程等待,释放锁,需在同步块中调用。 14. **Overload和Override**:Overload(重载)是方法名相同但参数列表不同。Override(重写)是子类方法覆盖父类方法,要求方法名、返回类型和参数列表完全一致。 15. **error和exception**:Error是严重问题,如系统故障,通常不捕获。Exception是程序中可预见的异常,应通过try-catch处理。 16. **同步和异步**:同步操作顺序执行,确保数据一致性;异步并发执行,提高效率。同步适用于数据敏感操作,异步适用于非阻塞任务。 17. **abstractclass和interface**:抽象类可有方法实现,接口全为抽象方法。类只能继承一个抽象类,但可实现多个接口。 18. **heap和stack**:堆内存存放对象实例,栈内存存放基本类型和对象引用。栈内存速度快,堆内存容量大。 19. **forward和redirect**:forward在服务器端完成,用户无感知。redirect是客户端跳转,浏览器重新发送请求。 20. **EJB与JavaBean**:EJB是服务器端组件,处理企业级任务,如事务管理。JavaBean是轻量级组件,用于构建GUI或Web应用。 21. **StaticNestedClass和InnerClass**:StaticNestedClass是静态嵌套类,不依赖于外部类的实例。InnerClass是内部类,必须与外部类实例关联。 22. **JSP动态INCLUDE和静态INCLUDE**:动态INCLUDE使用<jsp:include>,在每次请求时执行。静态INCLUDE使用<%@ include %>,编译时合并。 23. **assert**:断言,用于测试和调试,仅在assert语句开启时生效。 24. **GC(Garbage Collector)**:GC是Java的自动内存管理机制,负责回收不再使用的对象所占用的内存。 25. **其他问题**:未给出具体问题,可能涉及更多Java概念和技术。 以上仅是部分问题的解答,完整的Java面试葵花宝典包含了更多深入的问题和答案,涵盖了Java语法、集合框架、多线程、异常处理、网络编程、IO流、数据库连接、设计模式等多个方面,是准备Java面试的重要参考资料。
剩余52页未读,继续阅读
- 粉丝: 19
- 资源: 55
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++多态实现机制详解:虚函数与早期绑定
- Java多线程与异常处理详解
- 校园导游系统:无向图实现最短路径探索
- SQL2005彻底删除指南:避免重装失败
- GTD时间管理法:提升效率与组织生活的关键
- Python进制转换全攻略:从10进制到16进制
- 商丘物流业区位优势探究:发展战略与机遇
- C语言实训:简单计算器程序设计
- Oracle SQL命令大全:用户管理、权限操作与查询
- Struts2配置详解与示例
- C#编程规范与最佳实践
- C语言面试常见问题解析
- 超声波测距技术详解:电路与程序设计
- 反激开关电源设计:UC3844与TL431优化稳压
- Cisco路由器配置全攻略
- SQLServer 2005 CTE递归教程:创建员工层级结构