JavaSE | 初识Java(一) | JDK \ JRE \ JVM

Java初识

Java 是一门半编译型、半解释型语言。先通过  javac  编译程序把源文件进行编译,编译后生成的  .class  文件是由字节 码组成的平台无关、面向 JVM  的文件。最后启动  java 虚拟机 来运行  .class  文件,此时  JVM  会将字节码转换成平台能够理解的形式来运行。
注意:在运行 Java 程序前,必须先安装好 JDK(Java Development Kit Java 开发工具包 ) JDK 里面就包含了 javac 和 java工具, Java 程序最终是在 JVM(Java 虚拟机 ) 中运行的。

JDK,JRE,JVM之间的关系

JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。

  JDK包含的基本组件包括:

  •   javac – 编译器,将源程序转成字节码
  •   jar – 打包工具,将相关的类文件打包成一个文件
  •   javadoc – 文档生成器,从源码注释中提取文档
  •   jdb – debugger,查错工具
  •   java – 运行编译后的java程序(.class后缀的)
  •   appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。
  •   Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
  •   Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
  •   Jconsole: Java进行系统调试和监控的工具

JRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。

 包括两部分:

      Java Runtime Environment

  •               是可以在其上运行、测试和传输应用程序的Java平台。
  •               它包括Java虚拟机(jvm)、Java核心类库和支持文件。
  •               它不包含开发工具(JDK)--编译器、调试器和其它工具。
  •               JRE需要辅助软件--Java Plug-in--以便在浏览器中运行applet。

      Java Plug-in

  •                允许Java Applet和JavaBean组件在使用Sun的Java Runtime Environment(JRE)的浏览器中运行,而不是在使用缺省的Java运行环境的浏览器中运行。
  •                Java Plug-in可用于Netscape Navigator和Microsoft Internet Explorer。

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

        引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。

总结:

JDK 开发中用

JRE 运行时用

JVM 解决了跨平台:把class文件编译成别的平台认可的文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/146950.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

docker-compose 网络配置- IP 主机名 hosts配置

docker-compose 配置IP、hostname、hosts配置 配置IP version: "3" networks:bd-network: # 声明网络external: true services:kafka: # 服务名称networks:bd-network: # 连接的网络名称ipv4_address: 172.2.0.102 # 配置IP配置 主机名 version: "3&quo…

python之股票财务分析

#import akshare as ak import pandas as pd import matplotlib.pyplot as plt symbol1"资产负债表" symbol2"利润表" symbol3"现金流量表" #df1ak.stock_financial_report_sina(stock"601633",symbolsymbol1) #df2ak.stock_financial…

检测防火墙是否开启、判断程序是否加入防火墙白名单(附源码)

VC常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/124272585C软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...&a…

车牌超分辨率:License Plate Super-Resolution Using Diffusion Models

论文作者:Sawsan AlHalawani,Bilel Benjdira,Adel Ammar,Anis Koubaa,Anas M. Ali 作者单位:Prince Sultan University 论文链接:http://arxiv.org/abs/2309.12506v1 内容简介: 1)方向:图像超分辨率技术…

Java栈的压入、弹出序列(详解)

目录 1.题目描述 2.题解 方法1 方法2 1.题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序…

凉鞋的 Unity 笔记 104. 测试所涉及的窗口

104. 测试所涉及的窗口 在上一篇,笔者简单介绍了检视器窗口,如图所示: 我们接着介绍上图中的最后一个部分内容,测试部分。 测试部分我们只做了一件非常简单的操作,就是点击了一下运行按钮,查看结果&#…

行为型设计模式——责任链模式

摘要 责任链模式(Chain of responsibility pattern): 通过责任链模式, 你可以为某个请求创建一个对象链. 每个对象依序检查此请求并对其进行处理或者将它传给链中的下一个对象。 一、责任链模式意图 职责链模式(Chain Of Responsibility) 是一种行为设…

c语言练习73:统计位数为偶数的数字

统计位数为偶数的数字 给你⼀个整数数组 nums ,请你返回其中位数为 偶数 的数字的个数。 • ⽰例 1: 输⼊:nums [12,345,2,6,7896] 输出:2 解释: 12 是 2 位数字(位数为偶数) 345 是 3 位…

Python 数据分析与挖掘(一)

