一:Java的八大基本数据类型
略
二:JDK和JRE的区别
JDK(Java Development Kit)是 Java 开发工具包,是 Java 开发环境的核心组件,包含了 JRE、编译器(javac)、调试器、文档生成工具(Javadoc)等开发工具。而 JRE(Java Runtime Environment)是 Java 运行时环境,是运行 Java 程序的最小环境,包含了 Java 虚拟机(JVM)、Java 核心类库以及支持文件。简单来说,JDK 是为开发者提供的开发工具包,而 JRE 是为运行 Java 程序的用户提供的运行环境。若只需运行 Java 程序,只需安装 JRE;若要开发 Java 程序,则必须安装 JDK。
三:什么是反射
反射(Reflection)是 Java 语言的一个强大特性,它允许程序在运行时动态地获取类的信息(如类的方法、字段、构造函数等),并可以在运行时实例化对象、调用方法、访问或修改字段。通过反射,程序可以在运行时操作任意类或对象,而不需要在编译时知道这些类的具体信息。反射机制主要通过 Java 的java.lang.Class类、java.lang.reflect包下的类和接口实现。反射在框架开发(如 Spring、Hibernate)、测试工具、IDE 等场景中广泛应用,但由于反射涉及动态解析类,会降低性能,且可能破坏类的封装性,因此需谨慎使用。
四:什么是Java序列化
Java 序列化(Serialization)是指将 Java 对象转换为字节流的过程,以便将其存储到文件、数据库或通过网络传输。反序列化则是将字节流恢复为 Java 对象的过程。要实现序列化,类必须实现java.io.Serializable接口(这是一个标记接口,没有方法)。序列化主要用于分布式系统间的对象传输、对象的持久化存储(如缓存、会话管理)等场景。Java 提供了ObjectOutputStream和ObjectInputStream来实现对象的序列化和反序列化。需注意,静态变量和被transient关键字修饰的字段不会被序列化。
五:什么是线程和进程
进程(Process)是程序在操作系统中的一次执行过程,是系统进行资源分配和调度的基本单位。每个进程都有自己独立的内存空间、系统资源和执行上下文。而线程(Thread)是进程中的一个执行单元,是 CPU 调度和分派的基本单位。一个进程可以包含多个线程,这些线程共享进程的内存空间和系统资源,但每个线程有自己独立的程序计数器、栈和局部变量。线程间的通信比进程间的通信更高效、更简单。进程间相互独立,一个进程崩溃通常不会影响其他进程;而一个线程崩溃可能导致整个进程崩溃。线程又分为用户线程和守护线程,守护线程是为其他线程提供服务的线程(如垃圾回收线程),当所有用户线程结束时,守护线程会自动终止。
六:Spring的核心模块
-
Core Container(核心容器):包含
spring-core、spring-beans、spring-context、spring-context-support和spring-expression(SpEL)等模块,提供了 IoC(控制反转)和 DI(依赖注入)功能,是 Spring 框架的基础。 -
AOP(面向切面编程):包含
spring-aop和spring-aspects模块,提供了面向切面编程的支持,允许开发者在不修改原有代码的情况下增强功能(如事务管理、日志记录等)。 -
Data Access/Integration(数据访问 / 集成):包含
spring-jdbc、spring-tx(事务管理)、spring-orm(ORM 框架集成)、spring-oxm(XML 映射)和spring-jms(Java 消息服务)等模块,提供了数据访问和事务管理的支持。 -
Web:包含
spring-web、spring-webmvc(Spring MVC)、spring-webflux(响应式 Web 框架)和spring-websocket等模块,提供了 Web 应用开发的支持。 -
Test:包含
spring-test模块,提供了对单元测试和集成测试的支持。 -
其他模块:如
spring-messaging(消息传递)、spring-validation(验证)等。
七:SpringMVC的响应流程
- 客户端请求:客户端(如浏览器)发送 HTTP 请求到服务器。
- DispatcherServlet 接收请求:请求首先到达前端控制器
DispatcherServlet,它是 SpringMVC 的核心,负责请求的分发和处理。 - HandlerMapping 查找处理器:
DispatcherServlet通过HandlerMapping(处理器映射器)查找处理该请求的处理器(通常是一个 Controller 类的方法)。 - HandlerAdapter 调用处理器:找到处理器后,
DispatcherServlet通过HandlerAdapter(处理器适配器)调用处理器方法。 - 处理器处理请求:处理器方法执行相应的业务逻辑,可能会访问数据库或调用其他服务,然后返回一个
ModelAndView对象(包含视图名称和模型数据)。 - 视图解析:
DispatcherServlet通过ViewResolver(视图解析器)将逻辑视图名称解析为具体的视图对象(如 JSP、Thymeleaf 模板等)。 - 视图渲染:
DispatcherServlet将模型数据传递给视图对象,视图对象负责将数据渲染为 HTML 响应。 - 响应客户端:最终的 HTML 响应通过
DispatcherServlet返回给客户端。
2239

被折叠的 条评论
为什么被折叠?



