1.1什么是计算机

简单来说:计算机就是 ‘ 存储 ’ 和 ‘ 处理 ’ 数据的电子设备。
计算机包括硬件( hardware ) 和软件( software) 两部分
a :硬件包括计算机中可以看得见的物理部分
b : 软件提供看不见的指令,这些指令控制硬件并且使得硬件完成特定的任务

1.2 计算机的组成

一台计算机是由以下几个主要的硬件组件构成的:
• 中央处理器(CPU)
• 内存(主存)
• 存储设备(例如,磁盘和光盘)
• 输入设备(例如,鼠标和键盘)
• 输出设备(例如,显示器和打印机)
• 通信设备(例如,调制解调器和网卡)
这些组件通过一个称为总线(bus ) 的子系统连接。
数据和电信号通过总线在计算机的各个部分之间传输。在个人计算机中,总线搭建在主板上,主板是一个连接计算机各个部分的电路板。

1.2.1 中央处理器

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

1.2.2 比特和字节

计算机实质上就是一系列的电路开关,关和开代表两种状态分别可以用0和1表示。这些 0 和 1 被解释为二进制数字系统中的数,并且将它们称为比特(bit, 二进制数)。

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

*’编码模式‘*是一系列的规则,控制计算机将字符、数字和符号翻译成计算机可以实际工作的数据。大多数模式将每个字符翻译成预先确定的一个比特串。

计算机的存储能力是以字节和多字节来衡量的,如下:
• 千字节(kilobyte, KB) 大约是 1000 字节。
• 兆字节(megabyte, MB) 大约是 100 万字节。
• 千兆字节(gigabyte, GB) 大约是 10 亿字节。
• 万亿字节(terabyte, TB)大约是 1 万亿字节。

1.2.3 内存

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

每个字节都有一个唯一的地址

如同1-2 所示。使用这个地址确定字节的位置,以便于存储和获取数据。因为可以按任意顺序存取字节,所以内存也被称为随机访问存播器(Random-Access Memory, RAM)

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

1.2.4 存储设备

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

存储设备主要有以下三种类型:
• 磁盘驱动器
• 光盘驱动器(CD 和 DVD)
• USB 闪存驱动器
驱动器(drive) 是对存储介质进行操作的设备,例如,磁盘和光盘。存储介质物理地存储数据和程序指令。驱动器从介质读取数据并将数据写在介质上。

1.2.5 输入和输出设备

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

1.2.6 通信设备

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

1.3 编 程 语 言

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

计算机不理解人类的语言,所以,计算机程序必须使用计算机可以使用的语言编写。

1.3.1 机器语言

计算机的原生语言因计算机类型的不同而有差异,计算机的原生语言就是机器语言( machine language), 即一套内嵌的原子指令集。因为这些指令都是以二进制代码的形式存在,所以,为了以机器原生语言的形式给计算机指令,必须以二进制代码输人指令。

1.3.2 汇编语言

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

使用汇编语言编写代码比使用机器语言容易。然而,用汇编语言编写代码依然很不方便。汇编语言中的一条指令对应机器代码中的一条指令。用汇编语言写代码需要知道CPU是如何工作的。汇编语言被认为是低级语言,因为汇编语言本质上非常接近机器语言,并且是机器相关的。

1.3.3 高级语言

20 世纪 50 年代,新一代编程语言即众所周知的高级语言出现了。它们是平台独立的,这意味着可以使用高级语言编程,然后在各种不同类型的机器上运行。高级语言很像英语,易于学习和使用。高级语言中的指令称为语句。

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

1 . 4 操 作 系 统

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

流行的操作系统有 Microsoft Windows、Mac OS以及 Linux。

操作系统的主要任务有:
• 控制和监视系统的活动
• 分配和调配系统资源
• 调度操作

1.4.1 控制和监视系统的活动

操作系统执行基本的任务,例如,识别来自键盘的输入,向显示器发送输出结果,跟踪存储设备中的文件和文件夹的动态,控制类似硬盘驱动器和打印机这样的外部设备。操作系统还要确保不同的程序和用户同时使用计算机时不会相互干扰。另外,操作系统还负责安全处理,以确保未经授权的用户和程序无权访问系统。

1.4.2 分配和调配系统资源

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

1.4.3 调度操作

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

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

1.5 Java、万维网以及其他

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

