Java面试必备:简答精华,涵盖Java、数据库与框架

需积分: 3 1 下载量 128 浏览量 更新于2024-06-24 收藏 4.66MB PDF 举报
"这是一份Java面试题的简答题总结PDF文档,涵盖了Java、数据库、框架、Redis和Linux等多个领域的常见问题。文档包含了题目解析和关键知识点提示,适合准备面试和复习技术知识的人群。" Java 简答题知识点: 1. **数据库范式**: - 第一范式(1NF):确保列的原子性,每个字段值不可再分。 - 第二范式(2NF):要求非主属性完全依赖于候选键,消除部分函数依赖。 - 第三范式(3NF):非主属性不能传递依赖于其他非主属性,消除传递函数依赖。 2. **事务**: - 事务是数据库操作的基本单位,具有原子性(A:Atomicity)、一致性(C:Consistency)、隔离性(I:Isolation)和持久性(D:Durability)四大特性。 3. **事务隔离级别**: - 读未提交(Read-Uncommitted):可能导致脏读、不可重复读和幻读。 - 读已提交(Read-Committed):可能导致不可重复读和幻读。 - 可重复读(Repeatable Read):在MySQL中默认,防止了脏读和不可重复读,但可能有幻读。 - 串行化(Serializable):最高等级,防止所有并发问题,但性能最低。 4. **Java 8 新特性**: - Lambda 表达式:提供简洁的匿名函数表示方式。 - LocalDateTime:新的日期时间类,替代了旧的Date和Calendar。 - 方法引用:::符号用于直接引用方法,如`object::method`。 - 接口中的 static 和默认方法:使得接口可以包含具体实现。 5. **Vector与List的区别**: - Vector是线程安全的集合,而List(如ArrayList)是非线程安全的。 - Vector的方法调用会自动扩容,性能相对较差。 6. **SQL 注入与防护**: - SQL注入是通过恶意构造SQL语句,获取或篡改数据库信息的安全风险。 - 防护措施包括使用预编译(如PreparedStatement)和参数绑定(MyBatis中的#{})。 7. **SQL 查询优化**: - 避免嵌套查询,尽量使用联查以提高效率。 - 查询时避免使用通配符*,指定具体列名。 - 建立合适的索引来加速查询。 8. **索引失效情况**: - null值判断可能导致索引不被使用。 - 使用!=操作符可能导致全表扫描。 - where子句中的OR条件可能使索引失效。 - not in操作也可能导致全表扫描。 这些简答题涵盖了Java编程基础、数据库设计与管理、并发控制、以及安全性和性能优化等方面的关键知识点,是面试准备的宝贵资料。
2023-02-28 上传