第1章 计算机程序和Java概述

1.1 什么是计算机
  计算机包括硬件(hardware)和软件(software)两部分,一般来说硬件包括计算机中可以看见的部分,而软件提供看不见的指令,这些指令控制硬件并且使得硬件完成特定的任务。一台计算机中央处理器,比特和字节,内存,储存设备,输入和输出设备,通信设备组成。
1.1.1 中央处理器 (CPU,Center Processing Unit)
  中央处理器是计算机的大脑。它从内存中获取指令,然后执行这些指令。CPU通常由两部分组成:控制单元(control unit)和算术/逻辑单元(logic unit)。控制单元用于控制和协调其他组件的动作。算术/逻辑单元用于完成数值运算和逻辑比较。
1.1.2 比特和字节
  计算机字节(byte)是最小的存储单元。每个字节由八个比特(bit 二进制数)组成。像3这样的小数字就可以存储在单个字节中。为了存储单个字节放不下的大数字,计算机需要使用几个字节。
  计算机的储存能力是以字节和多字节来衡量的,如下:
   千字节(kilobyte KB)大约是1000字节。
   兆字节(megabyte MB)大约是100万字节。
   千兆字节(gigabyte GB)大约是10亿字节。
  万亿字节(terabyte TB)大约是1万亿字节。
1.1.3 内存
  计算机的内存由一个有序的字节序列组成,用于存储程序需要的数据。可以将它想象成计算机执行程序的工作 区域。一个程序和它的数据在被CPU执行前必须移到内存中。每个字节都有一个唯一的地址,使用这个地址确定字节位置以便存储和获取数据。因为可以按任意顺序存取字节,所以内存也被称为随机访问器(Random-Access Memory,RAM),计算机关闭电源后其内的信息不保存。Rom表示只读存储器,只能读出信息,不能写入信息,计算机关闭电源后其内的信息仍旧保存,一般用它存储固定的系统软件或字库等。

组成java程序的基本要素 java程序的基本组成单元_System


1.1.4 储存设备

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

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

  ① 磁盘驱动器

  ② 光盘驱动器(CD和DVD)

  ③ U闪存驱动器SB

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

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

  光盘和数字化视频磁盘

  CD的全称是致密的盘片(compact disc)。光盘驱动器的类型有两种:只读光盘(CD-RW)。只读光盘上的信息只能用于读取,内容一旦记录到光盘上,用户是不能修改它们的。可读写光盘可以像硬盘一样使用。也就说可以将数据写到光盘上,然后用新的数据将这些数据覆盖掉。单张光盘的容量可以达到700MB。大多数新型的个人计算机都安装了可读写光驱,它支持只读写光盘也支持可读写光盘。

  USB闪存驱动器

  通用串行总线接口允许用户将多种外部设备连接到计算机上 。可以使用USB将打印机,数码相机,鼠标,外部硬盘驱动器,以及其他设备连接到计算机上。

USB闪存驱动器是用于存储和传输数据的设备。闪存驱动器很小。它像移动硬盘一样,可以插入计算机的USB端口。USB闪存的驱动器目前可用的最大储存量为256GB。

1.1.5 输入和输出设备

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

1.1.6 通信设备

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

  拨号调制解调器使用的是电话线,传输数据的速度可以高达56000bps(bps表示每秒比特)

DSL(数字用户线)使用的也是标准电话线,但是传输数据的速度比拨号解调器快20倍。

  电缆强制解调器利用电缆公司维护的有线电缆进行数据传输,通常速度比DSL快。

  网络接口卡是计算机接入局域网的设备。局域网通常用于大学,商业组织和政府组织。一种称为1000BaseT的高速NIC能够以每秒1000Mbps(表示每秒百万比特)的速度传输数据。

  无线网络现在在家庭,商业,和学校中极其流行。现在每台笔记本电脑都配有无线适配器,计算机可以通过无线适配器连接到局域网和Internet上。

1.2 编程语言
  计算机不理解人类的语言,所以,计算机程序必须使用计算机可以使用的语言编写。
1.2.1 机器语言
  计算机的原生语言因计算机的类型不同而又差异,计算机的原生语言及时机器语言,即一套内嵌的原子指令集。因为这些 指令都是以二进制代码的形式存在,所以,为了以机器原生语言的形式给计算机指令,必须以二进制代码输入指令。例如两数相加,必须写成二进制形式。
