JDK、JRE、JVM的区别&&java的基本数据类型

说一说JDK、JRE、JVM的区别在哪?

JDK:

Java Delopment kit是java工具包,包含了编译器javac,调试器(jdb)以及其他用于开发和调试java程序的工具。JDK是开发人员在开发java应用程序时候所需要的的基本工具。
JRE:

Java Runtime Enviroment是java运行环境,包含了用于执行java程序的运行时库(java API)以及java虚拟机(JVM)。JRE只是用于运行java程序而不包含开发工具。
JVM:

Java Virtual Machine是Java虚拟机是一种能够执行java字节码的虚拟机。JVM是将java代码翻译成机器码并在计算机上执行的关键组件。它负责加载字节码,执行字节码并进行垃圾回收等任务。JVM是java跨平台特性的基础,它使得java程序能够在不同的操作系统和硬件上运行。

补充:我们首先要知道什么是字节码?在java中jvm可以理解的代码就是字节码就是所谓的.class文件,我们写的java源文件都是.java文件。我们来看下java程序的过程(采用javaguide的图来说明)。

过程就是由.java文件经过javac编译(这个javac编译工具上文提到包含在jdk之中)然后变为.class文件(也就是字节码文件)后经过解释器和JIT转变为机器可理解的代码。这一步的详细过程是JVM类加载器首先加载.class文件,然后解释器逐行解释执行,这种方式的执行速度相对来说较慢,后来引进了JIT编译器。JIT进行第一次编译时候会将对应的机器码保存下来,以供下次使用。,机器码的运行效率肯定是高于 Java 解释器的。这也解释了我们为什么经常会说 Java 是编译与解释共存的语言 。

java的基本数据类型

java的基本数据类型共有八种。

byte 一字节,表示范围由-128到127 默认值0

short 二字节 默认值0

int 四字节 默认值0

long 八字节 默认值0

double 八字节 0d

float 四字节 0f

char 二字节 'u0000'

boolean 一位 false

注意:java使用long类型时候必须加上L否则将会作为整数解析。使用float时候也要在后面加上f或者F否则无法通过编译。

相关推荐
caimouse24 分钟前
ReactOS 窗口系统分析(14):计时器/属性/加速键/热键 — timer.c + prop.c + accelerator.c + hotkey.c
c语言·开发语言·reactos
circuitsosk31 分钟前
Python 模块与包管理:import 机制、虚拟环境与 pip 完全指南
开发语言·python·pip·依赖管理·模块与包
就叫飞六吧31 分钟前
两道门:X-Frame-Options 和 SameSite 到底谁管什么
开发语言·chrome·ai编程
fl1768311 小时前
基于C#WPF实现的内存加速球清理类似360加速球内存清理
开发语言·c#·wpf
weixin_440730501 小时前
python+request实现接口-小结
开发语言·python
QQ_21696290961 小时前
【项目编号:project95315】SpringBoot公共自习室管理系统:座位预约、房间管理、签到核销、公告规则完整实战
java·spring boot·后端
ZJU_统一阿萨姆1 小时前
【算子开发】扫描(Scan)与前缀和
开发语言·arm开发·架构·系统架构·硬件架构
-凌凌漆-1 小时前
【C语言】结构体typedef struct与struct的区别
c语言·开发语言
嵌入式阿蔡1 小时前
面试高频考点 01:volatile / 中断 / 堆栈 八股精讲
java·面试·职场和发展·嵌入式实时数据库
秋饼2 小时前
LangChain4j + Java 实现企业级 Text-to-SQL 智能问数系统:从自然语言到安全可控的数据洞察
java·ai·技术分享·后端开发