MySQL降龙十八掌,第六掌内容:利涉大川之MySQL索引的使用与优化(附含MySQL8.0隐藏索引),了解详情>>
0

我的帖子

个人中心

设置

  发新话题
android开发环境搭建需要我们下载两个部件

Jdk
adt bundle
Windows平台下JDK安装的subject

什么是JDK?
为什么java开发要用到jdk?
如何去获得JDK,怎么安装?
JDK安装之后,目录结构的介绍,每个部分大概放了些什么文件?它们有什么作用?
为什么一说java编程就要安装JDK

JDK是几个英文单词的缩写。(Java Development Kit),它是java开发工具包的一个缩写。它为java应用程序提供基本的开发环境与运行环境。

JDK里面到底包含了什么内容

JDK中主要包含以下内容,是这些内容在支持所谓的开发环境和运行环境。

1) Java虚拟机

负责解析与执行java程序。这个地方我们可以给大家画一个示意图:现在要使用java开发这门语言来开发一个程序,用这个程序最后去指挥你的计算机,进行一个程序的运算,去调用CPU的资源。那么这个java的源程序是一个面向对象的高级语言的语法。这个只有我们编程人员,只有人才能够看懂,机器是没办法看懂的。 所以我们程序最上面的是java的源程序,但是你最后的目的是指挥你的计算机去工作。

android1.png

从java源程序这一步到指挥计算机这一步,是不能直接进行的。所以你写的这些java的源代码,是不可能运行的。那要怎么办呢?我们首先知道,计算机这个裸机它上面有一层操作系统。(不管你是安装什么样的东西,都会有一层操作系统)那么,这个源程序它会经过一个编译,变成一个java的字节码文件。为什么要编译成字节码文件呢?因为只有字节码文件才能去运行,那么这个字节码文件是不是又直接的通过操作系统去指挥计算机的呢?也不是。中间还差一层,差一个虚拟机。那么java这个虚拟机,它可以提供跨平台的,所以java这个语言的特性就是可以跨平台。它为什么可以跨平台?是因为你写的这个源程序经过编译后,形成字节码class文件以后,然后再虚拟机上去运行,虚拟机在屏蔽了一下操作系统的所有的差异。然后再通过操作系统再去调用计算机硬件,所以整个的运行过程是这样。所以,你要java开发程序运行起来,就必须要有java虚拟机,但是这java虚拟机就在这个JDK的包中,所以第1点就提供了这个java的运行环境和执行java程序的地方。

2) 提供java的基本类库

java.lang、java.io、java.util、java.awt、java.swing、java.sql等。 我们知道,你写java程序的时候,也不是完全的由0开始,也不是说去写怎么操作CPU?怎么去操作内存?不会,它会提供(java是一个面向对象的高级语言)一些基本的类库,这些基本的类库是我们JDK包中我们JDK的开发人员已经给我们写好了一些基本的库。也就是写了一些所谓的类啊!还有接口啊!它方便我们去调用。这些东西也在JDK里面。

3) 提供开发工具(命令)

javac.exe-编译工具,java.exe-运行工具,javadoc.exe-JavaDoc文档生成工具,jar.exe-打包工具等。 源程序变成字节码,这是需要一个编译的过程。这个编译的过程肯定是需要一些编译的工具的,命令行的。这些东西,比如说像javac.exe,然后是java的运行,然后是生成java的文档工具,还有就是打包,打成jar包的工具。这些开发工具命令也在JDK里面。这就是为什么要安装JDK的原因。

jre

在弄懂JDK的时候,还必须掌握另外一个相关的概念就是大家经常看到加jre的。(Java RunTime Environment)java的运行环境。

jre和JDK的区别

jre最早的时候,就是我可能在你这里装一个jre的运行环境,它可能解释我的java程序。 但是我不提供所谓的命令,我也不用去提供一些过多的类库。因为我现在安装这个的目的是为了运行,不是为了开发。我只是提供一个运行环境。所以jre的功能要比JDK的弱一点儿。其实JDK包含了JRE,再加上刚刚所谓的类库和工具。而JRE它本身自己就是一个java虚拟机的运行环境+解释器。你可以简单的理解,JRE其实是JDK的一个子集。所以你作为开发人员的话,你要使用的,接触得更多的是JDK,JRE只是在运行和部署的时候用。 所以这个大家只需要扩展的了解一下。



‹‹ 上一贴:android的R文件什么情况下会更新?升级SDK会不会更新 ...   |   下一贴:android ››
  发新话题
快速回复主题
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 友情链接 |意见反馈 | 网站地图
Copyright©2005-2018 51CTO.COM
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系:bbs@51cto.com