Python 数据分析与挖掘(数据探索) 数据探索 1.1 需要掌握的工具(库) 1.1.1 Nump库 Numpy 提供多维数组对象和各种派生对象(类矩阵),利用应用程序接口可以实现大量且繁琐的数据运算。可以构建…

【Java 进阶篇】MySQL 多表查询详解

MySQL 是一个强大的关系型数据库管理系统,多表查询是数据库操作中的重要部分之一。多表查询允许您从多个表中检索和操作数据,以满足复杂的数据需求。本文将介绍 MySQL 多表查询的基本概念、语法和示例,以及一些常见的多表查询场景。 什么是多…

SpringCloud篇

SpringCloud五大组件是啥? rabbin gateway feign 注册中心(nacos,Eureka),服务保护 (sentinel) ; nacos和eureka的区别是什么? 负载均衡是如何实现的?? ribbon负载策略…

【数据结构】排序之插入排序和选择排序

🔥博客主页:小王又困了 📚系列专栏:数据结构 🌟人之为学,不日近则日退 ❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、排序的概念及其分类 📒1.1排序的概念 📒1.2排序…

朝气蓬勃 后生可畏

介绍: 线段树是一棵二叉搜索树,思想与分治很想,把一段区间平分平分再平分,平分到不能平分为止,可以进行方便的区间修改和区间查询,当然,树状数组能做的单点修改、单点查询,线段树也可以更好地实现,总之,线段树是树状数组的升级版,此外,线段树能做的平衡树也能做,但…

Ubuntu镜像源cn.arichinve.ubuntu.com不可用原因分析和解决

文章目录 Ubuntu查看系统版本Ubuntu更新系统不能更新Ubuntu查看APT更新源配置cn.archive.ubuntu.com已经自动跳转到清华镜像站Ubuntu变更镜像源地址备份原文件批量在VIM中变更 Ubuntu国内镜像站推荐推荐阅读 今天想要在Ubuntu环境下搭建一个测试环境,进入Ubuntu系统…

2023年10月报价:腾讯云服务器租用价格表_轻量_CVM_GPU

阿里云服务器10月报价表来了,和9月份价格差不多,再等一个月就到腾讯云双十一优惠活动了,腾讯云百科先来说说10月腾讯云服务器优惠价格表:轻量应用服务器2核2G3M带宽95元一年、2核4G5M带宽218元一年、2核2G4M带宽三年价540元一年、…

【算法系列篇】哈希表

文章目录 前言1. 两数之和1.1 题目要求1.2 做题思路1.3 Java代码实现 2. 判断是否为字符重排2.1 题目要求2.2 做题思路2.3 Java代码实现 3. 存在重复元素3.1 题目要求3.2 做题思路3.3 Java代码实现 4. 存在重复元素II4.2 题目要求4.2 做题思路4.3 Java代码实现 5. 字母异位词分…

javascript: Sorting Algorithms

// Sorting Algorithms int JavaScript https://www.geeksforgeeks.org/sorting-algorithms/ /** * file Sort.js * 1. Bubble Sort冒泡排序法 * param arry * param nszie */ function BubbleSort(arry, nszie) {var i, j, temp;var swapped;for (i 0; i < nszie - 1; i)…

【算法】动态规划

文章目录 概述背包问题01背包问题&#xff1a;代码示例部分背包代码示例 完全背包代码示例 多重背包代码示例 总结提升 概述 动态规划&#xff08;Dynamic Programming&#xff09;是一种通过将问题划分为相互重叠的子问题来解决问题的算法思想。其核心思想是通过保存已经计算…

网络工程师怎么才算学好

学网络工程师怎么样才算学好&#xff1f;这个朋友他说他现在准备跟我学这个网络工程师。他说他理解的网络工程师就是要不断的在技术上进行积累&#xff0c;至于产品还有客户&#xff0c;他不知道该怎么样以后去学习。我先说一下这个网络工程师你在课程或者技术上学习&#xff0…

Academic accumulation|社会创业研究:过去的成就和未来的承诺

文献来源&#xff1a;Saebi T, Foss N J, Linder S. Social entrepreneurship research: Past achievements and future promises[J]. Journal of management, 2019, 45(1): 70-95. 一、文章介绍 &#xff08;一&#xff09;文章主要包含什么&#xff1f; SE越来越受到学术界的…