Java 是由 James Gosling 在 Sun公司领导的小组开发的。(2010年 Sun 公司被 Oracle 收购。)Java 最初被称为 Oak (橡树),是 1991 年为消费类电子产品的嵌入式芯片而设计的。1995 年更名为 Java, 并重新设计用于开发 Web应用程序。

Java 的快速发展以及被广泛接受都应归功于它的设计特性,特别是它的承诺:一次编写,任何地方都可以运行。就像它的设计者声称的,Java 是简单的(simple)、面向对象的(object oriented )、分布式的(distributed )、解释型的(interpreted )、健壮的(robust)、安全的(secure)、体系结构中立的(architectureneutral)、可移植性(portable)、高性能的(high performance)、多线程的( multithreaded ) 和动态的(dynamic)。

Java 是功能完善的通用程序设计语言,可以用来开发健壮的任务关键的应用程序。现
在,它不仅用于 Web 程序设计,而且用于在服务器、台式计算机和移动设备上开发跨平台的独立应用程序。用它开发过与火星探测器通信并控制其在火星上行走的代码。许多曾经认为 Java 言过其实的公司现在使用Java 开发分布式应用程序,便于客户和合作伙伴在 Internet上访问。现在,一旦开发新的项目,公司都会考虑如何利用Java 使工作变得更加容易。

万维网( World Wide Web, WWW)是从世界上任何地方的 Internet 都可以访问的电子信息宝库。Internet 作为万维网的基础架构已经问世四十多年。丰富多彩的万维网和设计精良的 Web 浏览器是 Internet 流行的主要原因。

Java 一开始富有吸引力是因为 Java 程序可以在 Web 浏览器中运行。这种能在 Web浏览器中运行的 Java 程序称为 Java 小程序( applet)。applet 使用现代的图形用户界面与 Web 用户进行交互,处理用户的要求,界面中包括按钮、文本字段、文本域、单选按钮等。applet使得 Web 更加具有响应性、交互性和趣味性。applet内嵌在 HTML 文件中。HTML( HypertextMarkup Language)是一种简单的脚本语言,用于对文档布局,链接因特网上的文档,并且能够在万维网上提供生动的图像、声音和视频。现在,你可以使用Java 开发富因特网应用( RIA)0 富因特网应用作为一种 Web 应用,被设计为可以提供通常桌面应用才具有的特性和功能。

现在,Java 广泛用于开发服务器端的应用程序。这些应用程序处理数据、执行计算,并生成动态网页。许多商用网站后端都是采用 Java 进行开发的。

Java 是一个功能强大的程序设计语言,可以用它来开发台式计算机、 服务器以及小的手持设备上的应用程序。用于安卓手机的软件也是采用Java 进行开发的。

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

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

计算机语言有严格的使用规范。如果编写程序时没有遵循这些规范,计算机就不能理解程序。Java 语言规范和 Java API定义 Java 的标准。

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

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

JDK 是由一套独立程序构成的集合,每个程序都是从命令行调用的,用于开发和测试 Java 程序。除了JDK, 还可以使用某种 Java 开发工具(例如,NetBeans、Eclipse和 TextPad) 为了快速开发 Java 程序而提供集成开发环境(Integrated Development Environment, IDE)的软件。编辑、编译、链接、调试和在线帮助都集成在一个图形用户界面中,这样,只需在一个窗口中输入源代码或在窗口中打开已有的文件,然后单击按钮、菜单选项或者使用功能键就可以编译和运行源代码。

1.7 — 个简单的 Java 程序

Java 是从类中的 main 方法开始执行的。

控制台(console) 是一个老的计算机词汇,指计算机的文本输入和显示设备。控制台输入是指从键盘上接收输人,而控制台输出是指在显示器上显示输出。

每个 Java 程序至少应该有一个类。每个类都有一个名宇。按照惯例,类名都是以大写字母开头的。

程序是从 main 方法开始执行的。一个类可以包含几个方法。main 方法是程序开始执行的人口。

字符串(string) 是一个编程术语,表示一个字符序列。一个字符串必须放人双引号中。Java 中的每条语句都以分号( ;)结束,也称为语句结束符(statement terminator)。

保留字(reserved word) 或关键字(keyword) 对编译器而言都是有特定含义的,所以不能在程序中用于其他目的。例如,当编译器看到字 class 时,它知道 class 后面的字就是这个类的名字。这个程序中的其他保留字还有 public、static 和 void。

注释(comment), 它标注该程序是干什么的,以及它是如何构建的。注释帮助程序员进行相互沟通以及理解程序。注释不是程序设计语句,所以编译器编译程序时是忽略注释的。

