一次搞懂JDK、JRE、JVM、java EE、java SE

本文详细介绍了Java开发工具包JDK、Java运行环境JRE以及Java虚拟机JVM之间的关系,强调了JDK包含JRE和开发工具。同时,阐述了JavaSE、JavaEE的用途和区别,JavaEE适用于企业级开发,而JavaSE则主要针对桌面和服务器应用。此外,还提到了JDK的不同版本,如JavaEE、JavaSE和JavaME,以及它们在不同平台的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、名词解释

图解

  • JDK
    Java Development Kit,Java 软件开发工具包。
  • JRE
    Java Runtime Environment,Java 运行环境。
  • JVM
    Java Virtual Machine,Java 虚拟机。

二、JDK的版本

  • Java EE
    Java Enterprise Edition,Java 企业版
    使用这种JDK开发J2EE应用程序,从JDK 5.0开始,改名为Java EE。
  • Java SE
    Java Standard Edition,Java 标准版
    是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE。
  • Java ME
    Java Micro Edition,Java 微型版
    主要用于移动设备、嵌入式设备上的java应用程序,从JDK 5.0开始,改名为Java ME。

三、JDK、JRE、JVM的关系

关系图

  • JDK是提供给Java开发人员使用的,包含了JRE和一些Java开发工具,如编译工具(javac.exe)、打包工具(jar.exe)等。所以安装了JDK就不需要再安装JRE了。作为Java语言的学习者,我们必须安装JDK,没有JDK,我们是没有办法编译和运行Java代码的。

  • JRE包括Java虚拟机和Java程序所需的核心类库。如果要想运行一个开发好的Java程序,只需要在计算机中安装JRE即可。

  • JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。编译虚拟机的指令集与编译微处理器的指令集非常类似。
    JVM是Java语言跨平台(这里的“平台”是指不同的操作系统)的基础,要想在不同的操作系统上运行Java程序,就需要在不同操作系统上安装对应的JVM。所以,JVM有Windows版本、MAC版本、Linux版本等。

总结:
JDK = JRE + Java开发工具
JRE = JVM + Java类库

四、JavaSE、JavaEE的区别

JavaEE:Java Enterprise Edition,Java企业版。
多用于企业级开发,包括web开发等等。企业版本帮助开发和部署可移植、健壮、可伸缩切安全的服务端Java应用。Java EE是在JavaSE的基础上构建的他提供Web 服务、组建模型、管理和通信API.可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和web2.0应用程序。

JavaSE:通常是指Java Standard Edition,Java标准版。
就是一般Java程序的开发就可以(如桌面程序),可以看作是JavaEE的子集。它允许开发和部署在桌面、服务器、嵌入式环境和实施环境中使用的Java应用程序。JavaSE 包括支持Java Web服务开发的类,并为Java Platform,Enterprise Edition(Java EE)提供基础。

### 实现多块正泰DDSU666电表通信的方法及协议 对于正泰DDSU666电表,由于其基于Modbus通信协议工作,并且无法通过按钮设置通讯参数[^2],因此实现多个电表之间的通信主要依赖于外部编程配置以及遵循特定的通信标准。 #### 1. 使用RS485总线构建网络拓扑结构 为了使多台DDSU666电表能够相互通信,通常采用RS485接口来建立连接。根据DL/T645 - 2007《多功能电能表通信协议》,RS485端口默认使用的波特率为2400bps[^1]。这意味着所有接入同一RS485链路中的设备都应保持一致的数据传输速率以确保正常交互。 #### 2. 配置每一块电表地址唯一性 在同一个物理介质上的各个节点之间要区分彼此,则需给定唯一的站址(Slave ID)。这一步骤往往需要借助专门开发的上位机软件完成初始化设定;当涉及到大量相同型号仪表时尤为必要。具体来说: - 开发者可以利用PC或者其他控制单元作为主站(master),向各子站(slave)发送命令帧; - 子站在接收到合法请求后返回响应数据包; - 主站依据预先定义好的逻辑解析这些反馈信息并作出相应处理。 #### 3. 编写适用于批量修改的操作程序 针对大规模部署场景下可能存在的效率问题,建议编写自动化脚本来简化重复性的配置任务。该工具应当具备如下功能特性: - 支持自动扫描在线状态下的目标设备列表; - 提供图形界面让用户直观地查看当前已连入系统的全部成员及其属性详情; - 可自动生成用于更改指定项(如波特率、校验方式等)所需的标准报文格式; ```python import minimalmodbus as mm def set_device_address(port, old_addr, new_addr): instrument = mm.Instrument('/dev/ttyUSB' + str(port), int(old_addr)) instrument.serial.baudrate = 2400 instrument.write_register(0x0100, new_addr) for i in range(start_port_number, end_port_number+1): try: set_device_address(i, initial_address_value, desired_new_address) print(f"Successfully updated address of device on port {i}") except Exception as e: print(e) ``` 上述Python代码片段展示了如何使用`minimalmodbus`库改变单个或一系列相连电表的从站ID号。实际应用过程中可根据项目需求调整函数内部细节部分。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值