00 00Java基础之计算机、程序和Java概述

应知应会

  1. 计算机是存储和处理数据的电子设备。
  2. 计算机包括硬件和软件两个部分。
  3. 硬件是计算机中可以触摸到的物理部分。
  4. 计算机程序,也就是通常所说的软件,是一些不可见的指令,他们控制硬件完成任务。
  5. 计算机程序设计就是编写让计算机执行的指令(即代码)。
  6. 中央处理器(CPU)是计算机的大脑。它从内存获取指令并且执行这些指令。
  7. 计算机使用0或1,因为数字设备有两个稳定的状态,习惯上就是指0和1。
  8. 一个比特是指二进制数0或1。
  9. 一个字节是指8比特的序列。
  10. 内存存储CPU要执行的数据和程序指令。
  11. 内存单元是字节的有序序列。
  12. 内存是不能长久保存数据的,因为断电时信息就会丢失。
  13. 程序和数据永久地保存在存储设备里,当计算机确实需要它们时被移入内存。
  14. 机器语言是一套内嵌在每台计算机的原始指令集。
  15. 汇编语言是一种低级程序设计语言,它用助记符表示每一条机器语言的指令。
  16. 高级语言类似英语,易于学习和编写程序。
  17. 用高级语言编写的程序称为源程序。
  18. 编译器是将源程序翻译成机器语言程序的软件。
  19. 操作系统(OS)是管理和控制计算机活动的程序。
  20. Java是平台无关的,这意味着只需编写一次程序,就可以在任何计算机上运行。
  21. Java程序可以内嵌在HTML网页内,通过Web浏览器下载,给Web客户带来生动的动画和灵活的交互性。
  22. Java源程序文件名必须和程序中的公共类名一致,并且以扩展名.java结束。
  23. 每个类都被编译成一个独立的字节码文件,该文件名与类名相同,扩展名为.class。
  24. 使用javac命令可以从命令行编译Java源代码文件。
  25. 使用java命令可以从命令行运行java类。
  26. 方法包含在类中。每个可执行的Java程序必须有一个main方法。main方法是程序开始执行的入口。
  27. 编译错误可以分为3类:语法错误、运行时错误和逻辑错误。

1 引言

  • 程序设计指创建(或者开发软件),软件也称为程序。简言之,软件包含了指令,告诉计算机(或者计算设备)做什么。

2 什么是计算机

要点提示:计算机是存储和处理数据的电子设备。

  计算机包括硬件(hardware)和软件(software)两部分。一般来说,硬件包括计算机中可以看得见物理部分,而软件提供看不见的指令,这些指令控制硬件并且使得硬件完成特定的任务。
  一台计算机是由以下几个主要的硬件组件构成的:

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

&mesp; 这些组件通过一个称为总线(bus)的子系统连接。在个人计算机中,总线搭建在主板上,主板是一个连接计算机各个部分的电路板。

2.1 中央处理器

  中央处理器(Central Processing Unit,CPU)是计算机的大脑。它从内存中获取指令,然后执行这些指令。CPU通常由两部分组成:控制单元(control unit)和算术/逻辑单元(arithmetic/logic unit)。控制单元用于控制和协调其他组件的动作。算术/逻辑单元用于完成数值运算(加法、减法、乘法、除法)和逻辑运算(比较)。
  每台计算机都有一个内部时钟,该时钟以固定速度发射电子脉冲。这些脉冲用于控制和同步各种操作的步调。时钟速度越快,在给定的时间段内执行的指令就越多。核是指处理器中实现指令读取和执行的部分。

2.2 比特和字节

  计算机就是一系列的电路开关。每个开关存在两种状态:关(off)和开(on)。简单而言,在计算机中存储信息就是将一系列的开关设置为开或者关。如果电路是开的,它的值是1。如果电路是关的,它的值是0。这些0和1被解释为二进制数字系统中的数,并且将它们称为比特(bit,二进制数)。
  计算机中的字节是最小存储单元。每个字节由8比特组成。各种类型的数据都被编码为字节序列,这些都是系统根据编码模式(schema)来自动完成的。编码模式是一系列的规则,控制计算机将字符、数字和符号翻译成计算机可以实际工作的数量。

2.3 内存

  计算机的内存由一个有序的字节序列组成,用于存储程序及程序需要的数据。内存是计算机执行程序的工作区域。一个程序和它的数据在被CPU执行前必须移到计算机的内存中。
  每个字节都有一个唯一的地址,使用这个地址确定字节的位置,以便于存储和获取数据。因为可以按任意顺序存取字节,所以内存也被称为随机访问存储器(Random-Access Memory,RAM)

