Java基础知识面试题目

preview
需积分: 0 23 下载量 5 浏览量 更新于2007-11-09 收藏 31KB DOC 举报
### Java基础知识面试题目详解 #### 一、Java基础知识 **1. Java基本数据类型与String** Java中的基本数据类型包括整数类型(`byte`, `short`, `int`, `long`),浮点类型(`float`, `double`),字符类型(`char`),布尔类型(`boolean`)。而`String`类并不是基本数据类型,它属于引用类型,用于表示文本字符串。基本数据类型在内存中直接存储值,而`String`对象则存储在堆内存中。 **2. 字符串操作** - **字符串反转**:通过`StringBuilder`或`StringBuffer`类的`append`方法和循环遍历字符串可以实现字符串的反转。 - **字符串替换**:使用`replace`或`replaceAll`方法可以实现字符串的替换功能。 **3. 数据类型转换** - **字符转数字**:使用`Character.getNumericValue(char)`可以将字符类型的数字转换为数值;使用`Integer.parseInt(String)`或`Double.parseDouble(String)`可以将字符串转换为`Integer`或`Double`类型。 - **数字转字符**:使用`Character.forDigit(int, int)`可以将数字转换为字符;使用`String.valueOf(int)`或`String.valueOf(double)`可以将数字转换为字符串。 - **四舍五入去小数点前两位**:使用`Math.round(double * 100.0) / 100.0`可以实现对浮点数的四舍五入并保留两位小数。 **4. 日期和时间** - **获取年月日、小时分秒**:在Java 8之前,使用`java.util.Date`和`Calendar`类可以获取这些信息;Java 8引入了新的日期时间API,如`LocalDate`和`LocalTime`,提供了更方便的方法来处理日期和时间。 - **获取毫秒数**:使用`System.currentTimeMillis()`可以直接获取从1970年1月1日00:00:00 GMT到当前时间的毫秒数。 - **格式化日期**:使用`java.text.SimpleDateFormat`类可以将日期对象格式化为字符串,也可以将字符串解析为日期对象。 **5. 数组和集合** - **数组**:固定大小的数据结构,用于存储同类型的数据。 - **集合**:如`List`、`Set`和`Map`,提供动态调整大小的容器,用于存储对象。 **6. 文件和目录(I/O)操作** - **列出目录下的文件和子目录**:使用`java.io.File`类的`listFiles()`方法可以列出目录下的所有文件和子目录。 - **判断文件或目录存在**:同样使用`File`类的`exists()`方法。 - **读写文件**:使用`java.io`包中的`InputStream`和`OutputStream`及其子类进行文件的读写操作。 **7. Java多态的实现** 多态性是面向对象编程的一个核心特性,可以通过继承和接口实现。在Java中,多态性通常通过继承和方法重写(覆盖)来体现,允许父类引用指向子类对象,从而达到运行时动态绑定的效果。 **8. 编码转换** 编码转换可以通过`new String(byte[], charsetName)`构造函数或`String.getBytes(charsetName)`方法来实现不同编码之间的转换。 **9. Java访问数据库** - **步骤**:加载驱动、建立连接、执行SQL语句、处理结果集、关闭资源。 - **Statement vs PreparedStatement**:`Statement`适用于静态SQL语句,`PreparedStatement`适用于预编译SQL语句,可以提高性能并防止SQL注入。 #### 二、JSP&Servlet技术 **1. JSP与Servlet的区别与联系** - **JSP**:主要用于表现层,可以嵌入HTML和JavaScript,适合动态页面展示。 - **Servlet**:主要用于逻辑层,处理业务逻辑和流程控制,更适合于后端数据处理和服务。 **2. HTML标记处理** 在Web开发中处理HTML标记时,需要对特殊字符(如`<`, `>`, `&`, `"`)进行转义,避免被误解析为HTML标签或属性。 **3. 客户端请求与路径获取** 在JSP中,使用`request.getParameter()`方法读取客户端请求参数;使用`pageContext.getRealPath("/")`获取JSP文件的真实路径。 **4. Cookie与Session** - **Cookie**:存储在客户端,用于记录用户信息。 - **Session**:存储在服务器端,用于跟踪用户的会话状态。 **5. JSP外部文件包含** - `<%@ include file="relativePath" %>`:静态包含,编译时合并。 - `<jsp:include page="relativePath" flush="true"/>`:动态包含,运行时加载。 **6. errorPage的作用** `errorPage`属性用于指定当发生异常时转向的错误页面。 **7. 使用JavaBeans** 通过`<jsp:useBean>`和`<jsp:setProperty>`等标签在JSP中使用JavaBeans,或者在Java脚本中直接操作JavaBeans对象。 **8. JSP标记库JSTL** JSTL提供了一套标准的标记库,用于简化JSP页面的开发,如`c:if`用于条件判断,`c:forEach`用于循环。 **9. 请求转发** - **JSP**:使用`<jsp:forward>`或`response.sendRedirect()`。 - **Servlet**:使用`RequestDispatcher.forward()`或`response.sendRedirect()`。 以上知识点涵盖了Java基础知识和JSP&Servlet技术的主要方面,对于准备面试或深入学习Java的开发者而言,掌握这些内容至关重要。
身份认证 购VIP最低享 7 折!
30元优惠券