1.2.2 汇编语言
  机器语言的代替品,汇编语言使用短的描述性单词(称为助记符)来表示每一条机器语言指令。 例如 add 2,3 ,result
  汇编语言的出现降低了程序的设计难度。然而由于计算机不理解汇编语言,所以需要使用一种汇编器(assembler)的程序转换为机器代码
  汇编语言源文件→汇编器→机器代码文件
  使用汇编语言编写代码比机器语言容易,然而,用汇编语言编写代码依然很不方便。汇编语言中的一条指令对应机器代码中的一条指令。用汇编语言写代码需要知道CPU是如何工作的。汇编语言被认为是低级语言,因为汇编语言本质上非常接近机器语言,并且是与机器相关的。
1.2.3 高级语言
  高级语言类似英语, 易于学习和编写程序。用高级语言编写的程序称为源程序。它们是平台相独立的,这意味着可以使用高级语言编程,然后在各种不同类型的机器上运行。高级语言中的指令称为语句。用高级语言编写的程序称为源程序或源代码。由于计算机不能用于源程序,源程序必须翻译成可执行的机器代码。翻译可以由另外一种称为解译器或编译器的编程工具来完成。
  高级语言源文件→解释器→输出(解释器一次翻译并且执行程序的一条语句)
  高级语言源文件→ 编译器→ 机器代码文件→ 执行器→ 输出(编译器将整个源程序翻译为机器语言文件以运行)
  例; area=553.14159;
1.3 操作系统
  操作系统(Operating System, OS)是运行在计算机上的重要程序,它可以管理和控制计算机的活动。流行的操作系统有Microsoft Windows, Mac OS,以及Linux。如果没有计算机上没有安装和运行操作系统,像Web浏览器或者字处理程序这样的应用程序就不能运行。
  操作系统的主要任务有:
    控制和监视系统的活动
    分配和调配系统的资源
    调度操作
1.3.1 控制和监视系统的活动
  操作系统的执行基本任务,例如,识别来自键盘的输入,向显示器发送输出结果,跟踪存储设备中的文件和文件夹的动态,控制似硬盘驱动器和打印机这样的外部设备。操作系统还要确保不同的程序和用户同时使用计算机时不会互相干扰。另外操作系统还负责安全处理,以确保未经授权的用户和程序无法访问系统。
1.3.2 分配和调配系统资源
  操作系统负责确定一个程序需要使用那些计算机资源(例如CPU,内存,磁盘,输入和输出设备),并进行资源分配和调配以运行程序。

1.3.3 调度操作

  操作系统负责程序调度活动,以便有效的利用系统资源。为了提高系统的性能,目前许多操作系统都支持多道程序设计,多线程和多处理这样的技术。

  多道程序允许多个程序通过共享CPU同时运行,CPU的速度比其他的组件快很多,这样多数时间它都处于空闲状态,例如,在等待数据从磁盘或其他资源传入,或者其他系统资源响应时。多到程序设计利用这一特点,允许多个程序同时使用CPU,一旦CPU空闲就让别的程序使用它。例如,在web浏览器下载文件的同时,可以用字吃力程序来编辑文件。

  多线程允许单个程序同时执行任务。例如,字处理程序允许用户在编辑文本的同时,将其保存到文件。编辑和保存是一个程序中的两个不同任务,这两个任务可能同时并发运行。

  多处理也称为并行处理,是指用两个或多个处理器共同并行执行子任务,然后将子任务的结果合并以得到整个任的结果。就像在外科手术中多名医生同时给一个病人手术。

1.4 Java,万维网以及其他

  Java是功能完善的通过程序设计语言,可以用来开发健壮的任务关键的应用程序。Java是由SunMicrosystems公司推出的。Java的源代码 .java经过编译之后生成的是 .class 机器码 字节码但是 Java的特点 Java是不直接运行在计算机上的跨平台特点 本质就是.class文件跨平台的

JVM Java Virtual Machine Java虚拟机

组成java程序的基本要素 java程序的基本组成单元_汇编语言_02

  万维网(World Wide Web)是从世界任何地方的Internet都可以访问的电子信息宝库。

1.5 Java语言规范,API,JRE,JDK和IDE

  Java语言规范(Java language specification)是对语言的技术定义,包括Java程序设计语言的语法和语义。

  应用程序接口(Application Program Interface. API)也称为库,包括为开发Java程序而定义的类和接口。

  JRE:软件 Java Runtime Environment Java运行环境

如果 你想 仅仅 运行 java 程序 装!

  JRE=JVM+核心类库(图书馆)

  JDK:软件 Java Development Kit Java开发工具包

  如果 你想 开发 Java 装!

  JDK=开发工具+JRE

