Java面试必备:final、finally、finalize与集合框架解析

需积分: 1 0 下载量 2 浏览量 更新于2024-09-18 收藏 3KB TXT 举报
"经典面试题" 在面试中,掌握关键知识点是至关重要的。以下是一些关于Java、设计模式、异常处理以及Web开发的重要概念,这些都是面试中常见的问题。 1. Java中的`final`关键字: - `final`关键字用于声明变量、方法或类不可变。一旦声明为`final`,就不能再改变其值或重写。 - 对于类,如果声明为`final`,则不能被其他类继承。 - 对于方法,`final`表示该方法不能在子类中被重写。 - 对于变量,如果一个类变量被声明为`final`,那么它必须在声明时初始化,且之后不能更改。 - 对于局部变量,`final`可以确保变量的值在初始化后不会改变。 2. 设计模式: - 单例模式(Singleton):保证一个类只有一个实例,并提供一个全局访问点。实现方式包括懒汉式和饿汉式。 - 工厂模式(Factory):提供一个接口来创建对象,但让子类决定实例化哪一个类。工厂方法让类的实例化推迟到子类。 - 组合模式(Composite):允许你将对象组合成树形结构来表现“整体/部分”层次结构。它使得用户对单个对象和组合对象的使用具有一致性。 3. 异常处理:`final`, `finally`, `finalize` - `final`关键字用于异常处理的代码块,确保这部分代码一定会执行,即使发生异常。 - `finally`块通常包含清理代码,如关闭文件流等,无论是否抛出异常,都会执行。 - `finalize`是Java对象的特殊方法,用于在垃圾回收之前进行清理工作,但不推荐直接使用,因为其执行时间不确定。 4. Web开发相关: - List, Set, Map与Collection:List是有序集合,允许重复元素;Set是无序集合,不允许重复元素;Map是键值对集合,不存储元素本身,而是存储键值对。它们都是Collection框架的一部分。 - SSH(Spring, Struts2, Hibernate)和Struts2:SSH是一种经典的Java Web开发框架组合,而Struts2是一个单独的MVC框架。Struts2通过Action和Interceptor实现请求处理,Action是业务逻辑载体,Interceptor用于拦截和处理请求。 - JSP:JSP页面分为指令(Directives)、动作(Actions)和脚本元素。`<jsp:include>`用于动态包含页面,而`<% include %>`用于静态包含。 - 请求转发与重定向(forward, redirect):前者在同一应用内共享请求范围内的数据,不改变URL;后者发送新的HTTP请求,丢失请求范围内的数据,URL会改变。 5. SQL查询: - `GROUP BY`和`ORDER BY`:`GROUP BY`用于对结果集进行分组,通常与聚合函数一起使用,例如`COUNT`, `SUM`, `AVG`等。`ORDER BY`用于对查询结果排序。 6. CSS样式: - CSS引入方式:内联样式(直接在HTML元素中使用`style`属性),内部样式表(在`<head>`中使用`<style>`标签),外部样式表(使用`<link>`标签链接CSS文件)。 以上知识点涵盖了Java基础、面向对象设计、异常处理、Web开发以及数据库操作的关键点,是面试中常见的技术考察点。理解并熟练掌握这些概念将有助于你在面试中表现出色。