001 计算机、程序和 Java 概述

本贴最后更新于 2287 天前,其中的信息可能已经时过境迁

本文为《Java 语言程序设计》第十版 章节笔记

1.1 什么是计算机

计算机包括两部分:硬件(hardware)和软件(software)。硬件包括计算机可以看的见的物理部分,而软件提供看不见的指令,这些指令控制硬件完成特定的任务。

一台计算机是由以下几个主要的硬件组件构成的:

  • 中央处理器(CPU)
  • 内存(主存)
  • 存储设备(例如,磁盘和光盘)
  • 输入设备(例如,鼠标和键盘)
  • 输出设备(例如,显示器和打印机)
  • 通信设备(例如,调制解调器和网卡)

这些组件通过一个称为总线(bus)的子系统连接。

1.1.1 中央处理器

中央处理器(Central Processing Unit,CPU) 是计算机的大脑。

它从内存中获取指令,然后执行这些指令。CPU 通常由两部分组成:控制单元(control unit)和算术单元 / 逻辑单元(arithmetic / logic unit)。控制单元用于控制和协调其他组件的动作。算术 / 逻辑单元用于完成数值运算(加法、减法、乘法、除法)和逻辑运算(比较)。

现在的 CPU 都是构建在一块小小的硅半导体芯片上,这块芯片上包含数百万称为晶体管的小电路开关,用于处理信息。

每台计算机都有一个内部时钟,该时钟以固定速度发射电子脉冲。这些脉冲用于控制和同步各种操作的步调。时钟速度越快,在给定的时间内执行的指令就越多。时钟速度的计量单位是赫兹(hertz,Hz),1 赫兹相当于每秒 1 个脉冲。

1.1.2 比特和字节

计算机就是一系列的电路开关。每个开关存在两种状态:关(off)和开(on)。简单而言,在计算机中存储信息就是将一系列的开关设置为开或关。如果电路是开的,它的值是 1,0。如果电路是关的,它的值是 0。

这些 0 和 1 被解释为二进制数字系统中的数,并且将它们称为 比特(bit,二进制数)

byte :

计算机中的 字节(byte) 是最小的储存单元。每个字节由 8 个比特构成。像 3 这样的小数子就可以储存在单个字节不算。为了储存单个字节放不下的大数字,计算机需要使用几个字节。

各种类型的数据(例如,数字和字符)都被编码为字节序列。程序员不需要关心数据的编码和解码,这些都是系统根据 编码模式(schema) 来自动完成的。

编码模式是一系列的规则,控制计算机将字符、数字和符号翻译成计算机可以实际工作的数据。大多数模式将每个字符翻译成预先确定的一个比特串。例如,在流行的 ASCII 编码模式中,字符 C 是用一个字节 01000011 来表示的。

计算机的储存能力是以字节和多字节来衡量的,如下:

  • 千字节(kilobyte,KB)大约是 1000 字节。
  • 兆字节(megabyte,MB)大约是 100 万字节。
  • 千兆字节(gigabyte,GB)大约是 10 亿字节。
  • 万亿字节(terabyte,TB)大约是 1 万亿字节。

1.1.3 内存

计算机的内存由一个有序的字节序列组成,用于储存程序及程序需要的数据。

你可以将内存想象成计算机执行程序的工作区域。一个程序和它的数据在被 CPU 执行前必须移到计算机的内存中。

每个字节都有一个唯一的地址,使用这个地址确定字节的位置,以便于储存和获取数据。以为可以按任意顺序存取字节,所以内存也被称为 随机访问储存器(Random-Access Memory,RAM)。现在的个人计算机通常至少有 4GB 的 RAM,但是它们一般装有 6~8GB 的内存。通常而言,一个计算机具有的 RAM 越多,它的运行速度越快,但是这条简单的经验法则是有限制的。

内存中字节的内容永远非空,但是它的原始内容可能对你的程序来说是毫无意义的。一旦新的信息被放入内存,该字节的当前内容就会丢失。

同 CPU 一样,内存也是构建在一个表面上嵌有数百万年晶体管的硅半导体芯片上。与 CPU 芯片相比,内存芯片更简单、更低速,也更便宜。

