Java 每日一刊(第2期):搭建开发环境
文章目录
- JVM、JRE、JDK
- JVM(Java Virtual Machine,Java 虚拟机)
- JRE(Java Runtime Environment,Java 运行时环境)
- JDK(Java Development Kit,Java 开发工具包)
- JVM、JRE、JDK 的关系
- 安装 JDK
- 下载 JDK
- 配置环境变量
- 本期小知识
JVM、JRE、JDK
JVM(Java Virtual Machine,Java 虚拟机)
JVM 是 Java 平台的核心组件之一,它负责执行 Java 字节码(bytecode)。字节码是 Java 编译器生成的中间代码,独立于具体的硬件平台。JVM 的作用是将这些字节码转换为机器指令,使程序能够在不同的操作系统上运行。
JVM 的主要功能:
- 字节码执行:将编译后的
.class文件(字节码)解释或编译为机器代码,以便在操作系统上运行。 - 跨平台支持:通过 JVM,Java 程序可以在 Windows、Linux、MacOS 等不同操作系统上运行,这也是 Java 提倡的“一次编写,随处运行”(Write Once, Run Anywhere,WORA)的基础。
- 垃圾回收:JVM 自动管理内存分配和回收,确保程序的内存高效使用。
- 内存管理:JVM 负责程序的内存分配,包括栈(stack)、堆(heap)等区域的管理。
简单来说,JVM 是 Java 应用程序的运行引擎,它使得 Java 程序可以在不同的平台上运行,而无需重新编译。
JRE(Java Runtime Environment,Java 运行时环境)
JRE 是一个用于运行 Java 程序的环境,它包含 JVM 和 Java 核心类库。JRE 提供了运行 Java 应用程序所需的所有组件,但不包含开发工具(如编译器)。
JRE 的组成:
- JVM:负责执行 Java 字节码的虚拟机。
- 类库:Java 核心类库,包含了运行 Java 应用所需的各种标准类,如输入输出(I/O)、网络、集合、并发等。
- 运行时资源:支持 Java 应用程序的其他必要资源。
JRE 是用户运行 Java 应用程序所需的环境。如果你只是想运行 Java 应用,而不是开发或编译 Java 代码,安装 JRE 即可。
JDK(Java Development Kit,Java 开发工具包)
JDK 是 Java 开发工具包,是用于开发 Java 应用程序的完整软件开发环境。JDK 包含 JRE 以及一系列开发工具,包括 Java 编译器、调试工具等。
JDK 的组成:
- JRE:包含 JVM 和核心类库,用于运行 Java 程序。
- 编译器(javac):将 Java 源代码(.java 文件)编译为字节码(.class 文件)。
- 开发工具:如 javap(字节码反汇编器)、jdb(Java 调试器)、jar(打包工具)等,用于编译、调试和打包 Java 应用程序。
JDK 是开发人员用来编写、编译和调试 Java 应用程序的工具包。如果你是 Java 开发者,你需要安装 JDK。
JVM、JRE、JDK 的关系

JDK = JRE + 开发工具 (编译器、调试器等)
JRE = JVM + 类库和支持文件
JVM = 执行 Java 字节码的虚拟机
安装 JDK
下载 JDK
进入 JDK 官网下载页,选择一个长期支持的版本下载,本文以 JDK21 为例。

本文下载的是压缩版。JDK 下载成功之后将压缩文件解压到一个非中文目录。

配置环境变量
使用 WIN + r 快捷键调出运行窗口,在运行窗口输入 sysdm.cpl 命令并执行,调出系统属性窗口

切换至高级面板,点击环境变量

在系统变量新建 JAVA_HOME 变量

将 %JAVA_HOME%\bin 添加到 PATH 变量中

打开 CMD 命令行,执行 java --version 命令,出现以下信息表示环境变量配置成功

至此,Java 开发环境已搭建完成。
本期小知识
Java 的 JVM(Java 虚拟机) 是一项创新,它将 Java 编译成字节码,而不是编译成特定平台的机器码。这让 Java 程序可以在任何支持 JVM 的平台上运行,不受操作系统的限制。这是 Java 能跨平台运行的重要原因。
相关文章:
Java 每日一刊(第2期):搭建开发环境
文章目录 JVM、JRE、JDKJVM(Java Virtual Machine,Java 虚拟机)JRE(Java Runtime Environment,Java 运行时环境)JDK(Java Development Kit,Java 开发工具包)JVM、JRE、JD…...
探索EasyCVR与AI技术深度融合:视频汇聚平台的新增长点
随着5G、AI、边缘计算、物联网(IoT)、云计算等技术的快速发展,万物互联已经从概念逐渐转变为现实,AIoT(物联网人工智能)的新时代正在加速到来。在这一背景下,视频技术作为信息传输和交互的重要手…...
IBM中国研发部调整:全球化与本土化的新平衡
如何看待IBM中国研发部裁员? 近日,IBM中国宣布撤出在华两大研发中心,引发了IT行业对于跨国公司在华研发战略的广泛讨论。这一决定不仅影响了众多IT从业者的职业发展,也让人思考全球化背景下中国IT产业的竞争力和未来发展方向。面对…...
C++入门基础篇
引言 说到编程语言常常听到的就是C语言C Java 。C语言是面向过程的,C是和Java是面向对象的,那么什么是面向对象呢?什么又是面向过程呢?C是什么?封装、继承、多态是什么?且听我絮絮叨叨。 C入门基础 1.命名…...
Qt QListWidget 代码范例,以及Qt 天坑:setStyleSheet失效问题
一、坑之所在 1.写了StyleSheet的QString并进行了设置 this->setStyleSheet(styleSheet_M);2.注释后,将StyleSheet换到UI form里去,然后又手动清理了UI form里的StyleSheet 重新使用代码设置,此时代码设置失效了 二、根本解决 1.手动从…...
Unity AnimationClip详解(1)
【动画片段】 前文我们介绍了骨骼动画,在Unity中骨骼动画的部分静态数据存储在SkinedMeshRender中,而另一部分动态的关键帧数据就是存储在AnimationClip中的。 关键帧数据来自与FBX、OBJ等动画模型文件,可以在动画导入后的Animation选项卡中…...
在这12种场景下会使Spring事务失效--注意防范
在某些业务场景下,如果一个请求中,需要同事写入多张表的数据,但为了保证操作的原子性(要么同事插入数据成功,要么同事插入失败),例如,当我们创建用户的时候,往往会给用户…...
SOPC:Nios II Processor -> Vectors
Reset Vector——复位向量 Exception Vector——执行向量 两个向量地址都存储着程序 1.Reset Vector 当FPGA进行复位时,FPGA就重新开始执行程序,这时就需要从EPCS中读取程序。由于FPGA的程序存放在EPC…...
golang学习笔记11——Go 语言的并发与同步实现详解
推荐学习文档 基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总golang学习笔记01——基本数据类型golang学习笔记02——gin框架及基本原理golang学习笔记03——gin框架的核心数据结构golang学习笔记04——如何真正写好Golang代码&…...
关于汽车加油是加200还是加满的思考
车子快开了1万公里了,每个月保险会送一个200-15的加油优惠券,所以之前一直是每次加200的习惯, 最近突然觉得经常去加油很麻烦,而且很浪费时间, 需要重新评估一下, 一次加200 or 一次加300 or 一次加满&am…...
C# 去掉字符串最后一个字符的5种方法
C# 去掉字符串最后一个字符的 5 种方法 (1)Substring string original "Hello!"; string result original.Substring(0, original.Length - 1); Console.WriteLine(result); // 输出: Hello (2)Remove string o…...
[Redis] Redis中的String类型
🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…...
Transiting from CUDA to HIP(三)
一、Workarounds 1. memcpyToSymbol 在 HIP (Heterogeneous-compute Interface for Portability) 中,hipMemcpyToSymbol 函数用于将数据从主机内存复制到设备上的全局内存或常量内存中,这样可以在设备端的内核中访问这些数据。这个功能特别有用&#x…...
基于SpringBoot+Vue+MySQL的垃圾分类回收管理系统
系统展示 用户界面 管理员界面 系统背景 二十一世纪互联网的出现,改变了几千年以来人们的生活,不仅仅是生活物资的丰富,还有精神层次的丰富。在互联网诞生之前,地域位置往往是人们思想上不可跨域的鸿沟,信息的传播速度…...
游戏的3C,Al
在游戏开发中,“3C”通常指的是三个重要的组成部分:Character(角色)、Camera(摄像机)和Control(控制)。这三者对于创建沉浸式和流畅的游戏体验至关重要。而AI(人工智能&a…...
深度学习基础案例4--运用动态学习率构建CNN卷积神经网络实现的运动鞋识别(测试集的准确率84%)
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 前言 前几天一直很忙,一直在数学建模中,没有来得及更新,接下来将恢复正常这一次的案例很有意思:在学习动态调整…...
tekton pipeline workspaces
tekton pipeline workspace是一种为执行中的管道及其任务提供可用的共享卷的方法。 在pipeline中定义worksapce作为共享卷传递给相关的task。在tekton中定义workspace的用途有以下几点: 存储输入和/或输出在task之间共享数据secret认证的挂载点ConfigMap中保存的配置的挂载点…...
[git操作] git创建仓库上传github报错
操作流程如下 使用 git init使用 git remote add origin 项目ssh链接git add . 报错如下 Bus error (core dumped)然后执行任何别的操作都会报错: fatal: Unable to create path .. /.git/index.lock: File exists.Another git process seems to be running in …...
飞牛fnOS安装KDE桌面
飞牛fnOS安装KDE桌面 这段时间新出的nas系统飞牛os真不错,基于debian的可折腾性又高了不少,今天就来给这个系统装个桌面,插上显示器也能当个电脑自己进自己的管理界面,播放下视频,上上网啥的。 文章目录 飞牛fnOS安装…...
运维Tips | 如何安全的移除系统中旧的Linux内核?
[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ] 如何安全的删除系统中旧的 Linux 内核? 描述:如果更新了 Linux 操作系统,那么你会注意到,每次升级 Linux 内核后,GRUB 菜单都会添加一个新的引导条…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
