最近想学习web开发方面的东西,选定学习JSP,今天搭建环境,首先是要装jdk,我对此有些不解,以前学java课程的时候,也没深究jdk的具体作用,于是特想搞懂它是什么。 我看了两本教科书又查了一些网上的文章。总结如下:
一、对JAVA平台的理解
一个完整的Java平台包括实际计算机、适配器、Java虚拟机、java基本软件和Java应用程序接口五个部分组成。
通常一个程序的平台是一个硬件或者软件运行的环境。Java的平台不太一样,它由两个部分组成:一个是JVM,另一部分是Java Application Programming Interface(Java API),这两部分软件就构成了Java运行的基本环境。Java API和JVM整合在一起处于机器硬件之上。也就是说,Java平台把一个Java应用程序从硬件系统分离开从而很好的保证了程序的独立性。来自:http://developer.51cto.com/art/200508/106.htm
上面一种观点认为Java平台由五部分组成,令一种观点认为又两部分组成,我认为并不矛盾。java虚拟机和java应用程序接口是最重要两点,第一种观点中把计算机这种不说也知道有的都给算进去了。。。
二、Java虚拟机
讲java语言的许多特性,肯定绕不开“java虚拟机”这个东西
Java虚拟机(Java Virtual Machine,JVM)是一个抽象的计算机,负责运行java字节码文件,负责把字节码解释成具体平台上的机器在实际的计算机中通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
对于不同软硬件平台(指处理器和操作系统),java虚拟机要专门的实现,只要符合Java虚拟机规范,将保证字节码文件的正确执行。
java语言编译执行的过程如下:
三、半编译半解释执行特点
首先要解释一下编译和解释执行,
编译是指一次性地把一个高级语言编写的源程序翻译成可以运行的目标程序,而编译好的目标程序作为一个文件可以无数次的运行。编译过程所需存储空间大,所需时间长,但目标程序执行时速度快。当前大多数语言属于这种类型,如c、FORTRAN、PASCAL语言等。因为不需要多次编译,所以这种方法特别适用于重复执行的程序。
解释是指对高级语言程序编写的源程序每翻译一句然后再执行一句,翻译和运行过程交叉进行,如果要再运行一次,那就必须重新翻译,重新执行,翻译完即执行完。这类语言最典型的例子是BASIC。解释型语言适用于计算机存储空间小或者需要经常修改程序的情况,由于边解释边执行,所以它的速度远远低于编译型语言。
Java是一种半编译半解释的的程序设计语言。一个java语言源程序要运行,必须先由编译器编译成字节码。但是这个编译过程是不彻底的,因为字节码不是最终的执行代码,它不能在具体平台上运行,而必须再由运行系统上的“字节码解释器”将其翻译成机器语言。Java字节码解释器只KB的存储空间,它的工作是边解释边执行程序。可是由于字节码已经非常接近于机器码,所以,Java尽管也是采用边解释边执行的方式,但速度仍然相当快,这和一般情况下以牺牲速度来换取可移植性、安全性和稳定性等方面相比,显然是极高一筹。
三、JDK
JDK(Java Development Kit)是Java开发工具的简称。它是Sun公司针对Java开发人员发布的免费开发工具包。
Java Software Deveopment Kit(简称 Java2 SDK,J2SDK或JDK)正式发布,命名为Java2,标志着Java技术走向成熟。它不仅仅是jdk的升级版本,还是完善的java平台。
Java2即JDK的根目录中,有bin、jre、lib、demo、include、src.zip等子目录和一些文件,含义如下:(挑选重点说明)
1.bin
开发工具,工具和实用程序,可帮助用户开发、执行、调试和保存以java语言编写的程序。
2.jre(java runtime environment,java运行时环境)
包括java虚拟机、类库以及其他文件,可支持执行以java语言编写的程序。
3.lib附加库
4.demo演示applet和应用程序
5.includec头文件
6.src.zip源代码
JDK中包括很多开发、调试Java程序的工具。这里只选择最主要的介绍一下。
javac:它就是传说中的Java编译器。用来将写好的后缀名为.java的源代码文件逐个编译成后缀名为.class的字节码文件。这是Java开发中必不可少的一个程序,也是后面用得最多的程序之一。
java:它是Java字节码的解释程序。它可以解释并执行后缀名为.class的字节码文件,前面由javac编译好的程序就是由它来执行的。事实上,所有的Java程序最终都是由这个程序来解释并执行的。
jdb:它的全名为:java debugger,是用来调试Java程序代码的。本书中的例子都比较简单,暂时还不需要用它来调试。不过,以后读者自己开发程序的时候就会用到,所以在这儿要认识一下这个小程序。
javadoc:这是一个自动生成文档的工具,它可以把Java源代码中的注释语句自动整理成文档。这个功能很酷吧?后面还会见到Java中更多让人们觉得酷的特性哦!
jar:Java的字节码文件是以后缀.class结尾的,当程序文件少的时候容易管理,可是随着程序规模的增大,它的文件也会相应增多。为了方便管理,Java提供了将字节码文件进行合并的jar工具。它可以把许多功能相关的字节码文件合并为一个后缀为.jar的文件,减少了文件数量,使字节码文件的管理变得更为有序