Java/概述
非常感谢您开始阅读这部书籍,在本文之中,我们先不讨论如何编写具体的程序,而是先对于Java做出一个简要的概述。考虑到不同读者对于计算机的了解程度可能完全不同,本文将分为两个部分,分别适用于初学者及有经验的用户。
适用于初学者的内容
[编辑]程序是如何被创建的?
[编辑]在绝大多数情况下(也有少数例外),硬盘里的数据以文件的形式被存储,而程序,一般被存储于可执行文件中,在Microsoft Windows操作系统中通常具有.exe的扩展名。众所周知,执行文件常常可以处理其他形式的文件,例如,Microsoft Word可以用来打开.doc文档,Microsoft Internet Explorer、Google Chrome、Mozila Firefox等浏览器程序可以用来打开.html、.htm等网页文件。
一个问题很自然地产生了:究竟有没有可以创建按照使用者的意愿创造出新的程序的程序呢?答案是肯定的。软件的开发者们使用的正是这一类被称为编译器的程序。简单地说,编译器读取一类特殊的文本文件,这类文件包含了所谓的“源始码”,用以说明这个程序究竟想做什么。编译器会对源始码进行一系列处理,输出我们计算机中的可执行程式。
不过,由于计算机处理能力的限制,源始码中包含的内容并非人类语言,而是编程语言。学习编程语言将比学习机器语言(即计算机硬件能够直接处理的指令)要容易的多,但依然不可能像人类语言那样直白易懂,因此学习编程就需要学会一种编程语言。
此外,由于不同的设计者对于编程语言应有的架构有着不同的理解,人们创造出了很多不同的计算机语言,比如C、C++、C#、Visual Basic、PHP、JavaScript(注意,JavaScript和Java除了名字相近以外几乎没有关系!)等等,本书要介绍的Java就是其中的一种。
另外需要特别说明的是,有的编程语言写出的源始码需要被编译器处理,最终编译成执行程式,这些语言称为编译型语言,例如C、C++;有的不需要被编译器处理,但却需要被另外一个程序读取并运行,那个用来读取源代码的程序叫做解释器,这些语言成为解释型语言,如JavaScript。Java比较特殊,其程序需要被编译,但一般不能被编译成可执行文件。
如果您对上一段的内容表示困惑,请不要担心,您可以继续读下去。因为在HelloWorld一节中,本书会指引您构建一个最为简单的Java程序,以使您对内容有更为深刻的了解。
哪里有Java?
[编辑]Java是一门应用非常广泛的语言,无论是在商用上,还是在个人使用上。不过,您的电脑上可能没有安装Java,也没有任何使用Java的应用程序,Java并不是计算机上必须的组件。
您身边最有可能大量使用的Java程序的设备很有可能是您的智能手机——如果它安装了Android操作系统。Android操作系统中有相当大的一部分是基于Java的。事实上,如果您对Android开发有兴趣,Java是您需要学习的技术之一。
如何继续?
[编辑]在接下来的章节“搭建开发环境”中,您可以根据您的计算机使用的操作系统来根据指引安装JDK(Java Development Kit,简单来说这个软件中包含编写Java所必需的工具),然后编译出Helloworld程序以熟悉编译流程,然后再细致学习Java语言。
如果您对计算机编程已较为深刻的了解
[编辑]您可以根据需求略读部分章节
[编辑]相信如果您属于这种情况,那么考虑到各种编程语言在基本的运算操作符、流程控制语句上区别不大,您可以略读本书中的基础章节。不过,关于面向对象特性之后的章节您还是应该较为认真地阅读,毕竟几乎所有的语言都在这一方面都有一定程度的不同,并有一些独特的特性。本书的下列章节会向您介绍Java的特性、同部分其他语言(主要是C++)的对比,以及Java的历史和应用。
Java的特点
[编辑]Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。
Java 编程语言的风格十分接近C++语言。继承了 C++ 语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间。在 Java SE 1.5 版本中Java又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
- 简单性
Java是一种简单的程序设计语言。Java的设计者尽量把语言的结构规模缩小,通过提供最基本的方法来完成指定的任务。使用者只需要理解一些基本概念,就可以编写出合适的应用程序。Java取消了许多语言中十分烦琐和难以理解的内容,例如C++的指针、运算符的重载、类的多继承等等,并增加了垃圾回收功能,大大简单化了程序设计者的内存管理工作。Java在外观上让大多数程序员感到很熟悉,便于学习。同时Java编译器也很小,便于各种机型上实现。
- 面向对象
Java 是一种面向对象的程序设计语言。这里的对象是指应用程序的数据及其操作方法。Java的程序设计集中于对象及其接口,Java提供了简单的类机制以及动态的接口模型, 实现了模块化和信息封装。Java类提供了一类对象的原型,并且通过继承机制,实现了代码的重用。
更多Java信息,参见维基百科上的Java。
Java语言的历史
[编辑]想学好一门语言,首先是要了解它的历史,那我们就来了解一下Java的历史吧。
它是由Sun公司开发出来的。它的诞生主要得益于家用电器的芯片。开始时,它的开发者想用C++语言来开发电器的芯片,但是,由于芯片的种类各不相同,因此,程序要进行多次编译。尤其是C++中的指针操作,一旦操作不慎,就会引起问题,程序可以出错误,但是家用电器不能出错误。为此,它的开发者将C++语言进行简化,去掉指针操作,去掉运算符重载等,去掉C++中的多重继承,得到了Java语言,将它变为一种解释执行的语言,在每个芯片上装上一个Java 语言虚拟机器。刚开始Java语言被称之为Oak语言(橡树语言)。
它的发展得益于WWW的发展。刚开始时,WWW的发展比较缓慢,每个网页上面都是静态的画面,不能与用户进行操作。即使是后来的CGI也只是在服务器端进行运行,速度太慢,人们迫切需要能够在浏览器端能与用户进行交换,并且画面能够动起来,但是,WWW上的机器是各种各样,操作系统也是千差万别,后来人们想到了Oak语言,它是解释型执行语言,只要每个机器上的浏览器能够有它的虚拟机器,Oak语言就可以运行,因此Oak语言发展起来,后来改名为Java 语言。现在网络上流行开发语言是Java语言。
Java语言现在逐渐成熟起来,它的类已经近千个,它的类无所不包,而且还可以通过第三方购买类,为Java语言的发展提供了良好的发展前景。同时它也是跨平台的语言,因此许多软件开发商,硬件开发商也争先恐后地想乘上Java语言的快车,都声称支持Java语言,它对微软发起了有力的挑战,而且Sun公司正努力开发Java芯片。