Java课件1第2章 基本数据类型与数组PPT课件内容

上传人:b****i 文档编号:5527029 上传时间:2023-11-20 格式:PPTX 页数:27 大小:177.88KB
收藏 版权申诉 举报 下载
Java课件1第2章 基本数据类型与数组PPT课件内容_第1页
第1页 / 共27页
Java课件1第2章 基本数据类型与数组PPT课件内容_第2页
第2页 / 共27页
Java课件1第2章 基本数据类型与数组PPT课件内容_第3页
第3页 / 共27页
Java课件1第2章 基本数据类型与数组PPT课件内容_第4页
第4页 / 共27页
Java课件1第2章 基本数据类型与数组PPT课件内容_第5页
第5页 / 共27页
文档描述:

文档《Java课件1第2章 基本数据类型与数组PPT课件内容》内容(27页完美版)由用户上传提供,感谢您阅读,更多关于《Java课件1第2章 基本数据类型与数组PPT课件内容(珍藏版)》内容请在新文库网搜索。

1、2.1 标识符和关键字标识符和关键字2.1.1 标识符标识符2.1.2 关键字关键字用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。简单地说,标识符就是一个名字。以下是Java关于标识符的语法规则。u标识符由字母、下划线、美元符号和数字组成,长度不标识符由字母、下划线、美元符号和数字组成,长度不受限制。受限制。u标识符的第一个字符不能是数字字符。标识符的第一个字符不能是数字字符。u标识符不能是关键字(关键字见标识符不能是关键字(关键字见2.1.2节)节)u标识符不能是标识符不能是true、false和和null(尽管(尽管true、false和和null不是不是J

2、ava关键字)关键字)例如,以下都是标识符:Hello_java、Hello_12$、$23Boy。需要特别注意的是,标识符中的字母是区分大小写的,hello和和Hello是不同是不同的标识符。2.1 标识符和关键字标识符和关键字2.1.1 标识符标识符2.1.2 关键字关键字关键字就是Java语言中已经被赋予特定意义的一些单词。不可以把关键字当做标识符来用。abstract assert boolean break byte case catch char class const continue default do double else enum extends final final

3、ly float for goto if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while。以下是Java的50个关键字:2.2 基本基本数据类型数据类型2.2.1 逻辑类型逻辑类型2.2.2 整数类型整数类型2.2.3 字符类型字符类型2.2.4 浮

4、点类型浮点类型2.2.5 基本数据类基本数据类型的转换型的转换l 常量:true,false。l 变量:使用关键字boolean来声明逻辑变量,声明时也可以赋给初值,例如:boolean x,ok=true,关闭关闭=false;Java语言有8种基本数据类型,分别是:boolean、byte、short、int、long、float、double、char2.2 基本基本数据类型数据类型2.2.1 逻辑类型逻辑类型2.2.2 整数类型整数类型2.2.3 字符类型字符类型2.2.4 浮点类型浮点类型2.2.5 基本数据类基本数据类型的转换型的转换1int 型型 常量:123,6000(十进制)

5、,077(八进制),0 x3ABC(十六进制)。变量:使用关键字int来声明int型变量,声明时也可以赋给初值,例如:int x=12,平均平均=9898,jiafei;对于int型变量,内存分配给4个字节(byte).int型变量的取值范围是:-231231-1整型数据分为四种:byte short int long 2.byte 型型变量:使用关键字byte来声明byte 型变量,例如:byte x=-12,tom=28,漂亮漂亮=98;对于byte型变量,内存分配给1个字节,占8位,因此byte型变量的取值范围是 -1281272.2 基本基本数据类型数据类型2.2.1 逻辑类型逻辑类型

6、2.2.2 整数类型整数类型2.2.3 字符类型字符类型2.2.4 浮点类型浮点类型2.2.5 基本数据类基本数据类型的转换型的转换整型数据分为四种:byte short int long 3.short 型型变量:使用关键字short来声明byte 型变量,例如:short x=12,y=1234;对于short型变量,内存分配给2个字节,占8位,因此short型变量的取值范围 -215 215-14.long 型型 常量:long型常量用后缀L来表示,例如108L(十进制)、07123L(八进制)、0 x3ABCL(十六进制)变量:使用关键字long来声明long型变量,例如:long w

