概念图
涵盖的一些基础概念汇总,图里没有涉及的,下面文字会说明;查了很多资料汇总的;有问题还希望大家及时指正!!!
JRE、JDK、JVM三者区别
JVM(Java Virtual Machine,Java虚拟机)
- JVM是Java程序运行的虚拟机,它负责将Java字节码(.class文件)转换为特定平台的机器码。JVM提供了Java程序的运行环境,使得Java具有“编写一次,处处运行”的特点。
- 它具有垃圾收集、内存管理等功能。
JRE(Java Runtime Environment,Java运行环境)
- JRE是Java程序运行所需的环境,它包含了JVM和Java类库(Java API),以及其他一些支持文件。用户只需安装JRE,就可以运行Java应用程序。
- JRE不包含开发工具,因此不能用来编写或编译Java程序。
JDK(Java Development Kit,Java开发工具包)
- JDK是开发Java应用程序的工具包,包含了JRE、JVM以及开发Java程序所需的编译器(javac)、调试工具等。它是给开发者用的,提供了开发、编译、调试和执行Java程序的全部功能。
- JDK是最全面的Java软件包,适合于需要开发和测试Java应用程序的用户。
总结:
- JVM 是负责执行Java字节码的虚拟机。
- JRE 是包含JVM及Java类库的运行环境,适用于运行Java程序。
- JDK 则是开发Java程序的工具包,包含JRE和开发工具。
Java SE、Java EE、Java ME的概念和区别
Java SE(Java Standard Edition)
- 概念:Java SE是Java的标准版,提供了基本的Java编程语言和核心类库。它适用于开发桌面应用程序、简单的服务器端应用程序以及其他一些基础的Java应用。
- 功能:Java SE包含了Java语言的所有基本特性,以及广泛的类库,如集合框架、输入输出、线程、图形用户界面等。
- 使用场景:常用于开发桌面软件、命令行工具、小型应用程序等。
Java EE(Java Enterprise Edition)
- 概念:Java EE是Java的企业版,建立在Java SE之上,专为开发企业级应用程序而设计。它提供了一套丰富的API和运行环境,用于构建大型、分布式、多层次的应用程序。
- 功能:Java EE包括了一系列扩展功能,如Servlet、JSP(Java Server Pages)、EJB(Enterprise JavaBeans)、JPA(Java Persistence API)、Web服务等,支持企业级需求。
- 使用场景:广泛应用于大型企业应用、电子商务平台、复杂的Web应用、分布式系统等。
Java ME(Java Micro Edition)
- 概念:Java ME是Java的微型版,特别设计用于资源受限的设备和嵌入式系统,如手机、智能卡、嵌入式设备等。
- 功能:Java ME提供了一组适合小型设备的类库,支持网络连接、用户界面、存储等。它的API相对较少,开发环境也比较轻量。
- 使用场景:主要用于开发移动应用、嵌入式设备应用等。
总结区别
| 特性 | Java SE | Java EE | Java ME |
|---|---|---|---|
| 目标用户 | 普通开发者 | 企业开发者 | 嵌入式系统开发者 |
| 应用范围 | 桌面应用、简单应用 | 企业级、大型分布式应用 | 移动应用、嵌入式设备应用 |
| 提供的API | 核心类库 | 扩展的企业级API | 轻量级API |
| 运行环境 | 本地环境 | 企业应用服务器(如Tomcat) | 嵌入式设备环境 |
常见的架构模式
1. C/S(Client/Server,客户端/服务器)架构
-
概念:在C/S架构中,应用程序被分为客户端和服务器两部分,客户端负责用户界面和一些业务逻辑,服务器则处理数据存储和管理。
-
特点:
- 客户端可以是桌面应用,通常通过网络与服务器进行通信。
- 适合处理复杂的业务逻辑和大数据量的应用,性能相对较好。
-
使用场景:文件共享、数据库管理系统、企业内部应用等。
2. MVP(Model-View-Presenter,模型-视图-演示者)架构
-
概念:MVP是一种软件架构模式,将应用程序分为模型、视图和演示者三个部分,以实现更好的分离关注点。
-
特点:
- 模型:负责业务逻辑和数据处理。
- 视图:负责显示数据和用户界面。
- 演示者:充当模型和视图之间的中介,处理用户输入。
-
使用场景:常用于桌面应用和移动应用的开发。
3. MVC(Model-View-Controller,模型-视图-控制器)架构
-
概念:MVC是一种常见的设计模式,将应用程序分为模型、视图和控制器三个部分。
-
特点:
- 模型:封装数据和业务逻辑。
- 视图:负责展示模型的数据。
- 控制器:处理用户输入并更新模型和视图。
-
使用场景:广泛应用于Web开发和桌面应用开发。
4. Microservices(微服务)架构
-
概念:微服务架构将应用程序拆分为多个小的服务,每个服务独立运行,负责特定的业务功能。
-
特点:
- 每个服务可以使用不同的技术栈,可以独立部署和扩展。
- 更易维护和测试,适合大规模应用的开发。
-
使用场景:适用于复杂的企业应用和需要高可用性的系统。
5. SOA(Service-Oriented Architecture,服务导向架构)
-
概念:SOA是一种设计思想,通过将应用程序功能划分为相互独立的服务,使得系统更加灵活。
-
特点:
- 服务之间通过标准协议(如SOAP、REST)进行通信。
- 服务通常是松耦合的,可以独立开发和部署。
-
使用场景:适用于需要系统交互和组件重用的大型企业系统。
6. Event-Driven Architecture(事件驱动架构)
-
概念:事件驱动架构基于事件的产生和处理,将系统的各个组件通过事件进行解耦。
-
特点:
- 当发生特定事件时,触发相应的处理逻辑。
- 有助于提高系统的响应性和可扩展性。
-
使用场景:适合需要实时处理和响应的应用,如消息队列系统、实时数据处理等。
7. B/S(Browser/Server,浏览器/服务器)体系架构
主要用于Web应用程序的开发与部署。它的核心思想是将应用程序的逻辑分为两部分:客户端和服务器。
B/S架构的组成部分
-
客户端(Browser) :
- 客户端通常是用户的Web浏览器(如Chrome、Firefox、Safari等),用户通过浏览器访问和使用Web应用。
- 客户端负责用户界面的展示和用户输入的处理,向服务器发送请求并接收响应。
- 由于应用的逻辑和数据主要在服务器端,因此客户端的实现相对简单,使用HTML、CSS和JavaScript等技术进行开发。
-
服务器(Server) :
- 服务器通常是Web服务器(如Tomcat、Nginx、Apache等),运行在远程机器上。
- 服务器负责处理来自客户的请求,执行业务逻辑,并访问数据库或其他数据源。然后将处理结果返回给客户端。
- 服务器端通常使用Java、Python、PHP、Node.js等技术栈来实现业务逻辑。
-
B/S架构的特点
- 简化客户端:客户端不需要安装复杂的软件,只需一个浏览器即可使用应用程序,降低了客户端维护和升级的复杂性。
- 集中管理:服务器端集中管理应用的逻辑和数据,便于更新和维护,所有用户都可以及时访问到最新的版本。
- 跨平台:由于浏览器具有良好的跨平台能力,用户可以使用不同的操作系统和设备访问应用程序。
- 可扩展性:可以根据需求动态扩展服务器资源,以支撑更多用户的访问。
- B/S架构的工作流程
- 用户在客户端输入信息并通过浏览器发起请求(如点击链接、提交表单等)。
- 请求通过网络被发送到服务器。
- 服务器接收请求,调用相应的处理逻辑,可能还需要访问数据库或其他服务。
- 服务器处理完请求后,将结果(如HTML页面、JSON数据等)返回给客户端。
- 客户端接收响应并更新用户界面。
- B/S架构的应用场景
- Web应用程序:如企业管理系统、在线商城、社交媒体平台等。
- 移动Web应用:通过手机浏览器访问的应用程序。
- 云服务:如在线办公软件、数据分析平台等。
B/S架构是一种高效、灵活的Web应用开发模式,通过利用浏览器和服务器的分工,使得应用的开发、维护和升级变得更加简便和高效。随着互联网的发展,B/S架构广泛应用于各种Web和移动应用程序中。
总结
不同的架构有不同的设计理念和应用场景,选择合适的架构可以提高系统的可维护性、可扩展性和性能。这些架构的灵活性使得开发者可以根据特定需求进行设计和实现。
关键字(Keywords)
Java的关键字主要用于定义程序结构、控制流、数据类型和其他语言特性,包括但不限于:
-
数据类型:
intfloatdoublecharboolean
-
控制流:
ifelseswitchcaseforwhiledobreakcontinuereturn
-
访问修饰符:
publicprivateprotected
-
类和对象:
classinterfaceextendsimplementsnewthissuper
-
异常处理:
trycatchfinallythrowthrows
-
其他:
voidstaticfinalsynchronizedvolatilenativeabstractstrictfp
保留字(Reserved Words)
保留字是指在Java中被预留,虽然它们不会用于特定语义,但仍然不能用作标识符。实际上,Java中的所有关键字都是保留字。
不可用的标识符
使用以下保留字或关键字将导致编译错误:
- 任何列出的关键字(如
class、public等)