第二章 基本数据类型

24
第第第 第第第第第第 南南南南南南南南南南南南南 西 南南南南南南南 (Java)

description

西南科技大学网络教育系列课程 高级语程序设计 (Java). 第二章 基本数据类型. 标识符和关键字. 标识符 用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符,定义的规则如下: 由字母、数字、下划线和美元符组成 必须以字母、下划线或美元符号打头 严格区分大小写,没有长度限制 应该具有特定的意义. 拉丁字母 (a,b,c … ), 汉语中的汉字,日文中的片假语、平假语,朝鲜文以及其他许多语言中的文字. 标识符是 Java 语言的基本组成部分. 合法的标示符,如: - PowerPoint PPT Presentation

Transcript of 第二章 基本数据类型

Page 1: 第二章 基本数据类型

第二章 基本数据类型

西南科技大学网络教育系列课程高级语程序设计 (Java)

Page 2: 第二章 基本数据类型

高级语言程序设计 (Java) http://www.swust.net.cn

标识符和关键字

标识符 用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符,定义的规则如下:

由字母、数字、下划线和美元符组成 必须以字母、下划线或美元符号打头 严格区分大小写,没有长度限制 应该具有特定的意义

拉丁字母 (a,b,c…), 汉语中的汉字,日文中的片假语、平假语,朝鲜文以及其他许多语言中的文字

标识符是 Java 语言的基本组成部分

Page 3: 第二章 基本数据类型

高级语言程序设计 (Java) http://www.swust.net.cn

合法的标示符,如:

$Programe_java$Programe_Java1Programe2_1日历 a

非法的标示符,如:

12Programe&_javaProgram-Java1%Programe21$sum ¥ number

Page 4: 第二章 基本数据类型

高级语言程序设计 (Java) http://www.swust.net.cn

关键字 关键字就是 Java 语言中已经被赋予特定意义的一些单词,它们在程序上有着不同的用途,不可以把关键词作为类名、变量名、方法名、类型名、数组名、文件名等名字来用

关键字如下表所示

Page 5: 第二章 基本数据类型

高级语言程序设计 (Java) http://www.swust.net.cn

abstract break byte boolean catch

case char class continue default

do double else extends false

final float for finally if

import implements int interface Instanceof

long length native new null

package private protected public return

switch synchronized short static super

try true this throw throws

threadsafe transient void volatile while

Java 关键字表

Page 6: 第二章 基本数据类型

高级语言程序设计 (Java) http://www.swust.net.cn

基本数据类型

Java数据类型

基本数据类型

字符型 (char)

布尔类型 (boolean)

复合数据类型

类 (class)

接口 (interface)

数组

空类型 (null)

数值类型

整数类型

实数类型

短整型 (short) 整型 (int)

单精度浮点型 (float)

双精度浮点型 (double)

长整型 (long)

字节型 (byte)

Java 数据类型表

Page 7: 第二章 基本数据类型

高级语言程序设计 (Java) http://www.swust.net.cn

整数类型 Java 整型数都为有符号数,整型多为十进制数形式,也可为八进制或十六进制形式 整型的范围与 Java 代码所运行的机器无关 整形按所占内存空间的大小分为四种类型

byte 、 short 、 int 、 long int 类型: 32 位 (4 个字节 ) ,最常用,变量的取值范围是: -231~231-1

int 型变量使用关键字 int 来定义,如: int a,sum,Number, 整数 ; int n = 55;

Page 8: 第二章 基本数据类型

高级语言程序设计 (Java) http://www.swust.net.cn

long 类型: 64 位 (8 个字节 ) ,用于很大的整数,长整形数字都有一个后缀 L ,变量的取值范围是 -263~263-1

long 型变量使用关键字 long 来定义,如: long number, 数学 ,$sum; long n = 500000L; // L 的大小写均可

short 类型: 16 位 (2 个字节 ) ,变量的取值范围是 -215~ 215-1

short 型变量使用关键字 short 来定义,如:

short number, 数学 ,$sum; short mynum = 500;