7、idth=12L,height=2005L,length;对于long型变量,内存分配给8个字节,占64位,因此long型变量的取值范围是-263263-1。2.2 基本基本数据类型数据类型2.2.1 逻辑类型逻辑类型2.2.2 整数类型整数类型2.2.3 字符类型字符类型2.2.4 浮点类型浮点类型2.2.5 基本数据类基本数据类型的转换型的转换整型数据分为四种:byte short int long Java把把23,45,1000等等字面字面常量按常量按4个字节处理,因此个字节处理,因此 Java中不存在byte和short型常量的表示法,但可以把byte或short范围内的int型常量

8、赋值给byte或short型变量。当把一个int型常量赋值给一个byte和short型变量时,不可以超出这些变量的取值范围,否则必须进行类型转换运算类型转换运算;例如,常量128的属于int型常量,超出byte变量的取值范围,如果赋值给byte型变量,必须进行byte类型转换运算(将导致精度的损失),如下所示:byte a=(byte)128;byte b=(byte)(-129);那么a和b得到的值分别是-128和127。2.2 基本基本数据类型数据类型2.2.1 逻辑类型逻辑类型2.2.2 整数类型整数类型2.2.3 字符类型字符类型2.2.4 浮点类型浮点类型2.2.5 基本数据类基本数

9、据类型的转换型的转换 常量常量:A,b,?,!,9,好,t,等,即用单引号扩起的Unicode表中的一个字符。变量变量:使用关键字char来声明char型变量,例如:char ch=A,home=家家,handsome=酷酷;对于char型变量,内存分配给2个字节,占16位,最高位不是符号位,没有负数的char。char型变量的取值范围是065535。对于 char x=a;内存x中存储的是97,97是字符a在Unicode表中的排序位置。因此,允许将上面的语句写成 char x=97;2.2 基本基本数据类型数据类型2.2.1 逻辑类型逻辑类型2.2.2 整数类型整数类型2.2.3 字符类型

10、字符类型2.2.4 浮点类型浮点类型2.2.5 基本数据类基本数据类型的转换型的转换要观察一个字符在Unicode表中的顺序位置,可以使用int型强制转换,如(int)a。如果要得到一个065535之间的数所代表的Unicode表中相应位置上的字符必须使用char型强制转换。例子1中,分别用强制转换来显示一些字符在Unicode表中的位置,以及某些位置上的字符,运行效果如下图。例子例子12.2 基本基本数据类型数据类型2.2.1 逻辑类型逻辑类型2.2.2 整数类型整数类型2.2.3 字符类型字符类型2.2.4 浮点类型浮点类型2.2.5 基本数据类基本数据类型的转换型的转换浮点型分为floa

11、t和double型。1float 型型常量常量:453.5439f,21379.987F,231.0f(小数表示法),2e40f(2乘10的40次方,指数表示法)。需要特别注意的是:常量后面必须要有后缀常量后面必须要有后缀f或或F。变量变量:使用关键字float来声明float型变量,例如:float x=22.76f,tom=1234.987f,weight=1e-12F;对于float型变量,内存分配给4个字节,占32位,float型变量的取值范围大约是对于float型变量,内存分配给4个字节,占32位,float型变量的取值范围是1.4E-453.4028235E38和-3.402823

12、5E38-1.4E-45。float变量在存储float型数据时保留8位有效数字,实际精度取决于具体数值。例如,如果将常量12345.123456789f赋值给float变量x:x=12345.123456789f;那么,x存储的实际值是:12345.123046875(保留8位有效数字)2.2 基本基本数据类型数据类型2.2.1 逻辑类型逻辑类型2.2.2 整数类型整数类型2.2.3 字符类型字符类型2.2.4 浮点类型浮点类型2.2.5 基本数据类基本数据类型的转换型的转换浮点型分为float和double型。2double 型型常量常量:2389.539d,2318908.987,0.0

13、5(小数表示法),1e-90(1乘10的-90次方,指数表示法)。对于double常量,后面可以有后缀d或D,但允许省略该后缀。变量变量:使用关键字double来声明double型变量,例如:double height=23.345,width=34.56D,length=1e12;对于double型变量,内存分配给8个字节,占64位,double型变量的取值范围是4.9E-3241.7976931348623157E308和-1.7976931348623157E308-4.9E-324double变量在存储double型数据时保留16位有效数字位有效数字,实际精度取决于具体数值。2.2 基