2.4 存储设备

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

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

2.5 输入和输出设备

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

2.6 通信设备

  计算机可以通过通信设备进行联网。

3 编程语言

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

3.1 机器语言

  计算机的原生语言就是机器语言(machine language),即一套内嵌的原子指令集。这些指令都是以二进制代码的形式存在。

3.2 汇编语言

  机器语言进行程序设计非常单调乏味,所编程序也非常难以读懂和修改。由此出现了汇编语言(assembly language),它使用短的描述性单词(称为助记符)来表示每一条机器语言指令。将汇编语言程序转换为机器代码的程序叫汇编器(assembler),这种语言被认为是低级语言。

3.3 高级语言

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

  • 解释器从源代码中读取一条语句,将其翻译为机器代码或者虚拟机器代码,然后立刻运行。
  • 编译器将整个源代码翻译为机器代码,然后执行该机器代码文件。

4 操作系统

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

  操作系统的主要任务有:

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

4.1 控制和监视系统的活动

  • 执行基本的任务(如识别来自键盘的输入,向显示器发送输出结果等等)
  • 确保不同的的程序和用户同时使用计算机时不会互相干扰。
  • 负责安全处理,确保未经授权的用户和程序无权访问系统。

4.2 分配和调配系统资源

  操作系统负责确定一个程序需要使用哪些计算机资源(例如,CPU、内存、磁盘、输入和输出设备),并进行资源分配和调配以运行程序。

4.3 调度操作

  操作系统负责调度程序的活动,以便有效利用系统资源。为了提高系统的性能,有多道程序设计(multiprogramming)、多线程(multithreading)和多处理(multiprocessing)技术。

  • 多道程序设计允许多个程序通过共享CPU同时运行(原因:CPU的速度比其他组件快得多)
  • 多线程允许单个程序同时执行多个任务。
  • 多处理也称为并行处理(parallel processing),是指使用两个或多个处理器共同并行执行子任务,然后将子任务的结果合并以得到整个任务的结果 。

5 Java

要点提示:Java是一种功能强大和多用途的编程语言,可用于开发运行在移动设备、台式计算机以及服务器端的软件。

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

6 Java语言规范、API、JDK、IDE

要点提示:Java语言规范定义了Java语法,Java库则在Java API中定义。JDK则是用于开发和运行Java程序的软件。IDE是快速开发程序的集成开发环境。

  Java语言规范(Java language specification)是对语言的技术定义,包括Java程序设计语言的语法和语义。
  应用程序接口(Application Program Interface,API)也称为库,包括为开发Java程序而预定义的类和接口。
  Java的三个版本:

  • Java标准版(Java Standard Edition,Java SE)可以用来开发客户端的应用程序。应用程序可以独立运行或作为applet在Web浏览器中运行。
  • Java企业版(Java Enterprise Edition,Java EE)可以用来开发服务器端的应用程序,例如Java servlet、Java Server Page(JSP)和Java Server Faces(JSF)。
  • Java微型版(Java Micro Edition,Java ME)用来开发移动设备的应用程序。
      Java开发工具包(Java Development Toolkit,JDK)是由一套独立程序构成的集合,每个程序都是从命令行调用的,用于开发和测试Java程序。

7 一个简单的Java程序

要点提示:Java是从类中的main方法开始执行的。

  控制台(console)指计算机的文本输入和显式设备。控制台输入指从键盘上接收输入,而控制台输出是指在显示器上显示输出。以下是一个简单的程序示例:

package topic00;
/**
 * FileName: A0welcome.java
 * @author victor
 * date:2020.02.16
 */

public class A0welcome {