Page 9: 第二章 基本数据类型

高级语言程序设计 (Java) http://www.swust.net.cn

byte 类型: 8 位 (1 个字节 ) ,变量的取值范围是 -27~27-1

byte 型变量使用关键字 long 来定义,如: byte number, 数学 ,$sum; byte num = 50;

Page 10: 第二章 基本数据类型

高级语言程序设计 (Java) http://www.swust.net.cn

浮点型数据 浮点型数据有两种表示方式

用十进制数形式表示,由数字和小数点组成,如: 3.25 用科学计数法形式表示,如: 123E-3

浮点型按所占内存空间的大小分为两种类型: float 型 (4 字节 ) 和 double 型 (8 字节 )

浮点型数据不适合在不允许舍入误差的金融计算领域使用,如:

2.0f - 1.1f = 0.89999999999999990

数后加 f 或 F 为 float 型,加 d 或 D 为 double 型 ( 默认为 double 类型 )

Page 11: 第二章 基本数据类型

高级语言程序设计 (Java) http://www.swust.net.cn

实例public class FloatandDouble{

public static void main(String[ ] args){float c = 4.2f;float d = 12E-3f;double a = 5.0;double b = 13E-2;System.out.println(“a = ”,a);System.out.println(“b = ”,b);System.out.println(“c = ”,c);System.out.println(“d = ”,d);

}}

a = 5.0

b = 0.13

c = 4.2

d = 0.012

Page 12: 第二章 基本数据类型

高级语言程序设计 (Java) http://www.swust.net.cn

字符数据类型 字符常量是用单引号括起来的一个字符,如: 'J' 、 '*‘ char 型变量,内存分配给 2 个字节,占 16 位,最高位不是符号位,没有负数的 char

Java 中有以反斜杠’ \’ 开头的字符,反斜杠将其后面的字符转变为另外的含义,称为转义字符如:’ \n’ ’\b’ ‘\t’ ‘\’’

char 变量的定义如下: char ch=‘5’;

Page 13: 第二章 基本数据类型

高级语言程序设计 (Java) http://www.swust.net.cn

Java 中的字符型数据是 16 位的 Unicode字符,汉字和英文字母占的内存空间相同

例:“ JAVA 你好”共 12 个字节 要观察一个字符在 unicode 表中的顺序位置,必须使用 int 类型显示转换,如: (int)’a’

不可使用 short 型 (2 字节 ) 转换,因为char 的最高位不是符号位

如果要得到一个 0~65536 之间的数所代表的 unicode 表中相应位置上的字符必须使用 char 向显示转换,如: (char)69

Page 14: 第二章 基本数据类型

高级语言程序设计 (Java) http://www.swust.net.cn

例:显示字符在 unicode 中的位置Public class exa{ Public static void main ( String[ ] args ) { char Word = ‘ 你’ ; int p = 20329 ; System.out.println(“ 汉字 \’ 你 \’ 在 unicode表中的顺序位置:” + ( int)Word);

System.out.println(“unicode 表中第 20329位置上的字符是:” +(char)p); }}

结果: 20320

结果:佩

Page 15: 第二章 基本数据类型

高级语言程序设计 (Java) http://www.swust.net.cn

布尔数据类型 又称为逻辑类型 布尔型常量值只有: true 和 false

布尔型变量为 boolean 类型,取值为true 或 false ,定义时可以赋予初值

例如 : boolean b = true;

Page 16: 第二章 基本数据类型

高级语言程序设计 (Java) http://www.swust.net.cn

基本数据类型的转换

基本数据类型的转换就是把一种基本数据类型变量转变成另一种基本类型变量。 精度由低到高排列为: 低 高byte short char int long float double 当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换。 当把级别高的变量的值赋给级别低的变量时,必须使用显示类型转换运算。

高精度向低精度转换容易造成精度损失。

Page 17: 第二章 基本数据类型

高级语言程序设计 (Java) http://www.swust.net.cn

实例

int a=9,c;

short b=4;

c = a + b

int c;

float b=4.2f;

