"java面试题大全.doc"
这是一份详尽的Java面试题集,涵盖了从基础到高级的各种Java知识,包括但不限于JSP和Servlet技术、J2EE相关知识以及Web安全性等方面。以下是对这些知识点的详细说明:
1. **Java基础知识**
- 基本数据类型包括byte, short, int, long, float, double, boolean和char。String不是基本数据类型,而是对象,它基于CharSequence接口。
- 字符串操作包括反转和替换。反转可以通过双指针法实现,替换则可以使用String类的replace()或replaceAll()方法。
- 数据类型转换涉及Integer.parseInt()和Double.parseDouble()将字符串转换为数字,以及Number类的toString()方法反向转换。
2. **日期和时间**
- 使用java.util.Calendar或java.time包下的类获取年月日、小时分秒及毫秒数。格式化日期通常用SimpleDateFormat或DateTimeFormatter。
3. **数组和集合**
- 数组是固定大小的,而集合如ArrayList和LinkedList提供动态增长的存储。
- 文件和目录操作涉及File类,如listFiles()列出目录内容,exists()检查存在性,以及InputStream/OutputStream进行读写。
4. **多态**
- Java多态通过继承、重载(方法签名不同)和覆盖(方法签名相同但子类重写父类方法)实现。
5. **编码转换**
- 使用Charset类进行编码转换,如GBK编码转ISO-8859-1。
6. **数据库访问**
- Statement用于执行SQL语句,PreparedStatement能预编译SQL,防止SQL注入,更高效且安全。
7. **JSP&Servlet技术**
- JSP是视图层,Servlet是控制层。JSP擅长生成动态内容,Servlet处理业务逻辑。它们都可用于接收HTTP请求,但JSP更适合呈现,Servlet适合处理。
- HTML特殊字符需要转义,例如<使用`<`替代。
- JSP通过request对象访问CGI变量,使用pageContext.resolveUrl()获取JSP的绝对路径。
- Cookie和Session管理用户会话,Cookie存储在客户端,Session在服务器端,Session过期或用户关闭浏览器会丢失。
8. **J2EE相关知识**
- J2EE是企业级Java应用平台,包括J2SE、J2ME。它提供EJB、JSP、Servlet、JMS等多种技术。
- ApplicationServer如Tomcat、JBoss,负责部署和运行Java EE应用,提供事务管理、安全管理等服务。
- 连接池优化数据库连接的获取和释放,提高效率,原理是预先创建并管理一定数量的数据库连接。
9. **Web安全性**
- 表单验证、SSL证书、应用程序的输入验证和异常处理都是提升Web安全性的重要手段。
10. **MVC模式**
- MVC(Model-View-Controller)是软件设计模式,将业务逻辑、数据和界面显示分离。
11. **其他**
- Web.xml是Servlet容器的配置文件,定义Servlet、过滤器、监听器等。
- MVC框架如Spring MVC实现了MVC模式,提供组件间解耦。
这份文档对于准备Java相关的面试非常有帮助,不仅测试了基础理论,还强调了实践应用和理解深度。