1.1.4 存储设备

计算机的 内存(RAM) 是一种易失的数据保存形式:断电时存储在内存中的信息就会丢失。程序和数据被永久地存放在存储设备上,当计算机确实需要使用它们时再移入内存,因为从内存读取比从存储设备读取要快得多。

存储设备主要有以下三种类型:

  • 磁盘驱动器
  • 光盘驱动器(CD 和 DVD)
  • USB 闪存驱动器

驱动器(drive) 是对存储介质进行操作的设备,例如,磁盘和光盘。存储介质物理地存储数据和程序指令。驱动器从介质读取数据并将数据写在介质上。

磁盘
每台计算机至少有一个硬盘驱动器。硬盘(hard disk) 用于永久地存储数据和程序。在较新的个人计算机上,硬盘容量一般为 500 G 到 1 TB。磁盘驱动器通常安装在计算机内。此外,还有移动硬盘。

光盘就和数字化视频磁盘
CD 的全称是致密的盘片(conpact disc)。光盘驱动器的类型有两种:只读光盘(CD-R)和可读写光盘(CD-RW)。单张光盘的容量可以达到 700MB。DVD 的全称是数字化多功能碟片或者数字化视频磁盘。一张标准的 DVD 的存储容量是 4.7GB。如同 CD 一样,有两种类型的 DVD:DVD-R(只读)和 DVD-RW(可重写)。

USB 闪存驱动器
通用串行总线(Universal Serial Bus,USB) 接口允许用户将多种外部设备连接到计算机上。可以使用 USB 将打印机、数码相机、鼠标、外部硬盘驱动器,以及其他的设备连接到计算机上。
USB 闪存驱动器(flash drive) 是用于存储和传输数据的设备。闪存驱动器很小——大约就是一包口香糖的大小。

1.1.5 输入和输出设备

输入和输出设备让用户可以和计算机进行通信。最常用的输入和输出设备是键盘(keyboard)和鼠标(mouse),而最常用的输出设备是显示器(monitor)和打印机(printer)。

键盘
键盘是用于输入的设备。
功能键(function key)位于键盘的最上方,而且都是以 F 为前缀。它们的功能取决于当前所使用的软件。
修饰符键(modifier key)是特殊键(例如,Shift、Alt 和 Ctrl),当它和另一个键同时按下时,会改变另一个键的常用功能。
数字小键盘(numeric keypad)、方向键(arrow key)、插入键(Insert)、删除键(Delete)、向上翻页键(Page Up)和向下翻页键(Page Down)。

显示器
显示器(monitor)显示信息(文本和图形)。屏幕分辨率和点距决定显示的质量。
屏幕分辨率(screen resolution)是指显示设备水平和垂直维度上的像素数。像素(“ 图像元素 ” 的简称)就是构建屏幕上图像的小点。比如,对于一个 14 英寸的笔记本屏幕,分辨率一般为宽 1366 像素、高 768 像素。分辨率越高,图像越锐化、越清晰。
点距(dot pitch)是指像素之间以毫米为单位的距离。点距越小,显示效果越好。

通信设备
计算机可以通过通信设备进行联网,例如,拨号调节解调器(modulator / demodulator,调制器 / 解调器)、DSL、电缆调制解调器、有线网络接口卡,或者无线适配器。


1.2 编程语言

计算机程序(program)称为软件(software),是告诉计算机该做什么的指令。

机器语言
计算机的原生语音因计算机类型的不同而有差异。

计算机的原生语言就是 机器语言(machine language),即一套内嵌的原子指令集。

因为这些指令都是以二进制代码的形式存在,所以,为了以机器原生语言的形式给计算机指令,必须以二进制代码输入指令。例如,为进行两数的相加,可能必须写成如下的二进制形式:11011010011010.

汇编语言

汇编语言(assembly language) 使用短的描述性单词(称为助记符)来表示每一条机器语言指令。

例如,助记符 add 一般表示数字相加,sub 表示数字相减。将数字 2 和数字 3 相加得到结果,可以编写如下汇编代码:add 2,3,result。

