第一章 计算机、程序和 Java 概述
1.1 引言
要点提示:本书的主旨是学习如何通过编写程序来解决问题。
本书是关于程序设计(又称编程)的。那么,什么是程序设计呢?程序设计就是创建(或者开发)软件,软件也称为程序。
1.2 什么是计算机
计算机包括硬件和软件两部分。
计算机是由以下几个主要的硬件组件构成的:(如下图)
- 中央处理器(CPU)
- 内存(主存)
- 存储设备(例如,磁盘和光盘)
- 输入设备(例如,鼠标和键盘)
- 输出设备(例如,显示器和打印机)
- 通信设备(例如,调制解调器和网卡)
这些组件通过一个称为总线(bus)的子系统连接。
1.2.1 中央处理器
中央处理器(CentralProcessing Unit,CPU)是计算机的大脑。
它从内存中获取指令然后执行这些指令。
CPU通常由两部分组成:控制单元(controlunit)和算术/逻辑单元(arithmetic/logic unit)。
核是处理器中实现指令读取和执行的部分。
1.2.2 比特和字节
实际上,计算机不过就是一系列的电路开关而已。每个开关存在两种状态:、打开(on)或者关闭(off)。
计算机中字节(byte)是最小的存储单元,
1.2.3 内存
计算机的内存由一个有序的字节序列组成。
1.2.4 存储设备
计算机的内存(RAM)是一种易失的数据保存形式:断电时存储在内存中的信息就会丢失。
存储设备主要有以下四种类型:
- 磁盘驱动器
- 光盘驱动器(CD和DVD)
- 通用串行总线(USB)闪存驱动器
- 云存储
磁盘用于永久的存储数据和程序。
USB闪存驱动器(fashdrive)是用于存储和传输数据的设备。
1.2.5 输入和输出设备
输入设备和输出设备让用户可以和计算机进行通信。最常用的输入设备是键盘和鼠标,而最常用的输出设备是显示器和打印机。
1.2.6 通信设备
计算机可以通过通信设备进行联网,例如,拨号调制解调器(modulator/demodulator,调制器 / 解调器)、数字用户线(Digital Subscriber Line,DSL)、电缆调制解调器、有线网络接口卡或者无线适配器。
1.3 编程语言
计算机程序(program)称为软件(software),是告诉计算机该做什么的指令。
1.3.1 机器语言
计算机的原生语言就是机器语言(machine language),即一套内嵌的基本指令集。这些指令都是以二进制代码的形式存在。
如:1101101010011010
1.3.2 汇编语言
汇编语言(assembly language)使用短的描述性单词(称为助记符)来表示每一条机器语言指令。
如:add 2, 3, result
1.3.3 高级语言
高级语言类似于英语,易于学习和使用。高级语言中的指令称为语句。
如:area = 5 * 5 * 3.14159;
下面是常见的比较流行的高级语言:
用高级语言编写的程序称为源程序(source program)或源代码(source code)。由于计算机不能运行源程序,源程序必须被翻译成可执行的机器代码。翻译可以由另外一种称为解释器或者编译器的编程工具来完成。
1.4 操作系统
操作系统(Operating System,OS)是运行在计算机上的最重要的程序,它可以管理和控制计算机的活动。
用户、应用程序、操作系统和硬件的关系如图:
操作系统的主要任务有:
- 控制和监视系统活动
- 分配和调配系统资源
- 调度操作
1.4.1 控制和监视系统活动
操作系统执行基本的任务,例如,识别来自键盘的输入,向显示器发送输出结果,跟踪存储设备中文件和文件夹的动态,控制类似硬盘驱动器和打印机这样的外部设备。操作系统还要确保不同的程序和用户同时使用计算机时不会相互干扰。另外,操作系统还负责安全处理,以确保未经授权的用户和程序无权访问系统。
1.4.2 分配和调配系统资源
操作系统负责确定一个程序需要使用哪些计算机资源(例如,CPU、内存、磁盘、输入和输出设备),并进行资源分配和调配以运行程序。
1.4.3 调度操作
为了提高系统的性能,目前许多操作系统都支持像多道程序设计(multiprogramming)、多线程(multithreading)和多处理(multiprocessing)这样的技术。
1.5 Java的特性和应用
Java是一种功能强大和多用途的编程语言,可用于开发运行在移动设备、台式计算机以及服务器端的软件。
1.6 Java语言规范、API、JDK、JRE 和IDE
- Java语言规范定义了Java的语法。
- Java库则在Java应用程序接口(API)中定义。
- JDK是用于开发和运行Java程序的软件。
- IDE是快速开发程序的集成开发环境。
1.7 一个简单的Java程序
这是一个及其简单的Java程序:
public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java");
}
}
上述代码运行结果如下:
第1行定义了一个类。每个Java程序至少应该有一个类。每个类都有一个名字。按照惯例,类名都是以大写字母开头的。本例中,类名(class name)为Welcome。
第2行定义main方法。程序是从main方法开始执行的。一个类可以包含几个方法main方法是程序开始执行的人口。
方法是包含语句的结构体。本程序中的main方法包括了System.out.println语句。该语句在控制台上打印消息“Welcome to Java!”(第4行)。字符串(string)是一个编程术语表示一个字符序列。一个字符串必须放入双引号中。Java中的每条语句都以分号(;)结束也称为语句结束符(statement terminator)。
1.8 创建、编译和执行 Java 程序
Java源程序保存为.java
文件,编译为.class
文件。.class
文件由Java 虚拟机(JVM)
执行。
下面是Java代码从源代码到最后输出结果的完整过程: