Java与Web技术面试重点:从基础到Spring

需积分: 13 1 下载量 90 浏览量 更新于2024-09-13 收藏 3KB TXT 举报
"这篇资料包含了面试花旗银行时可能会遇到的常见问题,涵盖了JAVA基础知识、JSP/Servlet、J2EE以及XML相关知识,还有STRUTS、SPRING和HIBERNATE等框架的了解。" 以下是这些知识点的详细说明: 1. **JAVA基本知识** - **List、Map、Set**:List是有序的集合,允许重复元素;Map是键值对存储结构,无序;Set不允许重复元素,不存储顺序。 - **Collection和Collections**:Collection是所有单列集合的父接口,Collections是操作集合的工具类,提供了排序、查找、替换等方法。 - **HashMap和Hashtable**:HashMap是非同步的,允许null键和值;Hashtable是同步的,不接受null键和值。 - **final, finally, finalize**:final修饰变量不可改变,类不可被继承,方法不可被覆盖;finally用于保证代码块总会被执行,即使有异常;finalize是对象被垃圾回收前调用的方法。 2. **JAVA多线程** - 多线程实现方法:继承Thread类、实现Runnable接口、实现Callable接口。 - 线程同步:synchronized关键字、wait/notify、Lock接口(如ReentrantLock)。 3. **线程行为** - sleep()让当前线程暂停指定时间,不会释放锁;wait()使线程等待,会释放锁。 4. **JAVA流** - 流分为输入流和输出流,包括字符流和字节流,如InputStream/OutputStream和Reader/Writer。 - 抽象类有InputStream/OutputStream的子类如FileInputStream/FileOutputStream,Reader/Writer的子类如BufferedReader/BufferedWriter。 5. **多态** - 多态是面向对象的三大特性之一,指一个引用类型可以指向多种具体类型实例的能力。 6. **异常处理** - throws用于声明可能抛出的异常;throw用于抛出异常;try块用于捕获异常;catch块处理异常;finally块确保代码执行,无论是否发生异常。 7. **面向对象特征** - 封装、继承、多态、抽象。 8. **工厂模式** - 工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,通过工厂方法创建对象,隔离了类实例化过程。 9. **JSP/Servlet相关** - Servlet生命周期包括加载、初始化、服务、销毁四个阶段。 - JSP与Servlet的相似之处在于都是Java Web开发的一部分,不同之处在于JSP侧重视图,Servlet侧重逻辑控制。 - JSP动作如<jsp:include>、<jsp:forward>等,用于页面控制。 - JSP内置对象如request、response、session、pageContext等,提供了访问请求、响应、会话等的能力。 - 动态include使用<jsp:include>,编译时决定;静态include使用 <%@ include %>,运行时决定。 - 不支持Session可在web.xml中设置session-config来禁用。 10. **J2EE相关** - web容器(如Tomcat)负责运行Servlet和JSP;EJB容器管理企业级Java组件;JNDI是命名和目录服务;JMS消息队列;JTA事务管理;JAF应用程序框架;RMI/IIOP远程方法调用。 - web容器主要负责HTTP协议处理和Web应用的部署。 11. **XML相关** - XML解析技术有DOM、SAX、StAX等,DOM一次性加载整个文档,SAX事件驱动,StAX流式解析。 - XML文档定义有DTD(文档类型定义)和XSD(XML Schema)两种,前者较简单,后者更严谨,支持复杂数据类型。 - 解析XML有DOM、SAX、StAX、JAXB等方式。 12. **STRUTS/SPRING/HIBERNATE** - Struts是MVC框架,用于处理请求和展示视图。 - Hibernate是ORM框架,简化数据库操作。 - Spring是全面的Java EE应用框架,提供DI和AOP等功能。 - DI和IOC是Spring的核心,通过配置管理对象的依赖关系,实现解耦。 - BeanFactory和ApplicationContext都是Spring的容器,后者提供更多高级功能,如事件传播、国际化等。 - AOP(面向切面编程)用于模块化横切关注点,如日志、事务管理。 以上知识点是面试中可能涉及的内容,准备面试时需深入理解并能实际运用。