1.1 Java技术现象
到处都在谈论Java技术,但是Java技术到底是什么呢?下面的章节将说明Java技术为何既是一种编程语言又是一个平台,并且概述这种技术能为你做什么。
1.1.1 关于Java技术
Java技术既是一种编程语言,也是一个平台。
1. Java编程语言
Java编程语言是一种高级语言,其特点可以用下面几个词语来归纳:
l 简单;
l 平台独立;
l 面向对象;
l 可移植;
l 分布式;
l 高性能;
l 多线程;
l 健壮;
l 动态;
l 安全。
在James Gosling和Henry McGilton撰写的Java Language Environment一文中,对上面的每个词语都给出了解释。
在Java编程语言中,首先把所有源代码都写入到纯文本文件中,以.java扩展名结束。然后,使用javac编译器把这些源文件编译为.class文件。.class文件不包含对应于处理器的本机代码,而是包含字节码(bytecode)——Java虚拟机(Java Virtual Machine,Java VM)的机器语言。然后java启动器工具通过Java虚拟机的一个实例运行应用程序(见图1-1)。
|
|
|
|
|
|
图1-1 编译和运行应用程序
因为在很多不同的操作系统上都有Java VM,所以相同的.class文件可以运行在Microsoft Windows、Solaris OS、Linux或者Mac OS上。一些虚拟机,比如Java HotSpot虚拟机,在运行时还会执行额外的步骤,以提高应用程序的性能。这些步骤包括各种任务,比如查找性能瓶颈和将频繁使用的代码段落重编译(为本机代码)(见图1-2)。
|
|
|
|
|
|
|
|
|
|
图1-2 通过Java VM,同一个应用程序能够运行在多种平台上
2. Java平台
平台(platform)是程序在其中运行的硬件或软件环境。我们已经提到了一些最流行的平台,比如Microsoft Windows、Linux、Solaris OS和Mac OS。大多数平台可以被描述为操作系统和底层硬件的组合。Java平台与大多数其他平台的不同之处在于,它是一种运行在其他基于硬件平台之上的纯软件平台。
Java平台有两个组成部分:
l Java虚拟机(Java Virtual Machine,Java VM)。
l Java应用程序编程接口(Application Programming Interface,API)。
我们已经介绍了Java虚拟机,它是Java平台的基础,已经被移植到了各种硬件平台上(见图1-3)。
|
|
|
|
|
图1-3 API和Java虚拟机把程序和底层硬件隔离开
API是已经开发好的软件组件的大型集合,它们提供了许多有用的功能。API按相关性类和接口分为多个库,这些库被称为包(package)。下一节重点介绍API提供的一些功能。
作为独立于平台的环境,Java平台比本机代码稍慢一些。但是,编译器和虚拟机技术的进展已经使Java平台的性能与本机代码接近,而且不会有损于可移植性。
1.1.2 Java技术能做什么
通用的高级Java编程语言是一个功能强大的软件平台。Java平台的每个完整实现都能提供如下特性:
l 开发工具——开发工具提供进行编译、运行、监视、调试应用程序和编写应用程序文档所需的所有功能。作为开发新手,你将使用的主要工具是javac编译器、java启动器和javadoc文档工具。
l API——API提供Java编程语言的核心功能。它提供大量已编写好的类,可以用于你自己的应用程序。核心API非常大;要大致了解API包含的内容,请参考Java SE开发工具包6(Java SE Development Kit 6,JDK 6)文档。
l 部署技术——JDK软件提供标准机制,比如Java Web Start软件和Java Plug-In软件,用于把应用程序部署给最终用户。
l 用户界面工具包——Swing和Java 2D工具包使创建复杂的图形用户界面(Graphical User Interface,GUI)成为可能。
l 集成库——集成库,比如Java IDL API、JDBC API、Java命名和目录接口(Java Naming and Directory Interface,JNDI)API、Java RMI和Java RMI-IIOP技术(Java Remote Method Invocation over Internet Inter-ORB Protocol Technology),支持数据库访问和远程对象的操纵。
1.1.3 Java技术将如何改变我们的生活
我们不能保证如果你学习了Java编程语言就能够得到荣誉、财富,甚至工作。但是,它很可能使你的程序更好,而需要付出的努力却比其他语言少。我们相信Java技术会给你带来以下好处:
l 入门迅速——尽管Java编程语言是一种强大的面向对象语言,但是它容易学,特别是对于熟悉C或C++的程序员。
l 编写的代码更少——程序度量(比如类的数量、方法的数量等)的对比表明,用Java编程语言写的程序比用C++写的相同程序小4倍。
l 编写的代码更好——Java编程语言鼓励良好的编程实践,而且它的自动垃圾回收功能有助于避免内存泄漏。它的面向对象性质、JavaBeans组件架构以及易于扩展的大量API,使你可以重用已有的、经过测试的代码并且减少错误。
l 开发程序更快——Java编程语言比C++简单,因为这个原因,使用Java进行开发的速度可能要快上一倍。你的程序所需的代码行数也更少。
l 平台无关性——因为不需要使用由其他语言编写的库,可以保持程序的可移植性。
l 一次编写,处处运行——因为Java程序被编译为与机器无关的字节码,所以它们可以在任何Java平台上以一致的方式运行。
l
发布软件更容易——使用Java Web Start软件,用户只需通过点击鼠标就可启动应用程序。启动时的自动版本检查使用户总能更新到软件的最新版本。如果有可用的更新,那么Java Web Start软件就会自动更新安装。






