计算机,程序和Java概述
1.1什么是计算机
计算机包括硬件(hardware) 和软件(software) 两部分。一般来说,硬件包括计算机中 可以看得见的物理部分,而软件提供看不见的指令,这些指令控制硬件并且使得硬件完成特定的任务。学习一种程序设计语言,并不一定要了解计算机硬件知识,但是如果你了解一些 硬件知识的话,它的确可以帮助你更好地理解程序中指令对于计算机及其组成部分的功效。 一台计算机是由以下几个主要的硬件组件构成的 :
- 中央处理器(CPU)
- 内存(主存)
- 存储设备(例如,磁盘和光盘)
- 输入设备(例如,鼠标和键盘)
- 输出设备(例如,显示器和打印机)
- 通信设备(例如,调制解调器和网卡)
这些组件通过一个称为总线的子系统连接。可以将总线想象成一个连接计算机 组件的道路系统,数据和电信号通过总线在计算机的各个部分之间传输。
中央处理器
中央处理器(Central Processing Unit,CPU) 是计算机的大脑。它从内存中获取指令, 然后执行这些指令。CPU 通常由两部分组成:控制单元(control unit) 和算术 / 逻辑单元 (arithmetic/logic unit)。控制单元用于控制和协调其他组件的动作。算术 / 逻辑单元用于完成 数值运算(加法、减法、乘法、除法)和逻辑运算(比较)。
比特和字节
计算机中字节(byte) 是最小的存储单元。每个字节由 8 个比特构成。像 3 这样的小数字就可以存储在单个宇节中。为了存储单个字节放不下的大数字,计算机需要使用几个字节。
各种类型的数据(例如,数字和字符)都被编码为字节序列。程序员不需要关心数据的 编码和解码,这些都是系统根据编码模式(schema) 来自动完成的。编码模式是一系列的规 则,控制计算机将字符、数字和符号翻译成计算机可以实际工作的数据。大多数模式将每个 字符翻译成预先确定的一个比特串。
- 千字节(kilobyte, KB)大约是 1000字节。
- 兆字节(megabyte, MB)大约是 100万字节。
- 千兆字节(gigabyte, GB)大约是 10亿字节。
- 万亿字节(terabyte, TB)大约是 1 万亿字节。
内存
计算机的内存由一个有序的字节序列组成,用于存储程序及程序需要的数据。你可以将 内存想象成计算机执行程序的工作区域。一个程序和它 的数据在被 CPU执行前必须移到计算机的内存中。
每个字节都有一个唯一的地址。使用一个地址确定字节的位置 ,以便于存储和获取数据。因为可以按任意顺序存取字节 ,所以内存也被称为随机访问存储器(Random-Access Memory,RAM)。
内存中字节的内容永远非空,但是它的原始内容可能对于你的程序来说是毫无意义的。
存储设备
计算机的内存(RAM)是一种易失的数据保存形式:断电时存储在内存中的信息就会丢 失。程序和数据被永久地存放在存储设备上,当计算机确实要使用它们时再移入内存,因为 从内存读取比从存储设备读取要快得多。 存储设备主要有以下三种类型:
- 磁盘驱动器
- 光盘驱动器(CD 和 DVD)
- USB闪存驱动器
驱动器(drive)是对存储介质进行操作的设备,例如,磁盘和光盘。存储介质物理地存 储数据和程序指令。驱动器从介质读取数据并将数据写在介质上。
输入和输出设备
输入设备和输出设备让用户可以和计算机进行通信。最常用的输人设备是键盘 (keyboard) 和鼠标(mouse), 而最常用的输出设备是显示器(monitor) 和打印机(printer)。
通信设备
计算机可以通过通信设备进行联网,例如,拨号调制解调器(modulator/demodulator, 调制器 / 解调器)、DSL、电缆调制解调器、有线网络接口卡,或者无线适配器。
*拨号调制解调器使用的是电话线,传输数据的速度可以高达 56 000bps( bps表示每 秒比特)。
- DSL( Digital Subscriber Line, 數字用户线)使用的也是标准电话线,但是传输数据 的速度比标准拨号调制解调器快 20倍。
- 电纜调制解调器利用电缆公司维护的有线电视电缆进行数据传输,通常速度比 DSL快。
- 网络接口卡(NIC)是将计算机接入局域网(LAN)的设备。局域网通常用于大学、 商业组织和政府组织。一种称为 1000BaseT的高速 NIC 能够以每秒 1000Mbps(Mbps 表示每秒百万比特)的速度传输数据。
- 无线网络现在在家庭、商业和学校中极其流行。现在,每台笔记本电脑都配有无线 适配器,计算机可以通过无线适配器连接到局域网和Internet上。
1.2编程语言
计算机不理解人类的语言,所以,计算机程序必须使用计算机可以使用的语言编写。现在有数百种编程语言,对人们来说,开发它们使编程过程更容易。但是,所有的程序都必须 转换成计算机可以执行的指令。
机器语言
计算机的原生语言因计算机类型的不同而有差异,计算机的原生语言就是机器语言 ( machine language), 即一套内嵌的原子指令集。因为这些指令都是以二进制代码的形式存 在,所以,为了以机器原生语言的形式给计算机指令,必须以二进制代码输人指令。
汇编语言
用机器语言进行程序设计是非常单调乏味的过程,而且,所编的程序也非常难以读 懂和修改。为此,在计算的早期就创建了汇编语言,作为机器语言的替代品。汇编语言(assembly language) 使用短的描述性单词(称为助记符)来表示每一条机器语言指令。
使用汇编语言编写代码比使用机器语言容易。然而,用汇编语言编写代码依然很不方便。汇编语言中的一条指令对应机器代码中的一条指令。用汇编语言写代码需要知道CPU是如何工作的。汇编语言被认为是低级语言,因为汇编语言本质上非常接近机器语言,并且是机器相关的。
高级语言
20 世纪 50 年代,新一代编程语言即众所周知的高级语言出现了。它们是平台独立的, 这意味着可以使用高级语言编程,然后在各种不同类型的机器上运行。高级语言很像英语, 易于学习和使用。高级语言中的指令称为语句。
用高级语言编写的程序称为源程序(source program) 或源代码(source code)。由于计 算机不能运行源程序,源程序必须被翻译成可执行的机器代码。翻译可以由另外一种称为解 释器或者编译器的编程T.具来完成。
- 解释器从源代码中读取一条语句,将其翻译为机器代码或者虚拟机器代码,然后立 刻运行。请注意来自源代码的一条语句可能被翻译为多条机器指令。
动态解释型:读取一行-> 编译一行->生成机器码 ->运行 - 编译器将整个源代码翻译为机器代码文件,然后执行该机器代码文件。
静态编译型:先将所有代码进行编译->生成机器码->运行
1.3 Java语言
Java三大体系
- JavaSE Java Standard Edition Java标准版
桌面应用程序 - JavaEE Java Enterprise Edition Java企业版
服务器软件开发 - JavaME Java Micro Edition Java微型版-Android
电子消费类产
Java的源代码是 .java,经过编译之后生成的是 .class文件, 机器码也叫字节码。
Java的特点是不直接运行在计算机上的,跨平台特点的本质就是.class文件跨平台的。
JRE:软件 Java Runtime Environment Java运行环境
JRE=JVM+核心类库
JDK=开发工具+JRE
JVM= Java Virtual Machine Java虚拟机
查看Java版本 java -version
bin binary二进制文件 可执行程
javac java编译器 将源代码->字节码
java 运行器 将字节码加载进虚拟机并运行代码
1.5编写一个简单的Java程序
public class Helloword {
public static void main(String[] args){
/*
System 系统,过来
out 输出
println 往控制台输出 ln换行
() 输出什么内容
* */
System.out.println("你好 2+");//文本信息 字符串
System.out.println(10);
System.out.println("10");
System.out.println(2+3);
//System.out.println(10/0);//ArithmeticException
System.out.println("2+3");
//需求2+3
System.out.println(2-3);
System.out.println("你"+(2+3)+"好");//+ 字符串连接符
}
}
1.6程序设计错误
- 语法错误
在编译过程中出现的错误称为语法错误(syntax error) 或编译错误(compile error)。语 法错误是由创建代码时的错误引起的,例如:拼错关键字,忽略了一些必要的标点符号,或 者左括号没有对应的右括号。 - 运行时错误
运行时错误(runtime error) 是引起程序非正常中断的错误。运行应用程序时,当环境检测到一个不可能执行的操作时,就会出现运行时错误。输入错误是典型的运行时错误。当 程序等待用户输入一个值,而用户输人了一个程序不能处理的值时,就会发生输入错误。例如:如果程序希望读入的是一个数值,而用户输人的却是一个字符串,就会导致程序出现数 据类型错误。 - 逻辑错误
当程序没有按预期的方式执行时就会发生逻辑错误(logic error)。这种错误发生的原因有很多种。
通常情况下,因为编译器可以明确指出错误的位置以及出错的原因,所以语法错误是很 容易发现和纠正的。运行时错误也不难找,因为在程序异常中止时,错误的原因和位置都会 显示在控制台上。然而,査找逻辑错误就很富有挑战性。 - 常见错误
常见错误 1: 遗漏右括号
常见错误 2: 遗漏分号
常见错误 3: 遗漏引号
常见错误 4: 命名拼写错误