1.6 一个简单的Java程序

  第 1 行定义了一个类。每个 Java 程序至少应该有一个类。每个类都有一个名宇。按照惯例,类名都是以大写字母开头的。本例中,类名(class name) 为 Welcome。

  第 2 行定义主方法( main method)。程序是从 main 方法开始执行的。一个类可以包含几个方法。main 方法是程序开始执行的人口。方法是包含语句的结构体。本程序中的 main 方法包括了 System.out.println 语句。该语句在控制台上打印消息 “ Welcome to 3ava!"(第 4 行)。字符(string) 是一个编程术语,表示一个字符序列。一个字符串必须放人双引号中。Java 中的每条语句都以分号( ;)结束,也称为语句结束符(statement terminator)。

  保留字(reserved word) 或关键字(keyword) 对编译器而言都是有特定含义的,所以不

能在程序中用于其他目的。例如,当编译器看到字 class 时,它知道 class 后面的字就是这个类的名字。这个程序中的其他保留字还有 Public、static 和 void。

  第 3 行是注释(comment), 它标注该程序是干什么的,以及它是如何构建的。

1.7 创建,编译和执行Java程序

组成java程序的基本要素 java程序的基本组成单元_组成java程序的基本要素_03

1.8 程序设计风格和文档

1.8.1 正确的注释和注释风格

1.8.2 正确的缩进和空白

1.8.3 块的风格

1.9 程序设计错误

1.9.1 语法错误

1.9.2 运行时错误

1.9.3 逻辑错误

1.9.4 常规错误

1.10 使用NetBeans开发程序

1.10.1 创建Java工程

   创建 Java 程序前,首先需要创建一个工程。工程类似于一个文件夹,用于包含 Java 程序以及所有的支持文件。你只需要创建工程一次。这里是创建 Java 工程的步骤:

  1 ) 选择 File New Project 来显示 New Project 对话框;

  2 )在 Categories 部分选择 Java, Projects 部分选择;JavaApplication, 然后单击 Next 来显示 New Java Application 对话框

3 ) 在 Pr  oject Name 域中输入 demo, 在 Project Location 域中输入 c:\michael。去掉 UseDedicated Folder for Storing Libraries 的勾选,并且去掉 Create Main Class 的勾选。

1.10.2 创建Java类

  工程创建后,可以采用以下步骤在工程中创建 Java 程序:

  1 )右键单击工程面板的 demo 节点,显示一个上下文菜单。选择 New -Java Class 来显示 New Java Class 对话框;

  2 ) 在 Class Name 域输人 Welcome , 在 Location 域中选择 Source Packages。Package 域保留为空白,这样将在默认包中创建一个类。

  3 ) 单击 Finish 来创建 Welcome 类。源代码文件 Welcome.〗ava 放置在〈default package〉节点下面。

1.10.3 编译和运行类

  要运行 Welcome.java, 右键单击 Welcome.java 以显示一个上下文菜单,选择 Run File,或者简单地按下 Shift+F6。输出显示在输出面板中

编程练习题

组成java程序的基本要素 java程序的基本组成单元_Java_04

public class demo1 {
    public static void main(String[]Args){
	System.out.println((9.5*4.5-2.5*3)/(45.5-3.5));
}
}

组成java程序的基本要素 java程序的基本组成单元_汇编语言_05

public class demo2 {
    public static void main(String[]args){
	System.out.println(1+2+3+4+5+6+7+8+9);
}
}

组成java程序的基本要素 java程序的基本组成单元_汇编语言_06

public class demo3 {
	   public static void main(String[]args){
		System.out.println(4*(1.0-1.0/3+1.0/5-1.0/7+1.0/9-1/11));
	}
}

组成java程序的基本要素 java程序的基本组成单元_System_07

public class demo4 {
	public static void main(String[]args){
		System.out.println(2*5.5*3.14);
	}
}

组成java程序的基本要素 java程序的基本组成单元_组成java程序的基本要素_08

public class demo5{
	public static void main(String[]args){
		System.out.println((14/1.6)/(45*60+30)*3600);
	}
}

组成java程序的基本要素 java程序的基本组成单元_组成java程序的基本要素_09

public class Demo1_6 {
    	public static void main(String[] args) {
    		System.out.println(3600*24*1.6/(1*60*60+40*60+35)+"公里/时");
    		
    	}
    }

组成java程序的基本要素 java程序的基本组成单元_组成java程序的基本要素_10

public class Demo1_7 {
	public static void main(String[] args) {
		System.out.println("x="+(44.5*0.55-50.2*5.9)/(3.4*0.55-50.2*2.1));
	}
}

组成java程序的基本要素 java程序的基本组成单元_Java_11

/* 365天->秒 365*24*60*60
 *312032486+365*24*60*60/7-365*24*60*60/13+365*24*60*60/45
  */
public class Demo1_8 {
	public static void main(String[] args) {
		System.out.println(312032486+365*24*60*60/7-365*24*60*60/13+365*24*60*60/45);
	}
}