### JAVA面试题全集知识点概览 #### 一、Java基础知识 1. **Java基本数据类型** Java中有八种基本数据类型:byte、short、int、long、float、double、char 和 boolean。`String` 不是基本数据类型,而是一个类。基本数据类型直接存储值,而 `String` 存储的是对象引用。 2. **字符串的操作** - 字符串反转可以通过循环遍历字符串并逐个拼接字符来实现。 - 字符串替换可以通过 `replace` 方法或正则表达式实现。 3. **数据类型之间的转换** - 将数值型字符转换为数字:可以使用 `Integer.parseInt()` 或 `Double.parseDouble()`。 - 将数字转换为字符:可以使用 `Character.toString()`。 - 取小数点前两位并四舍五入:使用 `Math.round()` 结合适当的乘法和除法操作。 4. **日期和时间** - 获取当前日期和时间的年月日、小时分秒:使用 `java.util.Calendar` 或 `java.time` 包中的类。 - 获取从1970年到现在的毫秒数:使用 `System.currentTimeMillis()`。 - 获取某个日期是否是当月的最后一天:可以使用 `java.time.LocalDate` 类的方法。 - 格式化日期:使用 `java.text.SimpleDateFormat` 或 `java.time.format.DateTimeFormatter`。 5. **数组和集合** - 数组是固定长度的数据结构,用于存储相同类型的元素。 - 集合框架包括 `List`、`Set` 和 `Map` 接口,它们提供了动态增长和管理元素的方法。 6. **文件和目录(I/O)操作** - 使用 `java.io.File` 类来列出目录下的所有文件或子目录。 - 检查文件或目录是否存在:使用 `File.exists()`。 - 文件的读写可以通过 `java.io.BufferedReader` 和 `java.io.BufferedWriter` 实现。 7. **Java多态的实现** - 多态可以通过继承和接口实现。 - 方法重载(Overloading)是指在同一类中可以定义多个同名方法但参数列表不同。 - 方法覆盖(Overriding)是在子类中重新定义父类中的方法。 8. **编码转换** - 将 GB2312 编码的字符串转换为 ISO-8859-1 编码:使用 `String.getBytes("GB2312")` 转为字节数组,然后使用 `new String(bytes, "ISO-8859-1")` 转换回字符串。 9. **Java中访问数据库** - 使用 JDBC 连接数据库的基本步骤包括加载驱动、建立连接、执行SQL语句等。 - `Statement` 是基本的 SQL 执行接口,`PreparedStatement` 提供了预编译的功能,可以提高性能和安全性。 10. **代码审查** - 对于提供的代码片段,需要具体分析具体的代码才能指出可能存在的问题。 #### 二、JSP&Servlet技术 1. **JSP与Servlet的区别** - JSP 主要用于页面展示,而 Servlet 更侧重于业务逻辑处理。 - 共同点在于它们都是基于 Java 的 Web 技术,可以在服务器端运行。 - 应用范围:JSP 通常用于动态网页生成,Servlet 用于处理客户端请求。 2. **处理 HTML 标记** - 在处理 HTML 标记时,需要使用转义字符或编码来避免安全问题。 3. **JSP中读取客户端请求** - 使用 `HttpServletRequest` 对象的 `getParameter()` 方法来获取客户端发送的数据。 - 访问 CGI 变量通常不是 JSP 的标准做法,但在某些情况下可以使用 `request.getQueryString()`。 - 确定 JSP 文件的真实路径可以使用 `pageContext.getRealPath("/")`。 4. **Cookie与Session的作用** - Cookie 存储在客户端,用于跟踪用户信息。 - Session 存储在服务器端,用于维护用户的会话状态。 - Session 工作原理涉及生成唯一的会话 ID,并将其保存在客户端的 Cookie 中。 5. **Jsp中包含外部文件** - 可以使用 `<%@ include file="..."%>` 或 `<jsp:include page="..." flush="true" />`。 6. **Jsp中 errorPage 的作用** - `errorPage` 属性用于指定当出现异常时应转向的页面。 7. **Jsp中使用 JavaBeans** - JavaBeans 是一种 Java 组件模型,用于封装数据和行为。 8. **JSP的标记库** - JSP 标记库提供了一系列可重用的标签,用于简化 JSP 页面的开发。 9. **请求转发** - JSP 和 Servlet 中都支持请求转发,通过 `RequestDispatcher.forward(request, response)` 方法实现。 #### 三、J2EE相关知识 1. **J2EE、J2SE、J2ME的区别** - J2EE 是企业级 Java 平台,主要用于开发大型应用系统。 - J2SE 是标准版 Java 平台,适用于桌面应用。 - J2ME 是移动版 Java 平台,用于开发移动设备上的应用。 2. **J2EE技术** - J2EE 提供了一套完整的技术栈,包括 EJB、JSP、Servlet、JDBC 等。 3. **ApplicationServer** - Application Server 是运行 J2EE 应用程序的容器,提供了部署、管理和优化应用的功能。 4. **连接池** - 连接池是一种数据库连接管理技术,可以提高应用程序的性能和响应速度。 5. **Web.xml的作用** - `web.xml` 是 Web 应用程序的配置文件,用于配置应用的上下文参数、监听器等。 #### 四、其他 1. **Web安全性** - 表单验证、浏览器 Basic 验证等方式确保数据安全。 - SSL 提供了加密传输机制。 - 应用程序的安全性包括权限控制、输入验证等。 2. **MVC** - MVC (Model-View-Controller) 是一种设计模式,用于分离数据模型、视图和控制器。 3. **XML** - XML 是一种标记语言,用于存储和传输数据。 4. **文档和编码规范** - 编码规范确保代码的一致性和可读性。 5. **分页和效率考虑** - 分页技术可以减少每次请求的数据量,提高性能。 6. **Struts** - Struts 是基于 MVC 的 Java Web 框架,用于快速开发 Web 应用。 7. **MDA** - MDA (Model Driven Architecture) 是一种软件开发方法论,强调使用模型进行设计和开发。 8. **TCP与UDP的区别** - TCP 是面向连接的传输层协议,提供可靠的数据传输服务。 - UDP 是无连接的传输层协议,提供尽力而为的服务。 9. **链表与散列表和数组的区别** - 链表适合频繁插入删除,但随机访问较慢。 - 散列表适合查找操作,但可能会有哈希冲突。 - 数组适合随机访问,但插入删除操作较慢。 10. **堆和栈的区别** - 堆用于动态分配内存,由垃圾回收器管理。 - 栈用于存储局部变量和方法调用信息,随方法调用自动分配和释放。 11. **EJB分类及区别** - Session Bean 处理客户端请求,Entity Bean 用于持久化数据。 - Stateful Session Bean 维护会话状态,Stateless Session Bean 不保存状态。 12. **Synchronized** - `synchronized` 关键字用于实现同步控制,保证多线程环境下的数据一致性。 13. **String和StringBuffer** - `String` 不可变,`StringBuffer` 可变且线程安全。 14. **Serializable** - `Serializable` 接口用于实现对象序列化。 15. **MVC (Struts的工作流程)** - Struts 的工作流程涉及 ActionServlet、ActionForm、Action 和 View。 16. **路由协议种类及特点** - RIP、OSPF 和 BGP 等是常见的路由协议,每种协议都有其特定的应用场景。 17. **AWT和Swing组件的GUI设计** - AWT 是早期的 GUI 库,Swing 是其增强版本,提供了更多的组件和更好的跨平台支持。 18. **AWT与Swing的区别** - Swing 组件基于 Java,而 AWT 组件依赖于本地图形库。 - Swing 提供了更丰富的功能和更好的外观自定义选项。 19. **事件处理模式** - Java 的事件处理模式通常采用监听器模式,通过注册监听器来处理事件。 20. **Applet的安全权限** - Applet 运行在一个沙箱环境中,限制了其对本地资源的访问。 21. **逻辑操作与条件操作的区别** - 逻辑操作 (`&`, `|`) 会计算两边的操作数。 - 条件操作 (`&&`, `||`) 在某些情况下可以短路计算。 22. **JavaServerPage和Servlet的联系和区别** - JSP 和 Servlet 都用于处理客户端请求,但 JSP 更侧重于页面展示。 - JSP 最终会被编译成 Servlet。 23. **Synchronized与Lock的异同** - `synchronized` 是内置关键字,而 `Lock` 是接口。 - `Lock` 提供了更灵活的锁定机制。 24. **EJB规范规定EJB中禁止的操作** - EJB 规范中禁止的操作包括直接使用 `Thread` 和 `Thread.sleep` 等。 25. **Java虚拟机中的非基本类型** - Java 虚拟机中还包括 `reference` 类型,用于表示对象引用。 26. **创建实例的方式** - 除了使用 `new` 关键字之外,还可以通过反射、克隆等方法创建对象实例。 27. **ClassLoader加载方式的区别** - 不同的 ClassLoader 在加载类时遵循不同的顺序和策略。
- 粉丝: 1
- 资源: 32
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于C语言的系统服务框架.zip
- (源码)基于Spring MVC和MyBatis的选课管理系统.zip
- (源码)基于ArcEngine的GIS数据处理系统.zip
- (源码)基于JavaFX和MySQL的医院挂号管理系统.zip
- (源码)基于IdentityServer4和Finbuckle.MultiTenant的多租户身份认证系统.zip
- (源码)基于Spring Boot和Vue3+ElementPlus的后台管理系统.zip
- (源码)基于C++和Qt框架的dearoot配置管理系统.zip
- (源码)基于 .NET 和 EasyHook 的虚拟文件系统.zip
- (源码)基于Python的金融文档智能分析系统.zip
- (源码)基于Java的医药管理系统.zip