已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2019/7/22,第 1 页,第2章,陈岩,基本数据类型与数组,Java程序设计,2019/7/22,第 2 页,主要内容 标识符与关键字 基本数据类型 类型转换运算 输入、输出数据 数组,导读,2019/7/22,第 3 页,2.1 标识符与关键字,2.1.1. 标识符,用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符,简单地说,标识符就是一个名字。,(1) 标识符由字母、下划线、美元符号和数字组成,长度不受限制。 (2) 标识符的第一个字符不能是数字字符。 (3) 标识符不能是关键字(关键字见下面的2.1.3节) (4) 标识符不能是true、false和null(尽管true、false和null不是关键字),2019/7/22,第 4 页,2.1.2 Unicode字符集,Java语言使用Unicode标准字符集,该字符集由UNICODE协会管理并接受其技术上的修改,最多可以识别65536个字符 .,2019/7/22,第 5 页,2.1.3 关键字,关键字就是具有特定用途或被赋予特定意义的一些单词,不可以把关键字作为标识符来用 。下面是Java的50个关键字。,abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally 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,2019/7/22,第 6 页,2.2 基本数据类型,有8种基本数据类型,分别是: boolean、byte、short、int、long、float、double、char。 这8种基本数据类型习惯上可分为以下四大类型: 逻辑类型:boolean 整数类型:byte、short、int、long 字符类型:char 浮点类型:float、double,2019/7/22,第 7 页,2.2.1 逻辑类型,常量:true,false。 变量:使用关键字boolean来声明逻辑变量, 声明时也可以赋给初值. 例如: boolean x,ok=true,关闭=false;,2019/7/22,第 8 页,2.2.2 整数类型(1),1int 型 常量:123,6000(十进制),077(八进制),0x3ABC(十六进制)。 变量:使用关键字int来声明int型变量,声明时也可以赋给初值. 例如: int x= 12,平均=9898,jiafei; 对于int型变量,内存分配给4个字节(byte),占32位。 int型变量的取值范围是:-231-231-1 2byte 型 常量:Java中不存在byte型常量的表示法,但可以把一定范围内的int型常量赋值给byte型变量。 变量:使用关键字byte来声明byte 型变量 例如: byte x= -12,tom=28,漂亮=98; 对于byte型内存分配给1个字节,占8位。 Byte型变量的取值范围是-27-27-1,2019/7/22,第 9 页,2.2.2 整数类型(2),3. short 型 常量:和byte型类似,Java中也不存在short型常量的表示法,但可以把一定范围内的int型常量赋值给short型变量。 变量:使用关键字short来声明short型变量 例如: short x=12,y=1234; 对于short型变量,内存分配给2个字节,占16位. 变量取值范围:-215215-1 4. long 型 常量:long型常量用后缀L来表示,例如108L(十进制)、07123L(八进制)、0x3ABCL(十六进制) 。 变量:使用关键字long来声明long型变量. 例如: long width=12L,height=2005L,length; 对于long型变量,内存分配给8个字节,占64位。 变量取值范围:-263263-1,2019/7/22,第 10 页,2.2.3 字符类型(1),1. 常量:常量:A,b,?,!,9,好,t,等,即用单引号扩起的Unicode表中的一个字符。 2. 变量: 使用关键字char来声明char型变量 例如:char ch=A,home=家,handsome=酷; 取值范围:对于char型变量,内存分配给2个字节,占16位,最高位不是符号位,没有负数的char。 char型变量的取值范围是0-65535。,char x=a,char x=97,2019/7/22,第 11 页,2.2.3 字符类型(2),3.转义字符常量:有些字符(如回车符)不能通过键盘输入到字符串或程序中,就需要使用转义字符常量。 例如:n(换行),b(退格),t(水平制表), (单引号),“(双引号),(反斜线)等。 4.用字符在Unicode表中排序位置的十六进制转义来表示该字符,其一般格式为u* 。 5.int型显示转换:要观察一个字符在Unicode表中的顺序位置,可以使用如(int)a或int p=a。 6.char型显示转换:如果要得到一个065535之间的数所代表的Unicode表中相应位置上的字符必须使用char型显示转换。,注意:Java中的char型数据一定是无符号的。,2019/7/22,第 12 页,例子1中,分别用类型转换来显示一些字符在Unicode表中的位置,以及Unicode表中某些位置上的字符,运行效果如图2.1。,例子1,2019/7/22,第 13 页,2.2.4 浮点类型(1),1. float型 常量: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变量在存储float型数据时保留8位有效数字,实际精度取决于具体数值。 取值范围:对于float型变量,内存分配给4个字节,占32位。1.4E-453.4028235E38和-3.4028235E38- 1.4E-45,2019/7/22,第 14 页,2.2.4 浮点类型(2),2. double 型 常量:2389.539d,2318908.987,0.05(小数表示法),1e-90(1乘10的-90次方,指数表示法)。对于double常量,后面可以有后缀“d”或“D”,但允许省略该后缀。 变量:使用关键字double来声明double型变量。 例如:double height=23.345,width=34.56D,length=1e12; 对于double型变量,内存分配给8个字节,占64位 。 精度:double变量在存储double型数据时保留16位有效数字,实际精度取决于具体数值。,如:float x=0.4f; double y=0.4;,2019/7/22,第 15 页,2.3 简单数据类型的级别与类型转换运算(1),Java中数据的基本类型(不包括逻辑类型)按精度从“低”到“高”排列: byte short char int long float double,2019/7/22,第 16 页,2.3 简单数据类型的级别与类型转换运算(2), 当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换。 例如:float x=100;,byte,short,char,int,long,float,double,2019/7/22,第 17 页,2.3 简单数据类型的级别与类型转换运算(3), 当把级别高的变量的值赋给级别低的变量时,必须使用显示类型转换运算。 类型转换的格式:(类型名)要转换的值; 例如 int x=(int)34.89;,2019/7/22,第 18 页,2.3 简单数据类型的级别与类型转换运算(4), 当把一个int型常量赋值给一个byte和short型变量时,不可以超出这些变量的取值范围,否则必须进行类型转换运算; 例如,常量128属于int型常量,超出byte变量的取值范围,如果赋值给byte型变量,必须进行byte类型转换运算(将导致精度的损失),如下所示: byte a=(byte)128;,2019/7/22,第 19 页,下面的例子2使用了类型转换运算,运行效果如图2.2。,例子2,2019/7/22,第 20 页,2.4 从命令行输入、输出数据 _1,可以使用Scanner类创建一个对象: Scanner reader=new Scanner(System.in); reader对象调用下列方法,读取用户在命令行(例如,MS-DOS窗口)输入的各种基本类型数据: nextBoolean()、 nextByte()、 nextShort()、 nextInt() nextLong()、nextFloat()、nextDouble()。 上述方法执行时都会堵塞,程序等待用户在命令行输入数据回车确认。,2.4.1 输入基本型数据,2019/7/22,第 21 页,例子3:用户在键盘依次输入若干个数字,每输入一个数字都需要按回车键确认,在键盘输入数0结束整个的输入操作过程,程序将计算出这些数的和,运行效果如图2.3。,2019/7/22,第 22 页,2.4从命令行输入、输出数据_2,System.out.println()或System.out.print()可输出串值、表达式的值. 二者的区别是前者输出数据后换行,后者不换行。 允许使用并置符号:“+”将变量、表达式或一个常数值与一个字符串并置一起输出,如: System.out.println(m+“个数的和为“+sum); System.out.println(“:“+123+“大于“+122);,2.4.2 输出基本型数据,2019/7/22,第 23 页,2.4从命令行输入、输出数据_2,注 : 在使用System.out.println()或System.out.print()输出字符串常量时,不可以出现“回车”,例如,下面的写法无法通过编译: System.out.println(“你好, 很高兴认识你“ ); 如果需要输出的字符串的长度较长,可以将字符串分解成几部分,然后使用并置符号:“+”将它们首尾相接,例如,以下是正确的写法: System.out.println(“你好,“+ “很高兴认识你“ );,2.4.2 输出基本型数据,2019/7/22,第 24 页,2.4从命令行输入、输出数据_3,System.out.printf(“格式控制部分“,表达式1,表达式2,表达式n) %d输出int类型数据值; %c输出char型数据; %f输出浮点型数据,小数部分最多保留6位; %s输出字符串数据。 输出数据时也可以控制数据在命令行的位置。 例如:%md输出的int型数据占m列; %m.nf输出的浮点型数据占m列,小数点保留n位。例如:System.out.printf(“%d,%f“,12, 23.78);,2.4.2 输出基本型数据,2019/7/22,第 25 页,2.5 数组,数组是相同类型的变量按顺序组成的一种复合型数据类型。,这些相同类型的变量为数组的元素或单元。,数组通过数组名加索引来使用数组的元素。,2019/7/22,第 26 页,2.5 数组,2.5.1 声明数组,1. 声明一维数组有下列两种格式: 数组的元素类型 数组名 ; 数组的元素类型 数组名; 例如: float boy; char cat;,2. 声明二维数组有下列两种格式: 数组的元素类型 数组名; 数组的元素类型 数组名; 例如: float a; Char b;,2019/7/22,第 27 页,2.5 数组,2.5.2 为数组分配元素,为数组分配元素的格式如下: 数组名 = new 数组元素的类型数组元素的个数; 例如: boy = new float4;,数组变量boy中存放着这些元素的首地址,该地址称做数组的引用。,数组属于引用型变量,通过数组变量的名字加索引使用数组的元素(内存示意如图2.4所示).比如: boy0 = 12; boy1 = 23.908F; boy2 = 100; boy3 = 10.23f;,2019/7/22,第 28 页,声明数组和创建数组可以一起完成,例如: float boy=new float4; 二位数组和一维数组一样。 int mytwo; mytwo=new int34; 或 int mytwo=new int34;,构成二维数组的一维数组不必有相同的长度。在创建二维数组时可以分别指定构成该二维数组的一维数组的长度。 int a=new int3;,a0=new int6; a1=new int16; a2=new int8;,2019/7/22,第 29 页,2.5.3 数组元素的使用,一维数组通过索引符访问自己的元素,如boy0,boy1等。,需要注意的是索引从0开始,因此,数组若有7个元素,那么索引到6为止,如果程序使用了如下语句: boy7 = 384.98f; 程序可以编译通过,但运行时将发生ArrayIndexOutOfBoundsException异常。 因此在使用数组时必须谨慎,防止索引越界。,2019/7/22,第 30 页,2.5.4 length的使用,对于一维数组,“数组名.length”的值就是数组中元素的个数;对于二维数组“数组名.length”的值是它含有的一维数组的个数。,float a=new float12;,int b=new int36;,2019/7/22,第 31 页,2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025~2026学年北京市丰台区怡海中学高三上学期期中考试数学试卷
- 教学设计策略研究开题报告
- 公司粪便处理工设备技术规程
- 公司浮选药剂工应急处置技术规程
- 钽铌冶炼工安全知识竞赛水平考核试卷含答案
- 公司酱腌菜制作工岗位安全技术规程
- 广播电视天线工成果转化测试考核试卷含答案
- 违约责任协议书
- 情景化应急预案设计模板(3篇)
- 北京市顺义区市级名校2025-2026学年生物高一上期末考试模拟试题含解析
- 公路交通运营管理与服务质量提升
- 早产儿生后黄金1小时管理
- 2025年大队委员笔试题库及答案
- 2025年网球理论基础知识考试题及答案
- 2025江西吉安市遂川县城控人力资源管理有限公司招聘34人笔试考试参考试题及答案解析
- 初中期中质量分析会校长讲话:正视短板精准发力共筑初中教学质量新高度
- 2025-2026学年度上学期一中高三11月月考物理试卷
- 苏炳添的精神
- 2025版皮肤科疾病常见症状及护理培训
- 吉林省长春市东北师范大学附属实验学校(经开)2024-2025八年级下期初数学考试(含答案)
- 兄弟同意卖房协议书
评论
0/150
提交评论