Java面试必备:70道面试题及解答

需积分: 7 0 下载量 23 浏览量 更新于2024-09-11 收藏 63KB DOC 举报
"这是一份包含70个Java面试题目的列表,涵盖了Java基础、JSP、线程、网络请求、页面交互等多个方面。每个问题都提供了详细的答案,旨在帮助面试者深入理解Java编程和Web开发的相关概念。" 1. **调用操作系统脚本** 在Java中,可以通过`Runtime.getRuntime().exec()`方法来调用操作系统命令,例如执行Linux的bash脚本或Windows的批处理文件。例如,执行Linux的`aaa.sh`脚本可以写为`System.getRuntime().exec("bash < aaa.sh")`。 2. **表示双引号** 在Java中,双引号(`"`)用于定义字符串,如果要在字符串中嵌入双引号,需要使用转义字符`\`,即`\"`。 3. **启动新线程** 在JSP中,由于JSP本身是在独立的线程中运行,可以通过创建新的`Thread`对象并调用`start()`方法来启动新的线程。如果需要自定义线程行为,线程对象应实现`Runnable`接口或直接继承`Thread`类。 4. **获取客户端IP地址** 通过`HttpServletRequest`对象的`getRemoteAddr()`方法,可以在JSP中获取到客户端的IP地址。 5. **程序与输出终止** 程序中止通常通过`return`语句实现,而输出终止则是通过关闭`PrintWriter`或`OutputStream`对象,如`out.close()`,它等同于ASP中的`Response.End`,停止当前页面的进一步输出。 6. **获取上一页URL** 使用`HttpServletRequest`的`getHeader("referer")`方法可以获取到用户从哪个页面跳转过来的URL。 7. **设置网页过期** 要实现网页过期,可以使用`HttpServletResponse`的`setHeader()`方法设置`Expires`头信息为负值或过去的时间,例如`response.setHeader("Expires","0")`。 8. **获取页面名称** 了解当前打开页面的名称,可以使用`HttpServletRequest`的`getRequestURI()`获取文件名,`getRequestURL()`获取完整的URL。 9. **保留表单数据** 当表单验证失败时,一种常见的做法是使用JavaScript的`history.go(-1)`来返回上一页,但这不会保留表单字段的值,特别是密码字段。要保留数据,通常需要服务器端处理,如使用session或redirect并附带参数。 10. **获取HTTP头信息** 通过`HttpServletRequest`的`getHeader(String headerName)`方法可以获取特定HTTP头信息。 11. **逻辑运算符的区别** `&&`是短路与操作符,如果第一个条件为假,不会评估第二个条件。而`&`始终评估两边的表达式,无论结果如何。 12. **绘制正弦曲线** 在Java图形编程中,可以重写`paint(Graphics g)`方法,利用`Math.sin()`函数绘制正弦曲线。例子中展示了如何在200个点上绘制星星,其Y坐标基于正弦函数。 13. **浮点数精度问题** 浮点数计算存在精度损失,例如`100.0 * 0.6`可能不精确等于`60.0`。这是由于二进制浮点数表示的局限性。为了确保精度,可以使用`BigDecimal`类进行高精度计算。 以上就是Java面试中的一些常见问题及其解答,这些问题覆盖了Java基础、JSP交互、网络请求、多线程等多个关键领域,对于准备Java面试的候选人来说,这些都是需要理解和掌握的知识点。