"这是一份Java面试题大全,涵盖了基础、JSP&Servlet技术和J2EE相关知识,适合准备Java相关面试的人员参考学习。"
在Java面试中,基础部分是必不可少的,它包括:
1. Java基本数据类型:Java有8种基本数据类型,包括整型(byte, short, int, long)、浮点型(float, double)、字符型(char)和布尔型(boolean)。而String不是一个基本数据类型,而是对象,属于类`java.lang.String`,它提供了一系列的方法进行字符串操作。
2. 字符串操作:字符串反转可以通过创建一个新的字符串,从后向前遍历原字符串来实现;字符串替换可以使用`String`类的`replace()`方法来完成。
3. 数据类型转换:使用`Integer.parseInt()`或`Double.parseDouble()`将字符串转换为数字;数字转字符串则用`Integer.toString()`或`Double.toString()`;取小数点前两位并四舍五入,可以先乘以100,然后使用`Math.round()`,最后除以100。
4. 日期和时间:Java中的`java.util.Calendar`和`java.time`包提供日期和时间操作,如`Calendar.getInstance()`获取当前日期和时间,`System.currentTimeMillis()`得到从1970年以来的毫秒数,`LocalDate`, `LocalTime`和`LocalDateTime`可以用来获取年月日、小时分秒等,`DateTimeFormatter`用于格式化日期。
5. 数组和集合:数组是一固定大小的数据结构,集合如ArrayList、LinkedList、HashSet等可以根据需要动态增长。数组操作直接访问元素,集合操作更灵活,支持迭代器。
6. 文件和目录操作:`java.io.File`类提供文件和目录的管理,如`listFiles()`列出目录下所有文件,`exists()`判断是否存在,`readFile()`和`writeFile()`用于读写文件。
7. 多态:多态是通过继承、重载(方法名相同但参数列表不同)和覆盖(子类重写父类方法)实现的。
8. 编码转换:使用`new String(byte[], "charset")`构造字符串指定编码,`getBytes("charset")`获取字节数组,可以实现不同编码间的转换。
9. 数据库访问:`Statement`和`PreparedStatement`都是与数据库交互的接口,前者不预编译SQL,易受到SQL注入攻击,后者预编译SQL,安全且性能更好。
JSP&Servlet技术部分涉及到:
1. JSP和Servlet:JSP主要用于视图展示,Servlet处理业务逻辑。JSP更偏向于表现层,Servlet在控制层。两者都可接收HTTP请求,但JSP更适合生成动态内容,Servlet更适合处理逻辑和数据。
2. HTML标记处理:在JSP中,需要使用HTML转义字符(`<`, `>`, `&`, `"`)来避免语法冲突。
3. JSP访问请求:通过`request.getParameter()`获取请求参数,`request.getAttribute()`访问CGI变量,`getRealPath()`获取JSP文件的实际路径。
4. Cookie和Session:Cookie是客户端存储信息的方式,Session是服务器端存储用户状态。Cookie适用于存储不敏感信息,有限大小和生命周期;Session用于跟踪用户会话,但消耗服务器资源。
5. JSP包含外部文件:`<jsp:include>`和`<%@ include %>`,前者在运行时包含,后者在编译时包含,动态内容适合`<jsp:include>`,静态内容适合`<%@ include %>`
6. errorPage:JSP中的`<error-page>`标签用于定义错误处理页面,当特定错误发生时,服务器会跳转到指定的JSP。
7. JavaBeans:JSP中可以通过`<jsp:useBean>`标签使用JavaBeans,提供属性和方法调用。
8. JSP标记库:比如JSTL(JavaServer Pages Standard Tag Library),提供一系列标签简化JSP编程,如循环、条件判断、XML处理等。
J2EE相关知识涉及:
1. J2EE版本:J2EE(Java 2 Platform, Enterprise Edition)是企业级应用开发平台,包括J2SE(标准版)和J2ME(微型版)。J2EE后来改名为Java EE,提供EJB、JPA、JSF、JMS等多种技术。
2. J2EE特性:它是一个技术平台,提供分布式、多层架构的解决方案,包含Web容器、EJB容器、JMS、JTA等技术。
3. 请求转发:在Servlet中,`RequestDispatcher.forward()`实现请求转发,JSP中的`<jsp:forward>`也是转发,两者都在服务器端完成,不改变URL。
这份Java面试题集全面覆盖了Java程序员需要掌握的关键知识点,是面试准备的宝贵资料。