tomcat7.0支持什么版本的jdk_恭喜你喜提JDK,那你知道JDK是什么吗?先来看看吧

点击蓝字

关注一行

JDK      

    大家都知道电脑的操作系统是由汇编和C语言写出,因此操作系统无法直接识别其他语言。这时我们就需要为我们写的Java程序配备一名翻译官 ----- 编译环境,将Java程序翻译成电脑可以识别的程序,C或者汇编。 

    那么对于这个翻译官  -----  JDK你真的了解它吗?

01

JDK的工作原理

    JDK 就是我们和电脑指令之间的翻译官,那么我们需要把想要让电脑做的工作,先告诉我们的翻译官,翻译官再将我们的命令翻译一下,讲给电脑,那么,他的工作流程就出来了。

1. 书写Java源程序(.java)

2. JDK将源程序编译成字节码文件(.java   -->  .class)

3. JRE(运行环境)将字节码进行解释,并执行命令

4. 字节码文件(.class)中的指令变为对应操作系统的机器码

5. 操作系统执行命令  

我们在一起来看一看JDK的构造到底是什么样的吧!

14d48743614a929e5f64ce2b828ee1e8.png

02

最下面的JVM是什么

java虚拟机(Java Virtual Machine,简称JVM),即java虚拟机,由上面的图示可以知道,JVM是整个java架构当中最为底层的存在,它直接与操作系统进行对接,为 java运行时的环境制定规则,是一种面向计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 

针对java用户,也就是拥有可运行的.class文件包(jar或者war)的用户。里面主要包含了jvm和java运行时基本类库(rt.jar:rt.jar可以简单粗暴地理解为:它就是java源码编译成的jar包),Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。

03

包含JVM的JRE又是干嘛的?

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

它包括两部分:java运行环境(JavaRuntimeEnvironment)和java插件运行环境(JavaPlug-inJavaRuntimeEnvironment),是一个可以在其上运行、 测试和传输应用程序的Java平台。

由上面的图示可以看得出来,JRE包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具——编译器、调试器和其它工具。JRE中不仅存在着JVM,还有着lang and util base libraries和Other Base Libraries等各种基础工具类,以及JDBC、IDL 和 RMI等底层的数据接口,还有一些用户封装的接口开发工具,如Swing、Java 2D 等。这些各种各样的工具和基础接口组成了JAVA运行时的环境。

JRE需要辅 助软件——JavaPlug-in——以便在浏览器中运行applet.J2RE是Java2 Runtime Environment,即Java运行环境,有时简称JRE.如果你只需要运行Java程序或Applet,下载并安装它即可。如果你要自行开发 Java软件,请下载JDK.在JDK中附带有JRE.注意由于Microsoft对Java的支持不完全,请不要使用IE自带的虚拟机来运行 Applet,务必安装一个JRE或JDK.

03

知道了JVM、JRE,那么我们安装的JDK是干什么用的?

JDK 是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK.最主流的 JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket, 还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。

JDK一共有3种版本:

1. SE(J2SE):standard edition,标准版,最通用的一个版本。

2. EE(J2EE):enterpsise edtion,企业版,使用这种JDK开发J2EE应用程序。

3. ME(J2ME):micro edtion,主要用于移动设备、嵌入式设备。

JDK的7个主要应用程序:

1. Javac:Java编译器,将Java源代码转换成字节码。

2. Java:Java解释器,直接从类文件执行Java应用程序字节代码。

3. appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。

4. Javadoc:根据Java源码及说明语句生成HTML文档。

5. Jdb:Java调试器,可以逐行执行程序,设置断点和检查变量。

6. Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。

7. Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。

257fc5a6d40efea5e71175bbeb129c2f.png

扫码关注不迷路

微信号|yixing6654

公众号|chuyixing007

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我的python 入门 安装 -- hello world

我的python 安装–>“hello world” 最近老听到关于python的声音,而且越来越强烈。就好奇下载了下,在win10 的应用商店下载的 够傻瓜了吧 环境变量也不用配置 直接上手 hello world了 cmd 窗口 输入 python -v 正常显示 显示版本号 不能正常显示…

python if try except_python try except

python中try/except/else/finally语句的完整格式如下所示:try:Normal execution blockexcept A:Exception A handleexcept B:Exception B handleexcept:Other exception handleelse:if no exception,get herefinally:print("finally")说明:正常…

多台Linux服务器之间互相免密登陆

多台Linux服务器之间互相免密登陆 例如我们有三台Linux 服务器: 192.168.0.1 192.168.0.2 192.168.0.3 1.1 首先配置服务器 1 面密令登录2 和 3 1.2 登录服务器1,然后输入命令:ssh-keygen -t rsa ,一路按 回车, …

python多进程内存共享_Python—并发编程04多进程内存共享,python,间,的

Manaegr实现数据共享导入 :from multiprocessing import Manager实例化:m Manager()num m.dict( {键 : 值} )num m.list( [1, 2, 3] )程序示例:from multiprocessing import Manager,Processdef fun(num):num[0] 0print(子进程中num:, num)if __name…

记录spring、springboot集成apollo配置中心

一, spring集成apollo,前提是apollo配置中心服务端已经在运行中 上面是我在阿里云服务搭建的apollo配置中心服务端,登录后的样子。没有搭建服务端的小伙伴,请先搭建好apollo的服务端 然后点击‘创建项目’,新建测试用的项目 填…

python中不同类型的数据不能相互运算_Python第三课——数据类型与运算(2)

hello大家好,我是你们的小蒟蒻鸭,终于终于有时间写博客了(虽然刚开始期末复习),真的非常非常抱歉,拖更太厉害了。反正还有一个月不到小蒟蒻就要放暑假了!!!(激动.jpg),蒟蒻保证会一周…

Java多线程--死锁例子

package qzy.thread.deadLock;/*** 描述模拟死锁** 形成死锁的四个必要条件是什么** 1.互斥条件:线程(进程)对于所分配到的资源具有排它性,即一个资源只能被一个线程(进程)占用,直到被该线程(进程)释放* 2.请求与保持条件:一个线程…

python重写和装饰器_python装饰器

python装饰器的本质,就是闭包!我们一般谈Python的闭包,都是指普通的入参,而谈装饰器的时候,入参一定有函数!闭包和装饰器,返回的都是函数。函数是代码的最小封装单位,装饰器作用于函…

Java基础复习题--类加载顺序

在某个视频看到一个关于Java类加载顺序的面试题,记录一下: talk is sheep, show code!(请忽略语法) public class Father {private int i test();private static int j method();static {System.out.prin…

基本农田卫星地图查询_发现谷歌地图替代网站,卫星地图街景功能都能用

众所周知,由于谷歌地图(Google Maps)在国内不能访问,很多人就没有办法通过谷歌地图来获得服务。谷歌地图是目前全球最受欢迎的世界地图网站,在2005年以前,谷歌地图就收录了美国、英国、加拿大三个国家的地图…

记录 Linux crontab 的使用

记录一次简单的Linux定时任务----》每周定时备份数据库结构及数据 环境:阿里云服务器 vim 命令:输入i/a 进入输入模式,输入完成后,esc键,退出输入模式,确定无误后,输入“:wq”,保存退出 Linux 环…

python random函数_Python随机函数random使用详解

在python中用于生成随机数的模块是random,在使用前需要import, 下面看下它的用法。1、random.randomrandom.random()用于生成一个0到1的随机符点数: 0 < n < 1.0注意&#xff1a; 以下代码在Python3.5下测试通过&#xff0c; python2版本可稍加修改描述random() 方法返回…

Graphicsmagick linux 中文水印乱码-new

文章目录Graphicsmagick linux 中文水印l乱码&#xff08;中文显示成正方形&#xff09;本人在Windows上安装Graphicsmagick 并使用Graphicsmagick 添加中文水印成功&#xff0c;但是在Linux下一直乱码&#xff0c;现将解决办法分享给有需要的朋友。 1.Linux下默认安装Graphic…

python数据结构递归树_python数据结构(对称二叉树递归和迭代)

1、题目描述给定一个二叉树&#xff0c;检查它是否是镜像对称的。2、代码详解2.1 递归写法# Definition for a binary tree node.class TreeNode(object):def __init__(self, x):self.val xself.left Noneself.right Noneclass Solution(object):# 递归写法def isSymmetric(…

python跨文件复制sheet_Python办公自动化-工作表复制(可跨文件)

我们平时在处理Excel文档&#xff0c;会涉及到工作表的复制。一般我们会遇到这两种工作表复制需求&#xff1a;单个Excel文档内将工作表复制多分多个Excel文档之间&#xff0c;相互复制工作表将多Excel文档中的工作表复制到同一个Excel文档中针对与上述需求&#xff0c;我们可以…

python 神经网络原理_神经网络理论基础及Python实现

一、多层前向神经网络多层前向神经网络由三部分组成&#xff1a;输出层、隐藏层、输出层&#xff0c;每层由单元组成;输入层由训练集的实例特征向量传入&#xff0c;经过连接结点的权重传入下一层&#xff0c;前一层的输出是下一层的输入;隐藏层的个数是任意的&#xff0c;输入…

postman 使用_Postman使用方法

一 Postman背景介绍用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的&#xff0c;用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。今天给大家介绍的这款网页调试工具不仅可以调试简单的css、html、脚本等简单的网页基…

bool python 运算_python基础知识和pycharm安装

昨天大家对我(Python)有了一定的了解&#xff0c;那么今天带大家更加系统化的认识一下我&#xff0c;已经了解我的工作方式先说一下如果让我去做一件事情得需要那些“配置”&#xff0c;其实很简单的&#xff0c;不要把我想的太复杂&#xff0c;毕竟还是个单纯的孩子。让我做事…

python send 案例_python之pexpect实现自动交互的例子

Pexpect 是 Expect 语言的一个 Python 实现&#xff0c;是一个用来启动子程序&#xff0c;并使用正则表达式对程序输出做出特定响应&#xff0c;以此实现与其自动交互的 Python 模块。 Pexpect 的使用范围很广&#xff0c;可以用来实现与 ssh、ftp 、telnet 等程序的自动交互&a…

视频显示边缘空白的真相

在多媒体开发过程中&#xff0c;难免会使用到video这一类型。但一直有部分开发者或产品人员总提出 “视频画面没有充满”其给定的窗口&#xff0c;其原因在于对视频不了解&#xff0c;想当然的去认为要“充满”。被问到此问题只能苦笑一声&#xff0c;哭笑不得。 先看下几个效果…