JavaWeb从入门到精通(视频实战版)
上QQ阅读APP看书,第一时间看更新

1.1 Java语言简介

Java是一种跨平台的面向对象语言,由Sun公司于1995年推出,自问世以来受到越来越多开发者的喜爱。在Java语言出现以前,很难想象在Windows环境下编写的程序可以不加修改就在Linux系统中运行,因为计算机硬件只识别机器指令,而不同操作系统中的机器指令是不同的。所以,要把一种平台下的程序迁移到另一个平台,必须要针对目标平台进行修改,如果想要程序运行在不同的操作系统,就要求程序设计语言能够跨平台,可以跨越不同的硬件、软件环境,而Java语言就能够满足这种要求。

Java语言的目标就是为了满足在复杂的网络环境中开发软件。在这种复杂的网络环境中,充满着各种各样的硬件平台和不同的软件环境,而Java语言就是针对这种复杂的平台环境设计的。使用Java语言,可以开发出适应这种复杂网络环境的应用系统。

1.1.1 Java语言概述

Java是一种优秀的面向对象语言,其有着健壮的安全性设计。Java的结构是中立的,可以移植到不同的系统平台。优秀的多线程设计也是Java语言的一大特色。但是Java语言的最大优势还是其对多种操作系统平台的支持,这种特性是其他编程语言所无法比拟的。

Java最初是Sun公司为消费电子产品设计的一种通用环境,最初的目的是开发一种与平台无关的编程语言。这种技术在开始的时候并没有太大的用武之地,在网络出现以后,由于网络软硬件环境的复杂性,常见的编程语言逐渐不能适应这种环境的要求,而Java语言平台无关性的特性正好适应了网络的这个潮流。所以Java语言在网络出现以后得到突飞猛进的发展。

目前,Java语言最大的用途就是Web应用的开发,使用Java语言可以不用考虑系统平台的差异,在一种系统下开发的应用系统,可以不加任何修改就能运行在另一种不同的系统中。例如在目前的Web应用开发中,很多用户会选择使用Linux或者是UNIX作为服务器环境,而开发人员一般情况下会选择在Windows平台下开发,因为在Windows平台中,开发环境的效率要相对高些。在这种情况下,就可以使用Java语言,由于Java语言是跨平台的,所以在Windows中开发出的系统,可以直接部署在Linux或者是UNIX的服务器系统中,这就是使用Java语言的便利之处。

1.1.2 Java语言的特性和优势

在目前的软件开发中,尤其是应用系统的开发中,Java语言成为大部分开发人员的首选,经常会有用户自己提出要使用Java语言进行开发,可见Java语言的发展已经深入人心。Java语言之所以如此受欢迎,是由其自身的优点决定的。以下简单介绍Java语言的特性。

(1)平台无关性

平台无关性是Java语言最大的优势。在Java中,并不是直接把源文件编译成硬件可以识别的机器指令,Java的编译器把Java源代码编译为字节码文件,这种字节码文件就是编译Java源程序时得到的class类文件。Java语言的跨平台主要是指字节码文件可以在任何软硬件平台上运行,而执行这种类文件的就是Java虚拟机。Java虚拟机是软件模拟出的计算机,可以执行编译Java源文件得到的中间码文件,而各种平台的差异就是由Java虚拟机来处理的,由Java虚拟机把中间码文件解释成目标平台可以识别的机器指令,从而实现了在各种平台中运行Java程序的目的。Java语言中针对不同的平台环境提供了不同的Java虚拟机,例如在Sun的官方网站中就提供了Windows、Linux和Solaris等各种版本Java虚拟机的下载。

(2)安全性

在C/C++中,指针的使用是一个高级话题,如果熟练掌握指针可以给程序的开发带来很大的方便。但是如果指针使用不当,就有可能带来系统资源泄漏,更严重的是错误的指针操作有可能非法访问系统文件的地址空间,从而给系统带来灾难性的破坏。所以在C/C++中,使用指针的时候需要非常小心。

Java语言放弃了指针操作,在Java中没有显式提供指针的操作,不提供对存储器空间直接访问的方法,所有的存取过程都由Java语言自身来处理,这样就可以保证系统的地址空间不会被有意或者无意破坏。而且经过这样的处理,也可以避免系统资源的泄漏,例如在C/C++中,如果指针不及时释放,就会占用系统内存空间,大量的指针不及时释放就有可能耗尽可用的内存空间。在Java中就不用担心这样的问题,Java提供了一套有效的资源回收策略,会自动回收不再使用的系统资源,从而保证了系统的安全性和稳定性。

另外,Java虚拟机在运行字节码文件的时候,会把Java程序的代码和数据限制在具体的内存空间内,不允许Java程序访问指定内存地址之外的空间。这样就可以保证Java程序不会破坏系统的内存空间,从而保证系统的安全性。

(3)面向对象

面向对象是现在软件开发中的主流技术,Java同样吸取了各种面向对象语言的优点,从而更加彻底地实现了面向对象的技术。在Java程序中,基本所有的操作都是在对象的基础上实现的。为了实现模块化和信息的隐藏,Java语言采用了功能代码封装的处理,Java语言对继承性的实现使功能代码可以重复利用,用户可以把具体的功能代码封装成自定义的类,从而实现对代码的重用。

C++是一种经典的面向对象的语言,Java语言继承了C++中面向对象的理论,但是简化了这种面向对象的技术,去掉了一些复杂的技术,例如多继承、运算符的重载等功能。经过这样的处理,Java中的面向对象技术变得简单、容易掌握,同时保留着面向对象中核心的技术,可以使用户方便地享受面向对象技术带来的便利。

(4)异常处理

在Java中提供异常处理的策略。在Java程序的开发中,可以对各种异常和错误进行处理。这些错误包括程序在编译和运行阶段的错误和异常,例如空指针异常、数组越界异常、类型错误等。Java中的异常处理可以帮助用户定位、处理各种错误,从而大大缩短了Java应用程序的开发周期。而且,这种异常策略,可以捕捉到程序中的所有异常,针对不同的异常,用户可以采取具体的处理方法,从而保证了应用程序在用户的控制下运行,因此也保证了程序的稳定和健壮。

1.1.3 Java语言的发展现状

Java语言并不是为网络环境设计的,用户可以使用Java语言来编写独立的桌面应用程序。在桌面应用程序这个领域,Java已经被各大厂商接受,例如Oracle数据库、Borland的JBuilder开发环境、Eclipse开发环境等工具都是使用Java语言编写的。这些软件产品的性能都是非常优秀的,可见使用Java同样可以编写出功能强大的应用软件。而且,如果用户需要开发跨平台运行的软件,Java就成了唯一的选择,跨平台的需要也是各大厂商选择使用Java开发桌面应用程序的原因之一。

虽然说Java语言并不是为网络环境设计的,但是Java语言目前还是主要被用于网络环境中,尤其是在服务器端的程序设计中,Java语言的地位是其他动态语言所无法替代的。在B/S开发结构盛行的今天,Java语言的地位更是举足轻重。例如,目前各种信息管理系统都采用B/S进行开发,在J2EE中,提供了优秀的B/S应用程序的解决方案。再加上Java语言跨平台、简单易用等特性,用户自然会选择Java语言进行开发。事实上,在服务器端的程序开发中,Java所占的比例份额是占绝对优势的。

1.1.4 Java语言的发展前景

随着网络技术的急速发展,Java语言必然会取得更大的发展,在这个复杂的网络环境中,Java语言有着广阔的前景。例如在如下几种开发需求中,Java语言都有着很大的发展前景。

(1)跨平台的应用软件开发

随着Linux、UNIX等操作系统逐渐被用户接受,Windows的地位正面临着巨大的挑战,同时各大软件厂商也必须应对这样的变化。在这种情况下,需要兼顾各种操作系统用户的需要,当然可以选择针对不同操作系统开发出不同的软件版本。但是如果软件产品的规模超大,这样的做法就不太合适,这时候就需要用到Java。虽然桌面应用软件的开发不是Java的强项,但是Java语言跨平台的特性弥补了在这方面的不足。软件厂商采用Java语言进行开发,只需要开发一个版本就可以运行在不同的操作系统环境中,这就大大降低了重复开发的成本和时间。

所以,Java语言在跨平台应用软件开发领域的前景还是非常广阔的。

(2)企业信息化解决方案

企业信息化是目前的一大潮流,而且在目前的信息化解决方案中,基本上采用的都是B/S架构,这样的架构不仅方便应用程序的部署,而且节省了界面程序开发的成本。在客户端只需要一个浏览器即可,所有的功能代码都在服务器端实现。

J2EE是Java的企业版本,是Sun公司针对企业信息化提出的一套技术解决方案。使用这些技术,可以非常方便地实现企业信息化的需求,而且在近几年中,J2EE正以飞快的速度向前发展,相信在未来几年中,Java在企业信息化建设中会占到更大的比重。

(3)嵌入设备

J2ME是Java针对嵌入设备(例如手机)设计的。在J2ME出现之前,在嵌入设备中编程只能选择C/C++,这样底层的编程是相当复杂的。当J2ME技术问世以后,就可以使Java语言十分方便地开发嵌入设备中的应用软件。目前,J2ME在手机中使用得比较多,各大手机厂商推出的手机产品中基本都会内置支持Java的功能。所以,J2ME的使用也会越来越广泛。

Java语言不断地在发展和完善,现在各大厂商都在努力推动Java技术的发展。在这些厂商中间,Sun、IBM、Sybase等做得都相当出色,而且在Java领域中,还有开源力量的支持,例如Apache、JBoss等,这些开发力量给Java的发展带来巨大的推动作用,很多优秀的Java框架都是由这些开源力量开发维护的。

在各方面力量的努力下,Java语言会越来越趋于完美,使用Java开发会给用户带来更大的乐趣和更高的效率。