深圳公司面试题精选:涵盖安全、框架、数据库与设计模式

5星 · 超过95%的资源 需积分: 9 3 下载量 100 浏览量 更新于2024-07-18 收藏 96KB DOCX 举报
"深圳部分公司面试问题,包括深圳航空、海钜信达、华为、金蝶、超算科技、武汉伯钧成、京东等公司的面试题,主要涉及Java相关技术,如自定义注解、Tomcat安全性、SVN使用、数据库存储过程、Spring MVC、设计模式、事务管理、MyBatis防止SQL注入、字符串操作以及Linux系统操作等。" 这篇摘要中包含了一系列Java开发人员在面试中可能遇到的问题和知识点,以下是详细说明: 1. **自定义注解**:自定义注解是Java提供的一种元编程方式,允许开发者定义自己的注解类型,用于添加元数据到源代码中,可以用于编译时检查、运行时处理或者作为信息传递。 2. **Tomcat安全性**:面试中提到的Tomcat安全措施包括删除默认应用、限制用户权限、避免以root用户启动、关闭自动部署功能、使用独立用户运行应用以及修改JSESSIONID,这些都是为了防止恶意攻击和提升服务器安全性。 3. **SVN**:Subversion(简称SVN)是一种版本控制系统,用于跟踪文件和目录的变化,支持多人协作开发。面试中询问了如何使用SVN以及解决版本冲突的问题。 4. **数据库存储过程**:存储过程是预编译的SQL语句集合,可以提高数据库性能,减少网络传输,也可以封装复杂的业务逻辑。 5. **Spring MVC三层架构**:通常指的是表现层(View)、业务逻辑层(Controller)和数据访问层(Model),用于分离关注点,实现松耦合。 6. **设计模式**:面试中提到了单例模式和工厂模式,单例模式保证一个类只有一个实例,而工厂模式提供了一种创建对象的最佳方式,避免直接new操作,提高可扩展性。 7. **同步方法**:在多线程环境中,同步方法用于控制对共享资源的访问,避免数据不一致。银行转账案例中,同步方法可以确保同一时间只有一个转账操作执行。 8. **MyBatis防止SQL注入**:MyBatis使用#{}占位符进行预编译,避免了直接字符串拼接SQL导致的SQL注入风险,而${}则会直接替换为变量值,存在注入风险。 9. **Linux命令**:面试中提及了查看进程和内存使用情况的命令,如`ps`和`top`,以及日志文件处理,日志文件通常存储在 `/var/log` 目录下。 10. **设计模式的区别**:例如恶汉式和懒汉式的单例模式,恶汉式在类加载时即初始化单例,而懒汉式在首次调用时才初始化,前者更早消耗资源但保证线程安全,后者延迟初始化但可能面临线程安全问题。 11. **数据库连接操作**:左外连接和右外连接分别保留了左表和右表的所有记录,即使没有匹配项。`ON`用于指定连接条件,`WHERE`则用于过滤连接后的结果。 12. **字符串API**:Java中字符串处理包括`substring()`、`trim()`、`replace()`、`indexOf()`等方法,面试中可能考察这些基本操作的使用。 13. **Spring事务管理**:Spring提供了声明式事务管理,通过注解如@Transactional来控制事务边界。私有方法上不能直接使用注解,因为Spring无法扫描到。 14. **Spring MVC拦截器**:拦截器用于处理请求前、后和异常情况,实现如权限验证、日志记录等功能。 这些问题涵盖了Java开发中的多个核心领域,对于准备面试的开发者来说,了解和掌握这些知识点是非常重要的。