Java笔试面试必备知识点总结

版权申诉
0 下载量 5 浏览量 更新于2024-07-03 收藏 268KB DOC 举报
"这是一份综合性的Java笔试和面试题集,涵盖了Core Java、Servlet & JSP、JDBC & XML以及Oracle数据库等多个方面的知识点。这份资料旨在帮助求职者准备Java相关的技术面试,全面复习和理解Java核心技术。" 一、Core Java部分 1. Java基本数据类型包括整型(byte、short、int、long)、浮点型(float、double)、字符型(char)和布尔型(boolean),它们各自占用的位数分别为:byte(8位)、short(16位)、int(32位)、long(64位)、float(32位)、double(64位)、char(16位)和boolean(通常32位,但不存储具体值)。 2. 启动时异常(即非检查异常)如ClassNotFoundException、InstantiationException、IllegalAccessException等,这些异常在程序编译时不会强制要求处理,但在运行时可能会抛出。 3. HashMap和HashTable的主要区别在于线程安全性:HashMap非线程安全但效率高,而HashTable线程安全但执行速度较慢。此外,HashMap允许null键和值,而HashTable不允许。 4. ArrayList、Vector和LinkedList都是List接口的实现。ArrayList基于动态数组,适合随机访问但插入和删除效率低;Vector与ArrayList类似,但线程安全;LinkedList基于双向链表,插入和删除高效,但随机访问效率低。 5. Collection是所有集合类的父接口,Collections是针对集合类的工具类,提供排序、查找等操作。 6. List、Map和Set的特点:List按顺序存储,可重复元素,允许索引访问;Map存储键值对,无顺序,不允许重复键;Set存储唯一元素,无顺序。 7. final用于声明常量或不可变对象,finally确保代码块在任何情况下都会执行,finalize是对象被垃圾回收前调用的方法。 8. Overload(重载)是在同一类中方法名相同但参数列表不同的方法,不关心返回类型。Override(重写)是在子类中重写父类的方法,必须保持方法签名一致,包括返回类型、名称和参数列表。 9. 冒泡排序是一种简单的排序算法,通过不断交换相邻的逆序元素逐步达到排序目的。 10. 线程安全的实现方式包括 synchronized 关键字、Lock 接口(如 ReentrantLock)和 volatile 变量。 11. "=="比较的是对象的引用,equals()方法比较的是对象的内容。对于字符串,"=="比较的是两个字符串对象的引用,而equals()比较的是字符串的内容是否相等。 12. sleep()使当前线程暂停指定时间,不会释放锁;wait()使线程进入等待状态,释放对象锁,需要被notify()或notifyAll()唤醒。 13. "&"是位运算符,而"&&"是逻辑运算符。前者总是计算两边的操作数,后者在左侧表达式为假时不再计算右侧。 14. Error表示系统级错误,无法恢复,而Exception是应用程序可以捕获和处理的异常。 15. 线程同步的方法包括synchronized关键字、wait/notify机制、Lock接口、ReentrantLock、Semaphore等。 二、Servlet&JSP部分 16. MVC模式中,M(Model)负责数据处理,V(View)负责显示,C(Controller)负责调度。实现技术可以包括Spring MVC、Struts等。 17. Servlet生命周期包括加载、初始化、服务、销毁四个阶段。与CGI相比,Servlet更高效,因为CGI每次请求都创建新的进程,而Servlet在容器中持久存在。 18. JSP是Servlet的简化版本,将HTML和Java代码混合编写,最终被容器转换为Servlet执行。JSP侧重视图,Servlet侧重控制逻辑。 19. 数据库连接池(如C3P0、DBCP、HikariCP)预先创建并管理一组数据库连接,提高连接复用和管理效率。 20. JSP内置对象包括request、response、session、application、out、pageContext、config、page、exception,分别用于处理请求、响应、会话、全局变量、输出、上下文、配置、当前页面对象和异常。 21. forward内部跳转,请求参数保留;redirect外部跳转,创建新的请求,参数不保留。 22. JSP的四种作用域分别是page、request、session和application,范围从小到大,page仅限当前页面,request在整个请求,session跨请求,application在整个应用。 23. B/S(Browser/Server)结构是浏览器-服务器架构,用户通过浏览器与服务器交互;C/S(Client/Server)结构是客户端-服务器架构,用户需要安装客户端软件。 三、JDBC&XML 24. JDBC连接数据库的步骤:加载驱动、建立连接、创建Statement或PreparedStatement、执行SQL、处理结果集、关闭资源。 25. Statement用于执行静态SQL,PreparedStatement支持预编译,能防止SQL注入,效率更高。 26. 解析XML文档可以使用DOM(Document Object Model)、SAX(Simple API for XML)、StAX(Streaming API for XML)等方法。 27. XML文档定义有DTD(Document Type Definition)和XML Schema两种形式,用于验证文档结构和数据。 四、Oracle数据库部分 28. SQL查询示例:SELECT * FROM (SELECT salary, RANK() OVER (ORDER BY salary DESC) rnk FROM employees) WHERE rnk BETWEEN 3 AND 5; 29. 删除表中所有数据:TRUNCATE TABLE 表名; 或 DELETE FROM 表名; 30. 去除重复数据通常使用DISTINCT关键字,或者使用GROUP BY和HAVING子句结合。 五、三大框架部分 由于篇幅原因,这里只列出了问题,具体答案涉及Spring、MyBatis、Hibernate等框架的应用服务器选择、配置、工作原理等内容,这部分需要进一步学习和研究。 以上知识点涵盖了Java基础、Web开发、数据库操作和企业级框架,是Java程序员面试的重要参考。深入理解和掌握这些内容,将有助于提升技术水平和面试成功率。