在 Java 中,在单行上用两个斜杠(//)引导注释,称为行注释(line comment );在一 行或多行用 /* 和 / 括住注释,称为块注释*(line comment)。当编译器看到 // 时,就会忽略本行 // 之后的所有文本。当看到 /* 时,它会搜索接下来的 /,并忽略掉 / 与 */ 之间的文本。

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

一个左括号必须匹配一个右括号。任何时候,当输入一个左括号时,应该立即输入一个右括号来防止出现遣漏括号的错误。大多数 Java IDE 都会自动地为每个左括号插入一个右括号。

Java 淥程序是区分大小写的。如果在程序中将 main 替换成 Main, 就会出错。

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

Java 源程序保存为 .java 文件,编译为 .class 文件。.class 文件由 Java 虚拟机(JVM)执行。

源文件的扩展名必须是 .java, 而且文件名必须与公共类名完全相同。

Java 编译器将 Java 源文件翻译成 Java 字节码文件。

如果没有语法错误,编译器(compiler) 就会生成一个扩展名为 .class 的宇节码文件。Java 语言是高级语言,而 Java 字节码是低级语言。字节码类似于机器指令,但它是体系结构中立的,是可以在任何带 Java 虚拟机( JVM)的平台上运行的。虚拟机不是物理机器,而是一个解释 Java 字节码的程序。这正是 Java 的主要优点之一:Java 字节码可以在不同的硬件平台和操作系统上运行。Java 源代码编译成 Java 字节码,然后 Java 字节码被 JVM 解释执行。你的 Java 代码可能要用到 Java 库中的代码。JVM 将执行你的程序代码以及库中的代码。

执行 Java 程序就是运行程序的字节码,可以在任何一个装有 JVM 的平台上运行字节码,解释 Java 字节码。解释的过程就是一次将字节码中单独的一步翻译为目标机器语言代码,而不是将整个程序翻译成单独的一块。翻译完一步之后就立即执行这一步。

在执行一个 Java 程序时,JVM 首先会用一个称为类加载器(class loader) 的程序将类的字节码加栽到内存中。如果你的程序中使用其他类,类加栽程序会在需要它们之前动态地加栽它们。当加栽该类后,JVM 使用一个称为字节码验证器( bytecode verifier)的程序来检验字节码的合法性,确保字节码不会违反 Java 的安全规范。Java S制执行严格的安全规范,以确保来自网络的 Java 程序不会篡改和危害你的计算机。

1.9 程序设计风格和文档

程序设计风格( programming style)决定程序的外观。如果把整个程序写在一行,它也会被正确地编译和运行,但是这是非常不好的程序设计风格,因为程序的可读性很差。
文档( documentation)是关于程序的解释性评注和注释的一个结构体。程序设计风格与文档和编写代码的作用一样重要。良好的程序设计风格和适当的文档可以减少出错的机率,并且提髙程序的可读性。

1.10 程序设计错误

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

1.10.1 语法错误

在编译过程中出现的错误称为语法错误( syntax error) 或编译错误(compile error)。语法错误是由创建代码时的错误引起的,例如:拼错关键字,忽略了一些必要的标点符号,或者左花括号没有对应的右花括号。

1.10.2 运行时错误

运行时错误( runtime error) 是引起程序非正常中断的错误。运行应用程序时,当环境检测到一个不可能执行的操作时,就会出现运行时错误。输入错误是典型的运行时错误。当程序等待用户输入一个值,而用户输人了一个程序不能处理的值时,就会发生输入错误。

1.10.3 逻辑错误

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

1.10.4 常见错误

遗漏右括号、遗漏分号、遗漏字符串的引号、命名拼写错误,都是常见的错误。

java基础篇 第1章 计算机、程序和java概述 学习笔记 - 副本相关推荐

  1. 鸟哥的Linux私房菜(基础篇)- 第十七章、程序管理与 SELinux 初探

    第十七章.程序管理与 SELinux初探 最近升级日期:2009/09/11 一个程序被加载到内存当中运行,那么在内存内的那个数据就被称为程序(process).程序是操作系统上非常重要的概念,所有系 ...

  2. 穿越Java - 基础篇 第三章 面向对象介绍 | 第1节 面向对象思想

    面向对象思想 理解: 面向对象更多的是一种思想的体现. 面向过程更多体现的是什么事情都要亲力亲为. 而面向对象跟多体现的是如何指挥别人做事情,只要明确我要干什么即可. 通过将相关或类似的功能 封装在不 ...

  3. Java基础篇 学习笔记

    List item Java基础篇 学习笔记 java基础篇 第1章 计算机.程序和java概述 学习笔记 1.1什么是计算机 简单来说:计算机就是 ' 存储 ' 和 ' 处理 ' 数据的电子设备. ...

  4. java基础篇_java基础篇1

    JAVA基础篇1 注释 单行注释 //这是一个单行注释,由两个斜杠组成,不能嵌套多行注释 多行注释 /*这是一个 多行注释 ,//里面不能嵌套多行注释, 但是可以嵌套单行注释*/ 文档注释 /**ja ...

  5. Java基础篇——三大特性(多态)

    这是Java三大特性的最后一篇文章,本篇主要讲解多态的概念和应用.如果是对Java有兴趣的小伙伴可以关注一下,后续会推出一系列的Java基础和进阶的总结(或者说是个人的理解吧!)可以让你学到一些基础但 ...

  6. 【程序员养成之路】Java基础篇 8-流进流出的IO流(二)

    以下内容若有误,欢迎私信我或在下方留言,谢谢^_− 目录 IO流(二) 1.特殊操作流 1.1 标准流 1.2 打印流 1.3 对象序列化流 1.4 Properties 拓展1:比较字节流和字节缓冲 ...

  7. 菜鸟学习笔记:Java基础篇3(面向对象思想、程序执行过程内存分析、面向对象重要概念)

    菜鸟学习笔记:Java面向对象篇上 Java面向对象的思想 Java程序执行过程内存分析 Java垃圾回收机制 构造方法 方法重载(overload) static关键字 this关键字 Java面向 ...

  8. java基础篇---第一天

    今日开始在心中正式开始在培训班开始培训.一下是在培训的过程中发现自己在自学过的过程中发现的问题.这篇是java基础篇. 第一天 : 1)配置java环境变量 1.在系统变量中新建JAVA_HOME:j ...

  9. Java 基础篇(一)基本概念

    Java 基础篇系列文章目录 Java 基础篇(一)基本概念 Java 基础篇(二)数据类型 Java 基础篇(三)控制逻辑 文章目录 Java 基础篇系列文章目录 Java(软件开发) Java(编 ...

最新文章

  1. 述说C#中的值类型和引用类型的千丝万缕
  2. 深度特征合成与遗传特征生成,两种自动特征生成策略的比较
  3. AI创作神器GAN的演变全过程
  4. Spring-Security-入门(一):登录与退出
  5. 专访《Javascript设计模式与开发实践》作者曾探:爱编程 爱生活
  6. 跨浏览器开发:CSS代码的金科玉律
  7. ESP32 入门教学,不入门,不教学
  8. Java 输出指定目录下的所有文件
  9. 在 java 的 bin 目录下,jdk 提供了很多使用的工具,下面学习一些监控和故障处理的工具。...
  10. python添加模块方法_Python 添加模块
  11. 图数据库 Titan 快速入门
  12. Mac安装原版Windows7无法验证AppleSSD.sys文件数字签名解决办法
  13. 60秒学脑科学常识:《科学美国人》专栏文集
  14. 目前可用的微博秀的嵌入方法大全(亲测2019年2月仍有效) 1
  15. FLV格式文件如何转换成MP4格式
  16. 转:Flutter做出剑气效果
  17. 数学建模之拉依达准则
  18. 7-11 哥德巴赫猜想
  19. DBeaver 连接达梦数据库
  20. 【AI书籍】未来哪些职业会被人工智能所替代,听李开复老师怎么说

热门文章

  1. Third season tenth episode,Rachel quit her job as a waitress
  2. SQL Server 索引基础知识(8)--- 数据基本格式补充(转自蝈蝈俊.net)
  3. [Vue]学习笔记目录 【Vue2与Vue3完结】 (尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通)
  4. vue使用阿里云矢量图
  5. 微信小程序轮播中的current_微信小程序轮播图
  6. 《马云给年轻人的77条忠告》读书笔记2
  7. 2020年黑马python视频教程5.0新版课程_黑马Python就业班5.0-最新2020人工智能
  8. linux解压gcc,Linux,GCC安装(解压版)
  9. STM32 C++编程系列二:STM32 C++代码封装初探
  10. UG12.0安装 出现 General Fault Exception 是硬件还是软件问题