c = (int)b

int c;

doouble b=4.2;

c = (int)b

结果: c=13 结果: c=4 结果: c=4

Page 18: 第二章 基本数据类型

高级语言程序设计 (Java) http://www.swust.net.cn

数据的简单输入与输出

Java 提供的数据输入与输出很多都是在命令行窗口 ( 例如, MS-DOS 窗口 ) 中进行。 数据输出 System.out 对象

println() :输出文本并换行 print() :输出文本不换行 printf() :带格式的输出 (新增方法 ) 教材P21

printf( 格式控制部分,表达式 1 ,表达式 2 ,…表达式 n);

Page 19: 第二章 基本数据类型

高级语言程序设计 (Java) http://www.swust.net.cn

public class PrintOut{ public static void main (String[ ] args){ long x = 5678l; float f = 123.456789f; double d = 123456.12345678; char c = 'a'; System.out.print(f); System.out.println(f); System.out.printf("%c\n%10.3f%n%f,%12d%n%d",c,f,d,x=x+2,x); System.out.printf("%c\n%10.3f%n%f,%3d%n%d",c,f,d,x=x+2,x); }}

Page 20: 第二章 基本数据类型

高级语言程序设计 (Java) http://www.swust.net.cn

数据的输入: Scanner Scanner 是 SDK1.5新增的一个类

然后 reader 对象调用下列方法,读取用户在命令行输入的各种数据类型。

nextByte(), nextDouble(), nextFloat(), nextLine(),nextInt(),nextLine(),nextLong(), nextShort()

上述方法执行时系统都会暂时停下来,等待在命令行输入数据后回车确认,

首先创建一个该类的对象:Scanner reader = new Scanner(System.in);

Page 21: 第二章 基本数据类型

高级语言程序设计 (Java) http://www.swust.net.cn

例:用户在键盘依次输入若干个数字,每输入一个数字都需要按回车键确认,最后在键盘输入一个非数字字符 (比如回车 ) 结束整个的输入操作过程,程序将计算出这些数的和及平均值

等待输入的方法: hasNextXXX()

读取输入数据的方法: nextXXX()

Page 22: 第二章 基本数据类型

高级语言程序设计 (Java) http://www.swust.net.cn

import java.util.*;public class Example{ public static void main (String args[ ]){ Scanner reader = new Scanner(System.in); double sum = 0; int m = 0; while(reader.hasNextDouble()){ double x = reader.nextDouble(); m = m+1; sum = sum+x; } System.out.printf("%d 个数的和为 %f\n",m,sum); System.out.printf("%d 个数的平均值是 %f\n",m,sum/m); reader.close(); }}

Page 23: 第二章 基本数据类型

高级语言程序设计 (Java) http://www.swust.net.cn

Unicode 字符集介绍 每个字符在计算机中通常都是使用一个编码来表示,而这个字符的编码是什么,则要取决于使用哪个字符集 (charset) 几个常见的字符集

最早只有一种字符集 — ANSII(American Standards Committee for Information Interchange) 字符集,它使用 7 bits 来表示一个字符,总共表示 128 个字符 扩展的 ANSII 字符集,使用 8 bits 表示一个字符,可以表示 256 个字符,主要在原来的 7bits 字符集的基础上加入了一些特殊符号例如制表符、画线符等,又叫 IBM 字符集

补充介绍

Page 24: 第二章 基本数据类型

高级语言程序设计 (Java) http://www.swust.net.cn

MBCS(Multi-Byte Chactacter System ,多字节字符系统 ) ,也是在 ASCII 字符集上进行的扩展,以适应不同国家的需要,比如我国的 GB-2312 Unicode 是一个涵盖了目前全世界使用的所有已知字符的单一编码方案,也就是说 Unicode为每一个字符提供唯一的编码

标准的 Unicode 字符集使用定长编码,即使用 16 位编码,称为 UTF-16 Unicode还有一种变长编码,即 8 位编码方式,这种编码可以用 1-3 个字节表示一个 unicode 字符,称为 UTF-8