	public static void main(String args[]) {
		//Display message "Welcome to Java!" on the console
		System.out.println("Welcome to Java!");
	}
}

  第8行定义了一个类。每个Java程序至少应该有一个类,每个类都有一个名字。按照惯例,类名(class name)都是以大写字母开头的。
  第10行定义主方法(main method)。程序是从main方法开始执行的,一个类可以包含几个方法。main方法是程序开始执行的入口。
  方法是包含语句的结构体。Java中每条语句都以分号结束,也称为语句结束符(statement terminator)。
  保留字(reserved word)或关键字(keyword)对编译器而言都是有特定含义的,所以不能在程序中用于其他目的。
  第11行是注释(comment),他标注该程序是干什么的,以及它是如何构建的。注释帮助程序员进行相互沟通以及理解程序。在Java中,在单行上用两个斜杆(//)引导注释,称为行注释(line comment);在一行或多行用//括住注释,称为块注释(block comment)。下面是两个注释的例子:

//This is line comment
/*This is block comment */
/*This is 
block comment*/

  程序中的一对花括号将程序的一些组成部份组合起来,形成一个块(block)。在Java中,每个块以左花括号({)开始,以右花括号(})结束。每个类都有一个将该类的数据和方法放在一起的类块(class block)。每个方法都有一个将该方法中的语句放在一起的方法块(method block)。块是可以嵌套的,即一个块可以放在另一个块内。

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

要点提示:Java源程序保存为.java文件,编译为.class文件。.class文件有Java虚拟机(JVM)执行。

  在执行程序之前,必须创建程序并进行编译。这个过程是反复执行的,如下图所示。如果程序有编译错误,必须修改程序来纠正错误,然后重新编译它。如果程序有运行时错误或者不能产生正确的结果,必须修改这个程序,重新编译,然后重新执行。
在这里插入图片描述
  如果没有语法错误,编译器(compiler)就会生成一个扩展名为.class的字节码文件。Java语言是高级语言,而Java字节码是低级语言。字节码类似于机器指令,但它是体系结构中立的,是可以在任何带了Java虚拟机(JVM)的平台上运行的,虚拟机不是物理机器,而是一个可以解释Java字节码的程序。这是Java的主要优点之一:Java字节码可以在不同硬件平台和操作系统上运行。

警告:在命令行执行程序时,不要使用扩展名.class。使用java ClassName来运行程序。如果在命令行使用java ClassName.class,系统就会尝试读取ClassName.class.class。
提示:如果要运行一个不存在的类,就会出现NoClassDefFoundError的错误。如果执行的类文件中没有main方法或敲错了main方法,则会出现提示NoSuchMethodError。
提示:在执行一个Java程序时,JVM首先会用一个称为类加载器(class loader)的程序将类的字节码加载到内存中。如果你的程序中使用其他类,类加载程序会在需要它们之前动态地加载它们。当加载该类后,JVM使用一个称为字节码验证器(bytecode verifier)的程序来检验字节码的合法性,确保字节码不会违反Java的安全规范。Java强制执行严格的安全规范,以确保来自网络的Java程序不会篡改和危害你的计算机。

9 程序设计风格和文档

要点提示:良好的程序设计风格和正确的文档使程序更易阅读,并且能帮助程序员避免错误。

  程序设计风格(programming style)决定程序的外观。例如整个一堆的代码,虽然可以正确编译和运行,但是其可读性非常差。文档(documentation)是关于程序的解释性评注和注释的一个结构体。程序设计风格与文档和编写代码一样重要。良好的程序设计风格和适当的文档可以减少出错的机率,并提高程序的可读性。

9.1 正确的注释和注释风格

  Java文档注释(javadoc comment)。以/**开头,*/结尾。它们能使用JDK的javadoc命令提取成一个HTML文件。一般用来注释整个类或整个方法。

9.2 正确的缩进和空白

  保持一致的缩进风格会使程序更加清晰、易读、易于调试和维护。缩进(identation)用于描述程序中组成部分或语句之间的结构性关系。对齐不影响JVM,但是正确的对齐能够使人们更易读懂和维护代码。

9.3 块的风格

  块是由花括号围起来的一组语句。块的书写方式有两种常用方式:次行(next-line)风格和行尾(end-of-line)风格,如下所示:

//次行风格
public class Test
{
  //your code
}

//行尾风格
public class Test{
  //your code
}

10 程序设计错误

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

10.1 语法错误

  在编译过程中出现的错误称为语法错误(syntax error)或编译错误(compile error)。语法错误是由创建代码时的错误引起的。这类错误很容易发现,因为编译器会告诉你错误在哪,以及是什么原因造成的。

10.2 运行时错误

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

10.3 逻辑错误

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

参考文献

[1] 梁勇.Java语言程序设计(基础篇)[M].原书第十版. 北京:机械工业出版社

发布了35 篇原创文章 · 获赞 11 · 访问量 739

猜你喜欢

转载自blog.csdn.net/weixin_43762330/article/details/104301153
00