Version 3.0
第二章
Java 编程基础
2
回顾
JVM是 Java 编程语言的核心。
Java 运行时环境 (JRE) 包含一方面与硬件交互、另一方面又与程序交互的 JVM。
Java是完全面向对象的语言,所有的实现必须放在类中。
main函数是 Java应用程序执行的入口。
JDK可用于开发 Java 程序。
3
目标
掌握如何定义标识符
掌握 Java 的关键字
了解 Java 的基本类型
了解并掌握 String 类
掌握 Java 的程序控制流程
掌握数组的定义方法
掌握 java.lang.Math 类
4
注释
Java 语言提供三种类型的注释:
- 单行注释
- 多行注释
- 文档注释以 // 开始,并以换行符结束以 /* 开始,并以 */ 结束以 /** 开始,并以 */ 结束,
注释中的每一行都必须以 * 开始。
使用 javadoc工具从源代码和文档注释中将信息取出,然后转换为 HTML文件。
5
关键字 2-1
原始数据类型
- byte
- short
- int
- long
- float
- double
- char
- boolean
循环关键字
- do
- while
- for
- break
- continue
分支关键字
- if
- else
- switch
- case
- default
- break
方法、变量和类修饰符
- private
- public
- protected
- final
- static
- abstract
- synchronized
- volatile
- strictfp
6
关键字 2-2
异常处理
- try
- catch
- finally
- throw
- throws
对象相关关键字
- new
- extends
- implements
- class
- instanceof
- this
- super
字面 值 常量
- false
- true
- null
方法相关关键字
- return
- void
包相关关键字
- package
- import
7
基本数据类型
Java 共有八 种 基本数据类型:
- 四种整数类型 (byte,short,int,long)
- 两种浮点数类型 (float,double)
- 一种字符类型 (char)
- 一种布尔类型 (boolean)
8
整型数据类型类型 缺省值 长度 数的范围
byte 0 8位 -128 ~ 127
short 0 16位 -32,768 ~ 32,767
int 0 32位 -2,147,483,648 ~ 2,147,483,647
long 0 64位 -9,223,372,036,854,775,808 ~
9,223,372,036,854,775,807
9
浮点型数据类型类型 缺省值 长度 数的范围
float 0.0 32位 3.4E-038~3.4E+038
double 0.0 64位 1.7E-308~1.7E+308
10
字符数据类型类型 缺省值 长度 数的范围
char '\u0000' 16位 \u0000 ~ \uFFFF
11
布尔数据类型类型 缺省值 长度 数的范围
boolean false 1位 false,true
12
字符串
创建一个 String 类的实例:
String strName1 =,Humpty dumpty” ; //字符串字面量
String strName2 = new String("Egg");
两个或多个字符串可以用,+”运算符合并起来。例如:
strName3 = strName1+ " is the name of an " +
strName2;
字符串的长度可以通过 String 类中的函数计算。例如:
int numLength = strName2.length();
也可将数字添加到字符串类型中。例如:
String strVar = "Mark" + 1;
13
字符串池
Java 程序可包含许多字符串字面量
,字符串池”存放在程序中创建的所有字符串字面量
任何时候创建字符串字面量,系统都会搜索字符串池,查看是否存在该字符串字面量。 Sunday
Monday
Hello
Aptech
World
1
2
3
4
N
String day= "Monday";
String weekday = "Monday"; 字符串池
14
String 类方法
charAt(),返回字符串中某个特定位置的字符
indexOf(),返回字符串中某个特定字符或子字符串首次出现的索引
toUpperCase(),将字符串内的所有字符从小写改为大写
toLowerCase(),将字符串内的所有字符从大写改为小写
15
标识符
在 Java中标识符的命名必须符合以下规则:
- 标识符必须以字母或下划线或 $ 符号开始。其余字符可以是字母、数字,$ 符号和下划线。
- 标识符只能包含两个特殊字符,即下划线 (_)
和美元符号 ($)。不允许有任何其他特殊字符。
- 标识符不能包含空格。
表示指定给变量、方法和类的名称,以便编译器可唯一标识它们。
16
变量
变量是在程序执行期间可根据需要经常变化的值
变量具有 3 个特性:
- 名称,标识符
- 初始值,为其赋值或者是保留缺省值
- 作用域,在不同程序块中的可用性及生命周期
17
算术 运算符运算符 含义 示例 求值
+ 加 c = a + b
- 减 c = a - b
* 乘 c = a * b
/ 除 c = a / b
% 取模 c = a % b
++ 递增 a++
-- 递减 b--
+= 相加并赋值 c += a c = c + a
-= 相乘并赋值 c *= a c = c * a
/= 相除并赋值 c /= a c = c / a
%= 取模并赋值 c %= a c = c % a
- 取负数 c= - a
18
关系运算符?关系运算符用于测试两个操作数之间的关系。
关系表达式将返回一个布尔结果。
运算符 含义 示例
== 等于 a==b
!= 不等于 a!=b
> 大于 a>b
< 小于 a<b
>= 大于或等于 a>=b
<= 小于或等于 a<=b
19
逻辑运算符 逻辑运算符与布尔操作数一起使用运算符 含义 示例
& 逻辑与 A & B
| 逻辑或 A | B
^ 逻辑异或 A ^ B
! 逻辑反 ! A
|| 短路或 A || B
&& 短路与 A && B
20
位运算符 用于 int,short,long、byte 和 char 数据类型运算符 含义 示例
~ 按位非( NOT) b = ~a
& 按位与( AND) c = a & b
| 按位或( OR) c = a | b
^ 按位异或( XOR) c = a ^ b
>> 右移 b = a >> 2
>>> 右移,左边空出的位以 0填充 b = a >>> 2
<< 左移 b = a << 1
21
赋值运算符
一次可以为多个变量赋值,如,
int a = 20000;
int p,q,r,s;
p = q = r = s = a;
赋值运算符 (=) 用于为变量赋值
22
三元运算符 (?:) 三元运算符 (?,) 可以替代 if-else 结构
true
false
条件? 表达式 1,表达式 2
class TernaryOp
{
public static void main(String args[])
{
int salary,daysPresent = 30;
salary = daysPresent == 20? 2000,3000;
System.out.println("您本月薪资为 $"+salary);
}
}
23
Instanceof 运算符
class InstanceOfDemo {
public static void main (String args []) {
InstanceOfDemo t = new InstanceOfDemo( );
if (t instanceof InstanceOfDemo) {
System.out.println ("T是 InstanceOfDemo 的实例
");
}
else {
System.out.println ("T不是 InstanceOfDemo 的实例! ");
}
}
}
可以确定对象是否属于一个特定的类
24
java.lang 包 2-1
该包中包含的类是 Java编程语言设计的基础
其中比较 重要的类包括:
- Object
- Class
- 封装类
- Void 类类体系结构的根封装对象或接口运行时的状态封装基本数据类型,为基本数据类型建立对象表达式有一个 TYPE域,该域保存对类型 void的 Class对象的引用
25
java.lang 包 2-2
- Math 类
- String 和 StringBuffer
- ClassLoader
- Process
- Runtime
- SecurityManager
- System
提供一些常用的数学运算的方法提供常用的字符串运算提供,系统操作,,可以管理类的动态加载、
外部进程的创建、主机环境查询(如一天中的时间)及安全策略的执行等
26
java.lang.Math 2-1
java.lang.Math 类中可用的 static 方法有:
- abs(),返回参数的绝对值
- ceil(),返回大于或等于参数的最小整数
- random(),返回类型为 double 且介于 0.0 和 1.0 之间的随机数
27
java.lang.Math 2-2
- floor(),返回小于或等于参数的最大整数
- max(),返回两个参数值中的大者
- min(),返回两个参数值中的小者
- round(),返回 双精度浮点数参数四舍五入后的整数或长整数
28
控制结构
选择
– if-else
– switch
循环
– while
– do-while
– for
Java 支持下列控制结构:选择、循环、
跳转
跳转
– break
– continue
29
if-else 选择语句
if-else 结构的语法为:
if (条件 )
语句 1;
else
语句 2;
if (条件 ) {
语句组 ;
}
else {
语句组;
}if和 else块中只有一条语句
if和 else块中有多条语句
30
switch 选择语句
switch 结构的语法为:
switch(表达式 ){
case '常量值 1',
语句 (组 );
break;
case '常量值 2',
语句 (组 );
break;
case '常量值 N',
语句 (组 );
break;
default,
语句 (组 );
}
表达式必须为 byte,
short,int或 char类型
常量值必须是与表达式类型兼容的特定的一个常量
不允许有重复的 case值
31
循环
while 循环
while(条件 )
{ 语句组 ; }
do-while循环
do
{ 语句组 ; }
while(条件 );
for 循环
for(变量初始化 ; 条件 ; 递增或递减变量的值 )
{语句组 ; }
32
break 和 continue 语句
break 语句在循环中用于立即从当前循环终止控制。
遇到 break 语句时,将跳出当前循环。
continue 语句则是从其调用处跳至循环的开始处。
continue 语句之后的语句将不再执行。
33
数组
属于复杂数据类型
由类型相同的元素组成的有顺序的数据集合
数组是固定的不能扩展
可以存储基本数据类型或对象
通过数组名和下标可以访问各元素
34
创建数组
通用的一维数组的声明格式是:
type var-name[];
举例:
int array_int[ ];
String[ ] str;
利用 new 来为数组型变量分配内存空间
array_int=new int[10];
str=new String[10];
两步可以合并,如:
int String[ ] str=new String[10];
35
命令行参数
Java 应用程序可以从命令行中接收任意数量的参数
每个参数被视为字符串分别存储在 main函数的参数数组中
可以使用双引号将多个字符串作为一个整体显示
36
命令行参数示例
class ComndLineArg1 {
public static void main(String args[ ]) {
for(int i=0;i<args.length;i++) {
System.out.println(args[i]);
}
}
}
输出结果输出结果
37
总结 2-1
Java 具有 8种基本数据类型,byte,short、
int,long,boolean,char,float 及 double
Java 中的运算符可划分为四个子集:算术运算符、位运算符、关系运算符、逻辑运算符
& 运算符适用于如下子集:逻辑和位。逻辑
& 以条件表达式为操作数,而位 & 则以数字为操作数
38
总结 2-2
Java 支持下列控制结构:
– 选择( if-else,switch)
– 循环( while,do-while,for)
– 跳转( break,continue)
break 语句在循环中用于立即从当前循环终止控制
continue语句则是从其调用处跳至循环的开始处
数组可用来将同一类型的数据存储在连续的内存位置
第二章
Java 编程基础
2
回顾
JVM是 Java 编程语言的核心。
Java 运行时环境 (JRE) 包含一方面与硬件交互、另一方面又与程序交互的 JVM。
Java是完全面向对象的语言,所有的实现必须放在类中。
main函数是 Java应用程序执行的入口。
JDK可用于开发 Java 程序。
3
目标
掌握如何定义标识符
掌握 Java 的关键字
了解 Java 的基本类型
了解并掌握 String 类
掌握 Java 的程序控制流程
掌握数组的定义方法
掌握 java.lang.Math 类
4
注释
Java 语言提供三种类型的注释:
- 单行注释
- 多行注释
- 文档注释以 // 开始,并以换行符结束以 /* 开始,并以 */ 结束以 /** 开始,并以 */ 结束,
注释中的每一行都必须以 * 开始。
使用 javadoc工具从源代码和文档注释中将信息取出,然后转换为 HTML文件。
5
关键字 2-1
原始数据类型
- byte
- short
- int
- long
- float
- double
- char
- boolean
循环关键字
- do
- while
- for
- break
- continue
分支关键字
- if
- else
- switch
- case
- default
- break
方法、变量和类修饰符
- private
- public
- protected
- final
- static
- abstract
- synchronized
- volatile
- strictfp
6
关键字 2-2
异常处理
- try
- catch
- finally
- throw
- throws
对象相关关键字
- new
- extends
- implements
- class
- instanceof
- this
- super
字面 值 常量
- false
- true
- null
方法相关关键字
- return
- void
包相关关键字
- package
- import
7
基本数据类型
Java 共有八 种 基本数据类型:
- 四种整数类型 (byte,short,int,long)
- 两种浮点数类型 (float,double)
- 一种字符类型 (char)
- 一种布尔类型 (boolean)
8
整型数据类型类型 缺省值 长度 数的范围
byte 0 8位 -128 ~ 127
short 0 16位 -32,768 ~ 32,767
int 0 32位 -2,147,483,648 ~ 2,147,483,647
long 0 64位 -9,223,372,036,854,775,808 ~
9,223,372,036,854,775,807
9
浮点型数据类型类型 缺省值 长度 数的范围
float 0.0 32位 3.4E-038~3.4E+038
double 0.0 64位 1.7E-308~1.7E+308
10
字符数据类型类型 缺省值 长度 数的范围
char '\u0000' 16位 \u0000 ~ \uFFFF
11
布尔数据类型类型 缺省值 长度 数的范围
boolean false 1位 false,true
12
字符串
创建一个 String 类的实例:
String strName1 =,Humpty dumpty” ; //字符串字面量
String strName2 = new String("Egg");
两个或多个字符串可以用,+”运算符合并起来。例如:
strName3 = strName1+ " is the name of an " +
strName2;
字符串的长度可以通过 String 类中的函数计算。例如:
int numLength = strName2.length();
也可将数字添加到字符串类型中。例如:
String strVar = "Mark" + 1;
13
字符串池
Java 程序可包含许多字符串字面量
,字符串池”存放在程序中创建的所有字符串字面量
任何时候创建字符串字面量,系统都会搜索字符串池,查看是否存在该字符串字面量。 Sunday
Monday
Hello
Aptech
World
1
2
3
4
N
String day= "Monday";
String weekday = "Monday"; 字符串池
14
String 类方法
charAt(),返回字符串中某个特定位置的字符
indexOf(),返回字符串中某个特定字符或子字符串首次出现的索引
toUpperCase(),将字符串内的所有字符从小写改为大写
toLowerCase(),将字符串内的所有字符从大写改为小写
15
标识符
在 Java中标识符的命名必须符合以下规则:
- 标识符必须以字母或下划线或 $ 符号开始。其余字符可以是字母、数字,$ 符号和下划线。
- 标识符只能包含两个特殊字符,即下划线 (_)
和美元符号 ($)。不允许有任何其他特殊字符。
- 标识符不能包含空格。
表示指定给变量、方法和类的名称,以便编译器可唯一标识它们。
16
变量
变量是在程序执行期间可根据需要经常变化的值
变量具有 3 个特性:
- 名称,标识符
- 初始值,为其赋值或者是保留缺省值
- 作用域,在不同程序块中的可用性及生命周期
17
算术 运算符运算符 含义 示例 求值
+ 加 c = a + b
- 减 c = a - b
* 乘 c = a * b
/ 除 c = a / b
% 取模 c = a % b
++ 递增 a++
-- 递减 b--
+= 相加并赋值 c += a c = c + a
-= 相乘并赋值 c *= a c = c * a
/= 相除并赋值 c /= a c = c / a
%= 取模并赋值 c %= a c = c % a
- 取负数 c= - a
18
关系运算符?关系运算符用于测试两个操作数之间的关系。
关系表达式将返回一个布尔结果。
运算符 含义 示例
== 等于 a==b
!= 不等于 a!=b
> 大于 a>b
< 小于 a<b
>= 大于或等于 a>=b
<= 小于或等于 a<=b
19
逻辑运算符 逻辑运算符与布尔操作数一起使用运算符 含义 示例
& 逻辑与 A & B
| 逻辑或 A | B
^ 逻辑异或 A ^ B
! 逻辑反 ! A
|| 短路或 A || B
&& 短路与 A && B
20
位运算符 用于 int,short,long、byte 和 char 数据类型运算符 含义 示例
~ 按位非( NOT) b = ~a
& 按位与( AND) c = a & b
| 按位或( OR) c = a | b
^ 按位异或( XOR) c = a ^ b
>> 右移 b = a >> 2
>>> 右移,左边空出的位以 0填充 b = a >>> 2
<< 左移 b = a << 1
21
赋值运算符
一次可以为多个变量赋值,如,
int a = 20000;
int p,q,r,s;
p = q = r = s = a;
赋值运算符 (=) 用于为变量赋值
22
三元运算符 (?:) 三元运算符 (?,) 可以替代 if-else 结构
true
false
条件? 表达式 1,表达式 2
class TernaryOp
{
public static void main(String args[])
{
int salary,daysPresent = 30;
salary = daysPresent == 20? 2000,3000;
System.out.println("您本月薪资为 $"+salary);
}
}
23
Instanceof 运算符
class InstanceOfDemo {
public static void main (String args []) {
InstanceOfDemo t = new InstanceOfDemo( );
if (t instanceof InstanceOfDemo) {
System.out.println ("T是 InstanceOfDemo 的实例
");
}
else {
System.out.println ("T不是 InstanceOfDemo 的实例! ");
}
}
}
可以确定对象是否属于一个特定的类
24
java.lang 包 2-1
该包中包含的类是 Java编程语言设计的基础
其中比较 重要的类包括:
- Object
- Class
- 封装类
- Void 类类体系结构的根封装对象或接口运行时的状态封装基本数据类型,为基本数据类型建立对象表达式有一个 TYPE域,该域保存对类型 void的 Class对象的引用
25
java.lang 包 2-2
- Math 类
- String 和 StringBuffer
- ClassLoader
- Process
- Runtime
- SecurityManager
- System
提供一些常用的数学运算的方法提供常用的字符串运算提供,系统操作,,可以管理类的动态加载、
外部进程的创建、主机环境查询(如一天中的时间)及安全策略的执行等
26
java.lang.Math 2-1
java.lang.Math 类中可用的 static 方法有:
- abs(),返回参数的绝对值
- ceil(),返回大于或等于参数的最小整数
- random(),返回类型为 double 且介于 0.0 和 1.0 之间的随机数
27
java.lang.Math 2-2
- floor(),返回小于或等于参数的最大整数
- max(),返回两个参数值中的大者
- min(),返回两个参数值中的小者
- round(),返回 双精度浮点数参数四舍五入后的整数或长整数
28
控制结构
选择
– if-else
– switch
循环
– while
– do-while
– for
Java 支持下列控制结构:选择、循环、
跳转
跳转
– break
– continue
29
if-else 选择语句
if-else 结构的语法为:
if (条件 )
语句 1;
else
语句 2;
if (条件 ) {
语句组 ;
}
else {
语句组;
}if和 else块中只有一条语句
if和 else块中有多条语句
30
switch 选择语句
switch 结构的语法为:
switch(表达式 ){
case '常量值 1',
语句 (组 );
break;
case '常量值 2',
语句 (组 );
break;
case '常量值 N',
语句 (组 );
break;
default,
语句 (组 );
}
表达式必须为 byte,
short,int或 char类型
常量值必须是与表达式类型兼容的特定的一个常量
不允许有重复的 case值
31
循环
while 循环
while(条件 )
{ 语句组 ; }
do-while循环
do
{ 语句组 ; }
while(条件 );
for 循环
for(变量初始化 ; 条件 ; 递增或递减变量的值 )
{语句组 ; }
32
break 和 continue 语句
break 语句在循环中用于立即从当前循环终止控制。
遇到 break 语句时,将跳出当前循环。
continue 语句则是从其调用处跳至循环的开始处。
continue 语句之后的语句将不再执行。
33
数组
属于复杂数据类型
由类型相同的元素组成的有顺序的数据集合
数组是固定的不能扩展
可以存储基本数据类型或对象
通过数组名和下标可以访问各元素
34
创建数组
通用的一维数组的声明格式是:
type var-name[];
举例:
int array_int[ ];
String[ ] str;
利用 new 来为数组型变量分配内存空间
array_int=new int[10];
str=new String[10];
两步可以合并,如:
int String[ ] str=new String[10];
35
命令行参数
Java 应用程序可以从命令行中接收任意数量的参数
每个参数被视为字符串分别存储在 main函数的参数数组中
可以使用双引号将多个字符串作为一个整体显示
36
命令行参数示例
class ComndLineArg1 {
public static void main(String args[ ]) {
for(int i=0;i<args.length;i++) {
System.out.println(args[i]);
}
}
}
输出结果输出结果
37
总结 2-1
Java 具有 8种基本数据类型,byte,short、
int,long,boolean,char,float 及 double
Java 中的运算符可划分为四个子集:算术运算符、位运算符、关系运算符、逻辑运算符
& 运算符适用于如下子集:逻辑和位。逻辑
& 以条件表达式为操作数,而位 & 则以数字为操作数
38
总结 2-2
Java 支持下列控制结构:
– 选择( if-else,switch)
– 循环( while,do-while,for)
– 跳转( break,continue)
break 语句在循环中用于立即从当前循环终止控制
continue语句则是从其调用处跳至循环的开始处
数组可用来将同一类型的数据存储在连续的内存位置