01-计算机、程序和Java概述
-
1.1 引言
- 该专题旨在学习如何通过编写程序来解决问题
-
1.2 什么是计算机
计算机是存储和处理数据的电子设备。
计算机包括硬件和软件两部分。硬件指的是计算机中可见的物理部分,而软件指的是提供不可见的指令,这些指令控制硬件并使得硬件完成特定的任务。一台计算机是由以下几个主要的硬件组件构成的:
- 中央处理器
- 内存(主存)
- 存储设备(磁盘和光盘)
- 输出设备(显示器和打印机)
- 输入设备(鼠标和键盘)
- 通信设备(调制解调器和网卡)
- 1.2.1 中央处理器
- 中央处理器是计算机的大脑,由控制单元和算术/逻辑单元组成。
- 控制单元:用于控制和协调其他组件的动作。
- 算术/逻辑单元:用于完成数值运算(加法、减法、乘法、除法)和逻辑运算(比较)。
- 1.2.2 比特和字节
- 计算机中字节是最小的存储单元。
- 计算机的存储能力是以字节和多字节来衡量的:
- 千字节(KB)大约是1000字节
- 兆字节(MB)大约是100万字节
- 千兆字节(GB)大约是10亿字节
- 万亿字节(TB)大约是1万亿字节
- 1.2.3 内存
- 计算机的内存由一个有序的字节序列组成,用于存储程序及程序需要的数据。
- 每个字节都有唯一的地址,以便于存储和获取数据。
- 内存中字节的内容永远非空,但是她的原始内容可能对于你的程序来说是毫无意义的。一旦新的信息被放入内存,该字节的当前内容就会丢失。
- 1.2.4 存储设备
- 磁盘驱动器
- 光盘驱动器(DVD和CD)
- USB闪存驱动器
- 1.2.5 输入和输出设备
- 1.2.6 通信设备
-
1.3 编程语言
- 1.3.1 机器语言
- 计算机的原生语言就是机器语言,是一套内嵌的基本指令集。这些指令都是以二进制代码的形式存在。
- 1.3.2 汇编语言
- 汇编语言使用短的描述性单词(称为助记词)来表示每一条机器语言指令。
- 1.3.3 高级语言
- 用高级语言编写的程序都称为源程序或源代码。由于计算机不能运行源程序,源程序必须被翻译成可执行的机器代码。翻译可以由另外一种称为解释器或者编译器的编程工具来完成。
- 1.3.1 机器语言
语言 | 描述 |
---|---|
Ada | 以Ada Lovelace(她研究机械式的通用型计算机)命名。Ada是为美国国防部开发的,主要用于国防项目 |
BASIC | 是Beginner’s All-purpose Symbolic Instruction Code(初学者通用符号指令代码)的缩写,是为了是初学者易学易用而设计的 |
C | 由贝尔实验室开发。C语言具有汇编语言的强大功能以及高级语言的易学性和可移植性 |
C++ | 基于C语言开发,是一种面向对象程序设计语言 |
C# | 读为“C Sharp”,是由Microsoft公司开发的面向对象程序设计语言 |
COBOL | 是COmmon Business Oriented Language(面向通用商业的语言)的缩写,是为商业应用而设计的 |
FORTRAN | 是FORmula TRANslation(公式翻译)的缩写,广泛应用于科学和数学应用 |
Java | 由Sun公司(现在属于Oracle)开发,是面向对象程序设计语言,广泛应用于开发平台独立的互联网应用程序 |
JavaScript | 是由Netscape公司开发的Web编程语言 |
Pascal | 以Blaise Pascal(Blaise Pascal是17世纪计算机器的先驱)命名,Pascal是一个简单的、结构化的、通用目的的语言,主要用于编程教学 |
Python | 是一种简单的通用目的的脚本语言,适合编写小程序 |
Visual Basic | 又Microsoft公司开发,方便编程人员快速开发基于Windows的应用 |
- 1.4 操作系统
- 操作系统的主要任务:
- 控制和监视系统活动
- 分配和调配系统资源
- 调度操作
- 1.4.1 控制和见识系统活动
- 操作系统跟踪存储设备中文件和文件夹的动态,还要确保不同的程序和用户同时使用计算机时不会互相干扰,另外,操作系统还负责安全处理,以确保未经授权的用户和程序无权访问系统。
- 1.4.2 分配和调配系统资源
- 操作系统负责确保一个程序需要使用哪些计算机资源,并进行资源分配和调配以运行程序。
- 1.4.3 调度操作
- 操作系统负责调度程序的活动,以便有效的利用系统资源。
- 多道程序设计允许多个程序通过共享一个CPU同时运行。
- 多线程允许单个程序同时执行多个任务。
- 多处理类似于多线程,区别在于多线程是在单个程序中并行运行多个线程,而多处理是采用多个处理器来并行运行多个程序。
- 操作系统的主要任务:
- 1.5 Java、万维网以及其他
- Java是由James Gosling在Sun公司领导的小组开发的。(2010年Sun公司被Oracle收购)
- 这种能在Web浏览器中运行的Java程序称为Java小程序(applet)。
- 用于安卓手机的软件也是采用Java进行开发的。
- 1.6 Java语言规范、API、JDK、JRE和IDE
- Java语言规范定义了Java的语法,完整的Java语言规范可以在docs.oracle.com/javase/specs上找到。
- Java库则在Java应用程序接口(API)中定义。
- JDK适用于开发和运行Java程序的软件。
- IDE是快速开发程序的集成开发环境。
- 1.7 一个简单的Java程序
- Java是从类中的main方法开始执行的。
- 类名都是以大写字母开头的。
- 一个字符串必须放入双引号中。Java中的每条语句都是以分好(;)结束,也称为语句结束符。
- Java源程序是区分大小写的。如果在程序中奖main替换成Main,就会报错的。
- print方法和println方法几乎一样,除了println方法在线上一个字符串后将移到下一行开始处,而print方法在完成显示后不会前进到下一行。
字符 | 名称 | 描述 |
---|---|---|
{} | 左花括号和右花括号 | 表示一个包含语句的块 |
() | 左圆括号和右圆括号 | 和方法一起使用 |
[] | 左方括号和右方括号 | 表示一个数组 |
// | 双斜杠 | 表示后面是一行注释 |
“” | 左引号和右引号 | 包含一个字符串(即一系列的字符) |
; | 分号 | 标识一个语句的结束 |
-
1.8 创建、编译和执行Java程序
-
Java源程序保存为.java文件,编译为.class文件。.class文件由虚拟机(JVM)执行。
-
源文件的扩展名必须是.java,而且文件名必须与公共类名完全相同。(如下图)
-
使用命令行执行程序时,不要使用扩展名.class。使用java ClassName来运行程序。如果在命令行使用java ClassName.class,系统就会尝试读取ClassName.Class。
-
如果运行一个不存在的类文件,就会出现NoClassDefFoundError的错误。如果执行的类文件中没有main方法或敲错了main方法(例如,将main错敲成Main),则会出现提示NoSuchMethodError。
-
-
1.9 程序设计风格和文档
-
1.9.1 正确的注释和注释风格
- 除了行注释(以//开始)和块注释(以/*开始)之外,Java还支持一种称为Java文档注释(javadoc comment)的特殊注释形式,该注释以//开始,以/结尾。
- 使用javadoc注释(/**…*/)来对整个类或整个方法进行注释。
package chapter01; public class Try { public static void main(String[] args){ //累加的一个变量 /* 这里只是为了掩饰注释的 这一行同样也是*/ int result=0; for(int i=0;i<args.length;i++){ result+=Integer.parseInt(args[i]); System.out.println(result); } } }
-
1.9.2 正确的缩进和空白
- 缩进用于展示程序中组成部分或语句之间的结构性关系。二院操作符的两遍应该各加一个空格。
-
1.9.3 块的风格
- 次行风格和行尾风格
package chapter01; public class BlockStyle { public static void main(String[] args){ System.out.println("这个是行尾风格"); } }
package chapter01; public class BlockStyle2 { public static void main(String[] args) { System.out.println("这个是次行风格"); } }
-
-
1.10 程序设计错误
-
1.10.1 语法错误
- 语法错误是由创建代码时的错误引起的。
- 语法错误是由创建代码时的错误引起的。
-
1.10.2 运行时错误
- 运行时错误是引起程序非正常终止的错误。(比如将0作为除数)
-
1.10.3 逻辑错误
- 当程序没有按照预期的方式执行时就会发生逻辑错误。
-
1.10.4 常见错误
- 1、遗漏右括号
- 2、遗漏分号
- 3、遗漏引号
- 4、名称拼写错误
-
-
1.11 使用NetBeans开发Java程序
- 1.11.1 创建Java工程
- 1.11.2 创建Java类
- 1.11.3 编译和运行类
-
1.12使用Eclipse开发Java程序
- 1.12.1 创建Java工程
- 1.12.2 创建Java类
- 1.12.3 编译和运行类
-
1.13使用 IntelliJ IDEA开发Java程序
- 1.13.1 创建Java工程
- 1.13.2 创建Java类
- 1.13.3 编译和运行类
我自己使用的就是这个开发工具,更加的现代智能化一些。
IntelliJ IDEA创建Java项目
-
复习题
- 1、内存和永久存储设备的主要不同是什么
- 内存一般是ram内存,也就是运行内存,是在程序运行的时候使用的内存
- 永久存储大多指ROM内存,是可以存储数据的,如果不删除,一般是不会丢失数据的
- 2、编译器和解释器的区别(编译器和解释器的区别)
- 1、内存和永久存储设备的主要不同是什么
-
编程练习(这里只提供部分题目,其实本质都是差不多的,会了这些其实这一章的内容也就是知道的)
-
1、编写程序,显示Welcome to Java、Welcome to computer science和Programming is fun。
package chapter01; public class Code_01 { public static void main(String[] args){ System.out.println("Welcome to Java"); System.out.println("Welcome to Computer Science"); System.out.println("Programming is fun"); } }
-
2、编写程序,显示Welcome to Java五次。
package chapter01; public class Code_02 { public static void main(String[] args){ for(int i=0;i<5;i++){ System.out.println("Welcome to Java"); } } }
-
3、编写程序,显示Java的图案。
package chapter01; public class Code_03 { public static void main(String[] args){ char[][] java=new char[4][29]; java[0][4]='J'; java[1][4]='J'; java[2][0]='J'; java[2][4]='J'; java[3][1]='J'; java[3][3]='J'; java[0][9]='A'; java[1][8]='A'; java[1][10]='A'; java[2][7]='A'; java[2][8]='A'; java[2][9]='A'; java[2][10]='A'; java[2][11]='A'; java[3][6]='A'; java[3][12]='A'; java[0][14]='V'; java[0][20]='V'; java[1][15]='V'; java[1][19]='V'; java[2][16]='V'; java[2][18]='V'; java[3][17]='V'; java[0][25]='A'; java[1][24]='A'; java[1][26]='A'; java[2][23]='A'; java[2][24]='A'; java[2][25]='A'; java[2][26]='A'; java[2][27]='A'; java[3][22]='A'; java[3][28]='A'; for(int i=0;i<4;i++){ for (int j=0;j<29;j++){ if (java[i][j]!='J'&&java[i][j]!='V'&&java[i][j]!='A')System.out.print(" "); else System.out.print(java[i][j]); } System.out.println(""); } } }
结果显示:
J A V V A J A A V V A A J J AAAAA V V AAAAA J J A A V A A Process finished with exit code 0
-
4、编写程序,显示以下表格。
package chapter01; public class Code_04 { public static void main(String[] args){ int[][] numbers={ {1,1,1}, {2,4,6}, {3,9,27}, {4,16,64} }; System.out.println("a a^2 a^3"); for (int i=0;i<4;i++){ for(int j=0;j<3;j++){ System.out.format("%-6d",numbers[i][j]); } System.out.println(" "); } } }
结果显示:
a a^2 a^3 1 1 1 2 4 6 3 9 27 4 16 64 Process finished with exit code 0
-
5、编写程序,显示1+2+3+4+5+6+7+8+9的结果。
package chapter01; public class Code_06 { public static void main(String[] args){ int result=0; for (int i=1;i<=9;i++){ result+=i; } System.out.print(result); } }
-
6、编写程序,使用以下公式计算并显示半径为5.5的圆的面积和周长。
周长=2 x 半径 x π
面积=半径 x 半径 x πpackage chapter01; public class Code_08 { public static void main(String[] args){ zhouChang(5.5); mianJi(5.5); } static void zhouChang(double radius){ System.out.println(2*radius*Math.PI); } static void mianJi(double radius){ System.out.println(Math.PI*radius*radius); } }
第一章呢,就是一些基本情况的了解,下面才会真正的进入到Java的学习当中,那就期待下一期吧!
-