Java面试精华:类型、数据结构、框架对比及核心技术

5星 · 超过95%的资源 需积分: 50 1 下载量 42 浏览量 更新于2024-09-10 2 收藏 13KB TXT 举报
1. **Java基础差异**: - int和Integer:int是原始数据类型,代表数值;Integer是其封装类,提供了对象级别的操作,防止空指针异常。 2. **数据结构和容器**: - String和StringBuffer:String是不可变的,修改会导致新对象生成;StringBuffer可变,适合频繁修改。 - List, Set, Map:Set不允许重复元素,List有序且可重复,Map键值对形式存储,键值唯一。 3. **Web技术对比**: - Servlet与CGI:Servlet在服务器进程中,多线程处理请求,提高效率;CGI每次请求新建进程,效率较低。 4. **面向对象原则**: - 封装:通过访问修饰符控制属性和方法的可见性。 - 继承:子类继承父类,扩展和重写方法。 - 多态:同一方法在不同对象上有不同的表现。 - 抽象:忽略无关细节,关注关键特性。 5. **异常处理**: - 运行时异常:程序运行时出现的错误,无需捕获。 - 一般异常:编程错误,需要捕获处理。 6. **并发和委托概念**: - 多线程实现:继承Thread或实现Runnable接口,synchronized用于同步。 - C#中的委托和事件:委托是方法的引用,事件是特殊的委托。 7. **程序架构与管理**: - 应用程序域:轻量级进程,保证安全和资源效率。 - Class.forName:动态加载类。 - JDO:对象持久化规范。 - CORBA:跨平台对象互操作协议。 8. **XML解析**: - DOM和SAX:DOM适合随机访问,SAX适合顺序访问。 9. **JSP和Servlet**: - jsp:include用于引入文件,jsp:useBean实例化Bean,set/getProperty操作属性。 - jsp:forward和redirect的区别:前者不改变URL,后者改变。 10. **编程风格和设计模式**: - 编码规范:类名首字母大写,常量全大写,代码注释清晰。 - 设计模式:单例模式控制资源和实例数量,实现通信。 11. **框架和工具**: - Spring:七个模块组成,包括核心容器、AOP、ORM、DAO、Web服务支持等。 - Hibernate:持久化框架,ORM映射和事务管理。 12. **并发控制和异步**: - 同步用于共享数据一致性,异步处理耗时操作,提高效率。 13. **数据库和数据管理**: - 数据库范式:确保数据完整性。 - Hibernate的OR映射:将数据库表映射到对象模型。 14. **性能优化**: - lazy="true"不一定导致懒加载,fetch属性影响。 - 主键和标识符的区别,以及Struts2中Action对象的创建。 15. **MVC模式**: - Struts2实现MVC,Action接收请求,转发数据至视图层。 16. **内存区域**: - heap和stack:内存分配区域,栈用于局部变量,堆用于对象存储。 17. **EJB与JavaBean**: - EJB是企业级JavaBean,用于服务器端开发,需EJB容器支持,而JavaBean更通用,无需容器。 18. **数据库操作**: - 触发器和存储过程:数据库的自动化操作和预编译SQL。 - 索引:提高查询效率,增加存储空间。 19. **并发控制**: - 事务:一组操作视为一个逻辑单元,保证数据一致性。 - 锁:保证并发访问的正确性。 20. **数据库视图和游标**: - 视图是虚拟表,游标遍历查询结果。 21. **集合框架**: - Collection和Collections:前者是父类,后者提供操作集合工具。 22. **内存管理和垃圾回收**: - final、finally、finalize:final用于限制属性和方法,finally确保执行,finalize在垃圾回收时调用。 23. **测试和调试**: - assert断言,用于检查条件是否满足。 - 接口与抽象类继承关系。 24. **数据传递**: - 引用传递和值传递:区分Java方法参数传递方式。 25. **Servlet生命周期**: - 初始化、请求处理、销毁等阶段。 26. **错误和异常**: - error和exception的区别,底层错误和程序异常。 27. **页面操作**: - forward和redirect的区别,以及它们在JSP中的实现。 28. **日期和数字处理**: - 时间戳、日期格式化、数值转换。 29. **文件和目录操作**: - 文件和目录的检查方法。 30. **继承、重载和覆盖**: - Java中的这三个概念的定义和应用场景。 31. **数据库连接管理**: - Statement和PreparedStatement的区别,以及预编译的优势。 32. **会话管理**: - Session在Web应用中的角色和作用。 33. **JSP和Servlet的交互**: - JSP和Servlet的角色划分,JSP编译后的servlet实现。 34. **Java版本和领域**: - J2EE、J2SE和J2ME的区别,以及各自适用的场景。 35. **J2EE技术栈**: - 提供的技术,如EJB、Servlet、JSP等。 36. **应用服务器**: - 用于部署和管理企业级应用的软件平台。 37. **连接池**: - 优化数据库连接的原理和优点。 38. **Web.xml的作用**: - 程序启动时的配置文件,控制初始化行为。 39. **MVC框架**: - MVC模式在项目中的作用和组成部分。 40. **XML**: - 作为数据交换和配置语言的基本介绍。 41. **Spring、Struts和Hibernate**: - 三个框架的核心功能和应用场景。 42. **面试准备**: - 提醒面试者准备简洁明了的答案,避免冗长。