由于计算机不理解汇编语言,所以需要使用一种称为汇编器(assembler)的程序将汇编语言程序转换为机器代码。

汇编语言中一条指令对应一条机器代码中的一条指令。用汇编语言写代码需要知道 CPU 是如何工作的。汇编语言被认为是低级语言,因为汇编语言本质上非常接近机器语言,并且是和及其相关的。

高级语言
高级语言很像英语,易于学习和使用。它们是平台独立的,这意味着可以使用高级语言编程,然后在各种不同类型的机器上运行。国际语言中的指令称为语句。

用高级语言编写的程序称为 **源程序(source program)**或 源代码(source code)。由于计算机不能运行源程序,源程序必须被翻译成可执行的机器代码。翻译可以由另外一种称为解释器或编译器的编程工具来完成。

  • 解释器从源代码中读取一条语句,将其翻译为机器代码或者虚拟机器代码,然后立刻运行。来自源代码的一条语句可能被翻译为多条机器指令。
  • 编译器(compiler)将整个源代码翻译为机器代码文件,然后执行该机器代码文件。

1.4 操作系统

操作系统(Operating System,OS) 是运行在计算机上的最重要的程序,它可以管理和控制计算机的活动。

操作系统的主要任务有:

  • 控制和监视系统活动
  • 分配和调配系统资源
  • 调度操作

调度工作:

  • 多道程序设计(multiprogramming):允许多个程序通过共享 CPU 同时运行。
  • 多线程(multithreading):允许单个程序同时执行多个任务。
  • 多处理(parallel processing):是指使用两个或者多个处理器共同并行执行子任务,然后将子任务的结果合并以得到完个任务的结果。

1.5 Java、万维网

Java 是:

  • 简单的(simple)
  • 面向对象的(object oriented)
  • 分布式的(distributed)
  • 解释型的(interpreted)
  • 健壮的(robust)
  • 安全的(secure)
  • 体系结构中立的(architecture neutral)
  • 可移植的(portable)
  • 高性能的(high performance)
  • 多线程的(multithreaded)
  • 动态的(dynamic)

万维网(World Wide Web,WWW)

1.6 Java 语言规范、API、JDK 和 IDE

Java 语言规范(Java language specificaton) 定义了 Java 的语法。
Java 库则在 Java API(Application Program Interface,应用程序接口) 中定义。
JDK(Integrated Development Toolkit) 是用于开发和运行 Java 程序的软件。
IDE(Integrated Development Environment) 是快速开发程序的集成开发环境。

1.7 一个简单的 Java 程序

Java 源程序是区分大小写的。

程序中特殊字符的用途:

字符 名称 描述
{} 左花括号和有花括号 表示一个包含语句的块
() 左圆括号和右圆括号 和方法一起用
[] 左方括号和右方括号 表示一个数组
// 双斜杠 表示后面一一行注释
"" 左引用符号和右引用符号 包含一个字符串(即一系列的字符)
; 分号 博士一个语句的结束

1.8 创建、编译和执行 Java 程序

Java 源程序保存为 .java 文件,编译为 .class 文件。 .class 文件是由 Java 虚拟机(JVM) 执行的。
源文件的拓展名必须是 .java,而且文件名必须与公共类名完全相同。

使用 javac ClassName.java 编译程序,使用 java ClassName 来运行程序。

1.9 程序设计风格和文档

在程序的开头写一个总结,解释一下这个程序是做什么的、其主要特点以及所用到的独特技术。

1.10 程序设计错误

程序设计错误可以分为三类:语法错误、运行错误和逻辑错误。

语法错误
在编译过程中出现的错误称为 语法错误(syntax error)编译错误(compile error) 。语法错误是由创建代码是的错误引起的。

运行错误
运行时错误(runtime error) 是引起程序非正常中断的错误。运行应用程序时,当环境检测到一个不可能执行的操作时,就会出现运行错误。

逻辑错误
当程序没有按预期的方式执行时就会发生逻辑错误(logic error)

-END-

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3190 引用 • 8214 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...