JAVA 运行与开发环境配置(一)-背景知识

在开始配置JAVA运行与开发环境之前,先简要介绍一下一般的开发流程是怎样的。以C++为例,我们编写的程序,或者更确切的说,源代码(Source Code),都是一些文本文件。和WORD文档类似,这些源代码本身只能查看和编辑,并不带任何功能,也不能执行。计算机能运行的可执行文件(Executable File),一般里面包含的都是二进制指令,这些指令是硬件(CPU)能直接处理的。所以每一种编程语言都会提供一些工具负责将人能看懂的源代码翻译成机器能看懂的二进制代码,这个过程就叫编译(Compile),这类工具就是编译器(Compiler)。

Windows平台上常见的可执行文件(*.EXE)就是二进制文件,只要双击即可直接运行。像C++编译后的二进制代码能直接被CPU处理,所以被称作本地二进制代码(Native Binary Code)。它们的运行效率很高。但由于不同CPU的二进制指令不一样,所以相同的程序,在CPU-A上编译的可执行文件,在CPU-B上可能就运行不了。必须拿源代码在CPU-B上也编译一次才行。这样的程序,只能称之为在源代码级别是通用的。

 

JAVA技术出现的时候,其中一个口号就是“编译一次,到处运行”(Compile Once, Run Everywhere)。也就是说用JAVA编译后的程序,应该在任何CPU任何操作系统上都能够运行,而不用重新编译。实现这个目标需要两个功能的支持:1,与CPU无关;2,与操作系统无关。

为了实现CPU无关性,JAVA编译器并不是将源代码编译成和具体CPU相关的二进制指令,而是统一翻译成JAVA运行环境(JRE, Java Runtime Environment)能够识别的字节码(Byte Code)。字节码可以理解为是一种二进制形式的中间代码,高效,简洁,通用。相当于一种国际语言,当两种其它语言需要沟通时,都统一用它代为中转。

由于字节码本身不能直接被CPU处理,所以当它被执行时,要被JAVA运行环境(JRE)动态再次编译成具体CPU相关的二进制指令。这个过程叫做即时编译(JIT, Just-In-Time)。即时编译需要花费一定的时间,所以JAVA程序在第一次运行的时候会慢一些。而一旦即时编译完成,产生的可被CPU运行的二进制代码(即本地代码,Native Code)就会被缓存起来,下次再执行这段代码,就不用再次编译了。

我们再来看一下操作系统无关性,也成为跨平台特性(Cross-Platform)。一般的编程语言本身仅提供最基本的数学运算和逻辑控制功能(高级语言还会提供面向对象支持)。而我们编写的程序要完成一件具体的工作,举个最简单的例子,通过网络向另外一台电脑发送一个消息,就需要去操作网卡。这里就会牵涉到软件如何与硬件打交道的问题。每个硬件其实都会提供一套开发和控制接口给软件层,一般称为应用程序接口(Application Program Interface)。软件通过调用API就可以操作硬件。但在现代计算机系统里,从安全、稳定和管理等角度出发,应用软件一般不允许直接访问硬件。硬件完全被操作系统(OS, Operation System)控制,上层应用软件则通过调用操作系统提供的编程接口(API,注意这里的API与硬件提供的API已经不一样了,是操作系统层次的)。所以同样是通过网络发送信息,在Windows平台上的API与在Linux平台商的API就不一致了。这样就算是相同的CPU,由于API不一样,相同功能就得写不同的源代码,这样何谈跨平台呢?

所以JAVA平台再次提供了自己的API,我们称之为框架(Framework)或基础类库(Base Class Library)。这种操作系统之上一级的API,提供一整套统一的编程接口来进行各种日常操作,例如网络操作、文件系统读写、图形系统访问等等。JAVA运行环境(JRE)会负责将这些API映射到不同的操作系统。

 

也就是说,以往的编程技术,一般都是直接面向CPU和操作系统,而JAVA技术则在具体的CPU和操作系统之上,又虚拟出了一套通用的CPU指令(字节码)和操作系统(JRE和基础类库),这就是JAVA虚拟机(JVM, Java Virtual Machine)。所以所有的JAVA程序首先都编译成能在JAVA虚拟机(JVM)上能跑的字节码,JVM再根据不同的CPU和操作系统将这些字节码翻译成本地代码(Native Code)并执行。

前面铺垫了这么多,只是为了说明一个最简单的道理,就是要运行JAVA程序,不管什么样的操作系统,都必须首先安装JAVA运行环境(JRE, Java Runtime Environment)。只要有了JRE,任何JAVA字节码都能够被执行。

但是我们要开发JAVA程序,还需要很多的辅助工具,这些工具是给开发人员使用的,一般用户不需要。所以它们单独被称作JAVA开发工具包(JDK, Java Development Kit)。JDK里包含了JRE。

有了JDK,我们可以将JAVA源代码编译成JAVA字节码来运行了。但除非你是传说中用记事本或最简单的文本编辑器就可以轻轻松松编写几万行源代码而不出错的大内高手,否则还是老老实实安装一个合适的IDE来作为基本的工作平台。IDE,Integrated Development Environment,集成开发环境,一般都会提供大量开发中常用的功能来提高开发效率。比如智能提示,即时语法检查,运行时调试等等。JAVA目前最流行的IDE是Eclipse。这是一个免费和开放源代码的优秀工具。

最后我们简单介绍一下JAVA的版本。从功能上来区分,JAVA分为标准版(Java SE, Java Standard Edition)和企业版(Java EE, Java Enterprise Edition)。Java SE提供最基本最核心的功能,如磁盘、网络、文件等操作。Java EE则提供一些更高阶的企业级应用支持,比如可以用Java EE开发大型网站系统和分布式系统。Java SE作为基础,一定要学好。因为Java EE也只是Java SE的一个扩展而已。

从JAVA的进化来看,Java 2曾经流行了很长一段时间,所以早期的SE和EE被称为J2SE和J2EE。但近几年Java版本更新较快,不断吸收一些新的设计思想和语言特性,从Java 5,Java 6一直发展到最新的Java 7。

目前建议使用稳定的 Java 6 作为学习环境。但实际学习中 Java 6 的新功能和特性可能不会接触很多。

以下提供JRE, JDK以及Eclipse的下载地址:

JRE & JDK for Java SE:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

JRE & JDK for Java EE:

http://www.oracle.com/technetwork/java/javaee/overview/index.html

Eclipse:

http://www.eclipse.org/downloads/

 

如果有Kriss制作的JAVA软件DVD光盘,那么对于x86 32位Windows系统来说,可以在以下路径找到相关安装包(针对Java 6):

Java\JRE\jre-6u27-windows-i586.exe

Java\JDK\jdk-6u27-windows-i586.exe

Java\Eclipse\eclipse-SDK-3.7-win32.zip

本节只介绍了Java的一些背景知识,详细的开发环境搭建和第一个Hello QingQing程序将在下节给出。

备注1:除了Java SE和Java EE,还有一个可怜的家伙,Java ME(Java Mobile Edition),用来开发手机应用,但现在既然Android已出,Java ME价值已经不大了。我们完全可以在Java SE学习完以后直奔Andoird开发。

转载于:https://www.cnblogs.com/qqnote/archive/2011/09/23/2186385.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值