深圳Java面试热门知识点总结

需积分: 9 0 下载量 110 浏览量 更新于2024-07-17 收藏 22KB DOCX 举报
"深圳java面试题总结" 面试题涵盖了广泛的Java基础知识和框架应用,以下是相关知识点的详细说明: 1. **数据库转换**:这个问题可能是指如何在不同数据库系统间迁移数据,比如从MySQL到Oracle,涉及SQL语法差异、数据类型转换以及数据库设计的适应性。 2. **集合框架的区别**: - `Set`与`List`:`Set`不包含重复元素,无序,如HashSet;`List`允许重复元素,有序,如ArrayList。 - `HashMap`与`HashTable`:两者都是键值对存储,HashMap非同步,允许null键值;HashTable同步,不接受null键值。 3. **堆与栈的区别**:堆是动态内存分配区域,用于创建对象,可以容纳大量数据,管理复杂;栈是快速分配和释放内存的区域,用于存储方法调用时的局部变量,执行速度快,但大小有限。 4. **IO流读取文件**:Java中,FileInputStream和FileReader用于读取文件,可结合BufferedReader或DataInputStream提高效率。 5. **垃圾回收(GC)**:GC是Java自动内存管理机制,负责回收不再使用的对象所占用的内存,防止内存泄漏。 6. **内存溢出**:当程序请求的内存超过系统能提供的,就会发生内存溢出,可能导致程序崩溃。 7. **线程**: - 实现方式:通过继承Thread类或实现Runnable接口。 - 生命周期:新建、就绪、运行、阻塞、死亡。 - 线程安全:涉及并发控制,如synchronized关键字和Lock接口。 8. **Struts1与Struts2的区别**: - Struts1基于ActionForm,Struts2则使用POJOs。 - Struts2提供了更丰富的拦截器和配置方式。 - Struts2支持更多模板技术,如FreeMarker和Velocity。 9. **StringBuffer与String**:String是不可变对象,而StringBuffer是线程安全的可变对象,适合多线程环境下字符串拼接。 10. **Java基础容器**:如ArrayList、LinkedList、HashMap、HashSet等,理解其特性和使用场景。 11. **Struts工作原理**:基于MVC模式,ActionServlet接收请求,调用Action,生成Model并更新视图。 12. **Hibernate**: - 延迟加载:只在需要时加载关联对象,提高性能。 - 缓存机制:一级缓存是Session级别的,二级缓存是SessionFactory级别的。 13. **Spring事务管理**:有编程式和声明式两种,用于控制事务边界。 14. **Spring核心容器**:包括BeanFactory和ApplicationContext,负责Bean的生命周期管理和依赖注入。 15. **JDBC、iBatis、Hibernate比较**: - JDBC是直接操作SQL的底层API。 - iBatis简化了JDBC,提供SQL映射框架。 - Hibernate是ORM框架,对象关系映射,更高级,支持懒加载。 16. **异常处理**:运行时异常无需显式捕获,一般异常需要处理。Integer是包装类,int是基本类型。 17. **设计模式**:如单例模式确保一个类只有一个实例,工厂模式用于对象创建等。 18. **ExtJS**:JavaScript库,用于构建富客户端应用,常用于企业级Web UI开发。 19. **MVC模式**:将模型、视图、控制器分离,提高代码可维护性。 20. **SSH框架**:Struts2、Spring、Hibernate的集成,用于构建Java Web应用。 面试中还涉及到Oracle数据库(存储过程、游标)、Ant构建工具、单元测试、权限控制、冒泡排序、JDK1.7新特性、Spring AOP的使用、依赖注入方式及其意义、MVC理解、项目经验及问题解决能力等。对于开发者来说,全面掌握这些知识点是必要的。