14、本基本数据类型数据类型2.2.1 逻辑类型逻辑类型2.2.2 整数类型整数类型2.2.3 字符类型字符类型2.2.4 浮点类型浮点类型2.2.5 基本数据类基本数据类型的转换型的转换按精度从低到高排列:byte short char int long float double当把级别低的值赋给级别高的变量时,系统自动完成数据类型的转换。需要特别注意的是,当把级别高的变量的值赋给级别低的变量时,必须要使用显式类型转换(强制转换)运算,例如:对于 int x=1;byte y;y=(byte)x;是正确的,而y=x;是错误的。编译器不检查变量x的值是多少,只检查x的类型。再比如:char c=65

15、;y=65+32;是正确的,因为97在byte范围之内。而y=c+32;是错误的,因为编译器不检查变量c中的值,并认为c+32的结果是int型数据(见第3章的3.1.3)。2.2 基本基本数据类型数据类型2.2.1 逻辑类型逻辑类型2.2.2 整数类型整数类型2.2.3 字符类型字符类型2.2.4 浮点类型浮点类型2.2.5 基本数据类基本数据类型的转换型的转换一个常见的错误是把一个double型常量赋值给float型变量时没有进行强制转换运算,例如:float x=12.4;将导致语法错误,编译器将提示:possible loss of precision。正确的做法是:float x=12

16、.4F;或float x=(float)12.4;例子2例子2演示了基本数据类型的相互转换,运行效果如图。2.3 从从命令行输入、输出数据命令行输入、输出数据2.3.1 输入基本型输入基本型数据数据2.3.2 输出基本型输出基本型数据数据Scanner类在java.util包中(有关包的知识点将在第4章讲解),可以使用该类创建一个对象:Scanner reader=new Scanner(System.in);然后reader对象调用下列方法,读取用户在命令行输入的各种基本类型数据:nextBoolean();nextByte(),nextShort(),nextInt(),nextLong(

17、),nextFloat(),nextDouble()。reader对象用空白做分隔标记读取用户在命令行输入的数据。上述方法执行时读取数据时可能会发生堵塞状态(WAITING)。如果键盘缓冲区中还有“数据”可读,上述方法执行时就不会发生堵塞,否则程序需等待用户在命令行输入新的数据、按enter回车键确认(回车会刷新键盘缓冲区中的内容,消除堵塞状态)。2.3 从从命令行输入、输出数据命令行输入、输出数据2.3.1 输入基本型输入基本型数据数据2.3.2 输出基本型输出基本型数据数据例子3中,用户在键盘用空格(或回车)做分隔,依次输入若干个数字,最后输入#号字符回车键确认,程序将计算出这些数的和及平

18、均值,运行效果如下图。在调用nextInt()方法前,可以让reader对象首先调用hasNextInt()来判断下一个数据是否是符合nextInt()所要求的数据,如果符合要求,hasNextInt()方法返回true,否者返回false。注意,当nextInt()成功读取数据后,hasNextInt()方法才会判断下一个数据。例子32.3 从从命令行输入、输出数据命令行输入、输出数据2.3.1 输入基本型输入基本型数据数据2.3.2 输出基本型输出基本型数据数据System.out.println()或System.out.print()可输出串值、表达式的值,二者的区别是前者输出数据后换

19、行,后者不换行。允许使用并置符号:“+”将变量、表达式或一个常数值与一个字符串并置一起输出,如:System.out.println(m+个数的和为个数的和为+sum);System.out.println(:+123+大于大于+122)。JDK5 新增了和C语言中printf函数类似的数据输出方法:System.out.printf(格式控制部分格式控制部分,表达式,表达式1,表达式,表达式2,表达式表达式n)格式控制部分由格式控制符号:%d、%c、%f、%s和普通的字符组成,普通字符原样输出。格式符号用来输出表达式的值。%d:输出int类型数据值。%c:输出char型数据。%f:输出浮点型

20、数据,小数部分最多保留6位。%s:输出字符串数据。输出数据时也可以控制数据在命令行的位置,例如:%md:输出的int型数据占m列。%m.nf:输出的浮点型数据占m列,小数点保留n位。2.4 数组数组2.4.1 声明数组声明数组2.4.2 创建数组创建数组2.4.3 数组元素的数组元素的使用使用2.4.4 length的使的使用用2.4.5 数组的初始数组的初始化化2.4.6 数组的引用数组的引用2.4.7 表示格式表示格式2.4.8 复制数组复制数组2.4.9 排序与二分排序与二分查找查找数组的元素类型 数组名字;数组的元素类型 数组名字;或或数组的元素类型 数组名字;数组的元素类型 数组名字

