Java程序设计教程
Java Software Solution
第一章. 计算机系统概述
1.1 计算机处理过程 Computer Processing
·计算机系统中的关键硬件组件:
1.中央处理器(CPU)Central Processing Unit
-处理程序指令
2.输入/输出设备(I/O)设备 Input/Output Devices
java程序设计主要内容-提供人机交互界面
3.主储存器 Main Memory
-储存当前执行中的程序和其相关的数据
4.辅助储存器设备 Secondary Memory Devices
-以相对永久的方式保存软件
1.5.5 错误
·程序开发过程中的三种类型错误:
1.编译时错误 Compile-time Error
-编译器将检查整个程序以保证没有语法错误
-如果任何一条语句没有遵守语法规则, 编译器将产生一条语法错误信息
-任何被编译器识别出的错误称为编译时错误 Any error identified by the compiler is called a compile-time error
2.运行时错误 Run-time Error
-出现在程序执行过程中, 将导致程序异常终止
-Example, if we attempt to divide by zero, the program will “crash” and halt execution at that point. (0不可以做被除数)
3.逻辑错误 Logical Error
-属于软件问题
-程序可以正常编译和执行, 但是执行结果不正确
第二章. 数据与表达式 Data and Expression
2.1 字符串 Character String
· 一个字符串是一个对象,由String类定义;
·字符串是计算机程序设计中非常基础的类型,因此java允许定义字符串常量(String Literal),并以双引号(“”,double quotation)作为字符串的分界符;
2.1.1 print和println方法
· println方法和print方法都是由System.out对象提供的可用服务;
·print方法输出发送给它的信息后保持光标的当前位置;
·println方法输出发送给它的信息后将光标移至下一行的起点(advance to the beginning of the next line)
2.1.2 字符串拼接 String Concatenation
2.1.3 转义序列 Escape Sequences
· Java语言中,双引号用于表示一个字符串的开始与结束,因此必须使用一种技术来输出双引号本身。由此Java定义了若干个转义序列来表示特殊字符;
·Java转义序列:
转义序列 | 意义 |
\b | 回退符 |
\t | 制表符 |
\n | 换行符 |
\r | 回车符 |
\” | 双引号 |
\’ | 单引号 |
\\ | 反斜杠 |
2.2 变量与赋值 Variables and Assignment
2.2.1 变量 Variables
· 变量代表保存数据的内存单元,用于保存具有某种数据类型的值;(A variable is a name for a memory location used to hold a value of a particular data type.)
·变量声明(Variable Declaration)要求编译器分配足够大的内存单元来保存指定类型的值;
1.变量声明由类型说明符以及后续的变量名列表组成;
2.每一个变量可以在声明时用指定的表达式初始化(initialized);
3.如果声明中使用了final修饰符,则声明的标识符命名为常量,且一旦赋值就不可改变;
2.2.2 赋值语句 The Assignment Statement
· 基本赋值语句用赋值运算符(=,assignment operator)将表达式的计算结果保存到指定的标识符所代表的内存单元(通常为常量)中;
·
Java语言强调数据类型(Java language is strongly typed),这意味着不允许给一个变量赋予一个具有与该变量所声明的数据类型不一致的值;
2.2.3 常量 Constants
· 常量存在期间保存着一个特定的值,并在赋予初始值后不可改变,否则编译器将产生错误信息
2.3 基本数据类型 Primitive Data Type
· Java有8种基本数据类型:
-4种整形(Integers):byte,long,int,short;
-2种浮点型(Floating Points):float,double;
-字符型(Character Data Type);
-布尔型(Boolean Type);
2.3.1 整形与浮点型 Integers and Floating Points
· Java有2种基本的数值型数据:整形(4种)和浮点型(2种);
类型 | 存储空间(位) | 最小值 | 最大值 |
byte | 8 | -128 | 127 |
short | 16 | -32768 | 32767 |
int | 32 | -2147483648 | 2147483647 |
long | 64 | -9 223 372 036 854 775 808 | 9 223 372 036 854 775 807 |
float | 32 | 近似值-3.4E+38,7位有效数字 | 近似值3.4E+38,7位有效数字 |
double | 64 | 近似值-1.7E+308,15位有效数字 | 近似值1.7E+308,15位有效数字 |
2.3.2 字符型 Character Type
· 字符型也是一种基本数据类型,而String不是Java的数据基本类型而是一个类;
·单个字符可以视为一项数据,由字符可以组成字符串;
·在Java中,用单引号(‘’,single quotes)表示字符常量;
2.3.3 布尔型 Boolean Type
· Java用保留字boolean定义布尔变量。一个布尔变量包括两种有效值,true和false;
·Java中德单词true和false用做表示布尔常量值的保留字;
2.4 表达式 Expression
· 表达式是运算符(Operators)和操作数(Operands)按一定规则构成的组合,用于完成计算;
2.4.1 算数运算符 Arithmetic Operator
· 算数运算符用于整形和浮点型数据的运算,包括加( + addition)、减( - subtraction)、乘( * multiplication)、除( / division)。Java还提供了另一种算数运算:求余运算( % remainder operator),求余运算返回第二个操作数除第一个操作数的余数;
2.4.2 运算符优先级 Operator Precedence
优先级 | 运算符 | 运算 | 结合方向 |
1 | + - | 一元取正值 一元取负值 | 从右到左 |
2 | * / % | 乘法 除法 求余 | 从左到右 |
3 | + - + | 加法 减法 字符串拼接 | 从左到右 |
4 | = | 赋值 | 从右到左 |
2.4.3 自增和自减运算符 Increment and Decrement Operators
· 自增运算符(++) 自减运算符(--)
2.4.4 赋值运算符 Assignment Operator
· 基础赋值运算符(=);
·组合赋值运算符:+=、-=、*=、/=、%= ……
2.5 数据类型转换 Data Conversion
2.5.1 类型转换的安全性
· 扩展型转换:使用相等的或更大的数据储存空间来保存类型转换后的值, 因而是更安全的转换类型,一般不会丢失信息;
·压缩型转换:使用更少的存储空间来保存类型转换后的值,相对与扩展型转换而言更容易丢失信息,原则上应当避免这种类型的转换;
·
Boolean型值不能转换为任何一种基本类型,反之亦然;
2.5.2 数据类型转换技术 Conversion Techniques
· 在Java中,数据转换的方式有3种:
1.Assignment conversion 赋值型转换;
2.Promotion “低级别”类型向“高级别”类型的自动类型转换;
3.Casting 强制类型转换;
·强制转换类型是Java中最常见的类型转换形式;
2.6 交互程序 Interactive Programs
2.6.1 Scanner类 The Scanner Class
· Scanner类提供了一些从不同数据源读取各种类型数据的方法
·
在使用Scanner类时,首先必须创建Scanner类对象以便引用其方法。在Java中用new运算符创建对象,声明语句如下:
Scanner scan = new Scanner (System . in);
System.in对象代表标准输入流设备,默认时为键盘
·除非特别说明,Scanner对象假定空白字符用于分离输入数据流中的各个数据项(称为token)。如果输入数据项是用非空白字符分隔开的,则可以重新定义一组输入分隔符;
Scanner类提供的部分方法
Scanner (InputStream source) | 构造方法,建立新的Scanner对象,从指定的数据源获取输入数据 |
Scanner (File source) | |
Scanner (String source) | |
String next() | 以字符串类型返回下一个输入数据项 |
String nextLine() | 以字符串类型返回当前行剩余的所有项数据 |
boolean nextBoolean() | 这些方法以指定的类型返回下一个输入数据项.如果下一个数据项与指定的数据项不一致,则抛出InputMismatchException |
byte nextByte() | |
double nextDouble() | |
float nextFloat() | |
int nextInt() | |
long nextLong() | |
short nextShort() | |
boolean hasNext() | 如果Scanner对象还有输入数据项,则返回True |
Scanner useDelimiter(String pattern) | 设置Scanner对象的分隔符模式 |
Scanner useDelimiter(Pattern pattern) | |
Pattern delimiter() | 返回Scanner对象当前正使用的匹配分隔符模式 |
String findInLine(String pattern) | 试图到下一个符合指定模式的数据项,符合分隔符 |
String findInLine(Pattern pattern) | |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论