21、;例如:float boy;char cat ;数组是相同类型的变量按顺序组成的一种复合数据类型,称这些相同类型的变量为数组的元素或单元。数组通过数组名加索引来使用数组的元素。索引从0开始。与C/C+不同,Java不允许在声明数组中的方括号内指定数组元素的个数。若声明:int a12;或 int 12 a;将导致语法错误语法错误。2.4 数组数组2.4.1 声明数组声明数组2.4.2 创建数组创建数组2.4.3 数组元素的数组元素的使用使用2.4.4 length的使的使用用2.4.5 数组的初始数组的初始化化2.4.6 数组的引用数组的引用2.4.7 表示格式表示格式2.4.8 复制数组复制

22、数组2.4.9 排序与二分排序与二分查找查找为数组分配内存空间的格式如下:数组名字数组名字=new 数组元素的类型数组元素的类型数组元素的个数数组元素的个数;例如:boy=new float4;为数组分配内存空间后,数组boy获得4个用来存放float类型数据的内存空间(称为数组的元素或单元),如下图。系统会给每个数组元素一个默认的值,如,float型是0.0。数组变量数组变量boy中存放着这些内存单元的首地址,该地址称作数组的引用,这样数组就可以通过索引操作这些内存单元。数组属于引用型变量,数组变量中存放着数组的首元素的地址,通过数组名加索引使用数组的元素,如boy0=1.3F;2.4 数组

23、数组2.4.1 声明数组声明数组2.4.2 创建数组创建数组2.4.3 数组元素的数组元素的使用使用2.4.4 length的使的使用用2.4.5 数组的初始数组的初始化化2.4.6 数组的引用数组的引用2.4.7 表示格式表示格式2.4.8 复制数组复制数组2.4.9 排序与二分排序与二分查找查找一维数组boy或二维数组a都是通过索引符访问自己的元素,如boy0,boy1,a01,a12等等。在使用数组时必须谨慎,防止索引(下标)越界。编译器不检查数组索引不检查数组索引是否越界是否越界,但运行时将发生ArrayIndexOutOfBoundsException异常对于一维数组,“数组名字.l

24、ength”的值就是数组中元素的个数;对于二维数组“数组名字.length”的值是它含有的一维数组的个数。例如,对于float a=new float12;int b=new int36;a.length的值的值12;而;而b.length的值是的值是3。2.4 数组数组2.4.1 声明数组声明数组2.4.2 创建数组创建数组2.4.3 数组元素的数组元素的使用使用2.4.4 length的使的使用用2.4.5 数组的初始数组的初始化化2.4.6 数组的引用数组的引用2.4.7 表示格式表示格式2.4.8 复制数组复制数组2.4.9 排序与二分排序与二分查找查找声明数组时同时也可以给数组的元素

25、一个初始值,如:float boy=21.3f,23.89f,2.0f,23f,778.98f;上述语句相当于:float boy=new float5;然后boy0=21.3f;boy1 =23.89f;boy2=2.0f;boy3 =23f;boy4=778.98f;可以直接用若干个一维数组初始化一个二维数组,这些一维数组的长度不尽相同,例如:int a=1,1,1,1,2,1,1,3,3,1,1,4,6,4,1 ;2.4 数组数组2.4.1 声明数组声明数组2.4.2 创建数组创建数组2.4.3 数组元素的数组元素的使用使用2.4.4 length的使的使用用2.4.5 数组的初始数组的

26、初始化化2.4.6 数组的引用数组的引用2.4.7 表示格式表示格式2.4.8 复制数组复制数组2.4.9 排序与二分排序与二分查找查找两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。例如,对于 int a=1,2,3,b =4,5;内存模型如下图所示。如果使用了下列赋值语句(a和b的类型必须相同):a=b;那么,a中存放的引用和b的相同,这时系统将释放最初分配给数组a的元素,使得a的元素和b的元素相同,a、b的内存模型变成如下图所示意。2.4 数组数组2.4.1 声明数组声明数组2.4.2 创建数组创建数组2.4.3 数组元素的数组元素的使用使用2.4.4 length的使的使

27、用用2.4.5 数组的初始数组的初始化化2.4.6 数组的引用数组的引用2.4.7 表示格式表示格式2.4.8 复制数组复制数组2.4.9 排序与二分排序与二分查找查找例子4使用了数组,注意代码a=b;之后,程序的输出结果。运行效果如下图。例子42.4 数组数组2.4.1 声明数组声明数组2.4.2 创建数组创建数组2.4.3 数组元素的数组元素的使用使用2.4.4 length的使的使用用2.4.5 数组的初始数组的初始化化2.4.6 数组的引用数组的引用2.4.7 表示格式表示格式2.4.8 复制数组复制数组2.4.9 排序与二分排序与二分查找查找JDK1.5版本后,提供的一个简单的输出数

28、组元素的值的方法。让Arrays类调用public static String toString(int a)方法,可以得到参数指定的一维数组a的如下格式的字符串表示:a0,a1 aa.length-1例如,对于数组:int a=1,2,3,4,5,6;Arrays.toString(a)得到的字符串是:1,2,3,4,5,62.4 数组数组2.4.1 声明数组声明数组2.4.2 创建数组创建数组2.4.3 数组元素的数组元素的使用使用2.4.4 length的使的使用用2.4.5 数组的初始数组的初始化化2.4.6 数组的引用数组的引用2.4.7 表示格式表示格式2.4.8 复制数组复制数组

29、2.4.9 排序与二分排序与二分查找查找1arraycopy方法方法System类调用方法public static void arraycopy(sourceArray,int index1,copyArray,int index2,int length)可以将数组sourceArray从索引index1开始后的length个元素中的数据复制到数组copyArray中,即将数组sourceArray中索引值从index1到index1+length-1中的元素中的数据复制到数组copyArray的某些元素中;copyArray数组从第index2元素开始存放这些数据。例子5演示了arrayc

30、opy方法,运行效果如下图。例子52.4 数组数组2.4.1 声明数组声明数组2.4.2 创建数组创建数组2.4.3 数组元素的数组元素的使用使用2.4.4 length的使的使用用2.4.5 数组的初始数组的初始化化2.4.6 数组的引用数组的引用2.4.7 表示格式表示格式2.4.8 复制数组复制数组2.4.9 排序与二分排序与二分查找查找2copyOf和和copyOfRange()方法方法Arrays类调用public static double copyOf(double original,int newLength)方法可以把参数original指定的数组中从索引0开始的newLen

31、gth个元素复制到一个新数组中,并返回这个新数组,且该新数组的长度为newLength,如果newLength的值大于original的长度,copyOf方法返回的新数组的第newLength索引后的元素取默认值。Arrays类调用public static double copyOfRange(double original,int from,int to)方法可以把参数original指定的数组中从索引from至to-1的元素复制到一个新数组中,并返回这个新数组,即新数组的长度为to-from。例子6使用copyOf和copyOfRange()方法复制数组.例子62.4 数组数组2.4.1

32、 声明数组声明数组2.4.2 创建数组创建数组2.4.3 数组元素的数组元素的使用使用2.4.4 length的使的使用用2.4.5 数组的初始数组的初始化化2.4.6 数组的引用数组的引用2.4.7 表示格式表示格式2.4.8 复制数组复制数组2.4.9 排序与二分排序与二分查找查找Array类调用public static void sort(double a)方法可以把参数a指定的double类型数组按升序排序。例子7Array类调用(二分法)public static int binarySearch(double a,double number)方法判断参数number指定的数是否在

33、参数a指定的数组中,即number是否和数组a的某个元素的值相同,其中数组a必须是事先已排序的数组。如果number和数组a中某个元素的值相同,那么int binarySearch(double a,double number)方法返回(得到)该元素的索引元素的索引,否则返回一个负数。例子7中,首先将一个数组排序首先将一个数组排序,然后使用二分法判断一个数是否和数组中某个元素的值相同.2.5枚举类型枚举类型枚举类型枚举类型枚举变量枚举变量例子8使用关键字enum声明枚举类型,语法格式如下:enum 枚举名枚举名 常量列表常量列表例如:enum Season spring,summer,autumn,winter 声明了名字为Season的枚举类型,该枚举类型有4个常量。可以用枚举类型的枚举名声明一个枚举变量,例如:Season x;声明了一个枚举变量x。枚举变量x只能取值枚举类型中的常量,

展开阅读全文

最近上传DOC

关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

黔ICP备20002965号-1  在线客服QQ:365045600

Copyright © 2020-2023 www.xinwenku.com All rights reserved 新文库网 版权所有

收起
展开