版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2.1标识符和关键字
2.1.1标识符2.1.2关键字用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。简单地说,标识符就是一个名字。以下是Java关于标识符的语法规则。标识符由字母、下划线、美元符号和数字组成,长度不受限制。标识符的第一个字符不能是数字字符。标识符不能是关键字(关键字见2.1.2节)标识符不能是true、false和null(尽管true、false和null不是Java关键字)例如,以下都是标识符:Hello_java、Hello_12$、$23Boy。需要特别注意的是,标识符中的字母是区分大小写的,hello和Hello是不同的标识符。2.1标识符和关键字
2.1.1标识符2.1.2关键字关键字就是Java语言中已经被赋予特定意义的一些单词。不可以把关键字当做标识符来用。abstractassertbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodoubleelseenumextendsfinalfinallyfloatforgotoifimplementsimportinstanceofintinterfacelongnativenewpackageprivateprotectedpublicreturnshortstaticstrictfpsuperswitchsynchronizedthisthrowthrowstransienttryvoidvolatilewhile。以下是Java的50个关键字:2.2基本数据类型
2.2.1逻辑类型2.2.2整数类型2.2.3字符类型2.2.4浮点类型2.2.5基本数据类型的转换常量:true,false。变量:使用关键字boolean来声明逻辑变量,声明时也可以赋给初值,例如:
booleanx,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基本数据类型的转换1.int型
常量:123,6000(十进制),077(八进制),0x3ABC(十六进制)。
变量:使用关键字int来声明int型变量,声明时也可以赋给初值,例如:
intx=12,平均=9898,jiafei;
对于int型变量,内存分配给4个字节(byte).int型变量的取值范围是:-231~231-1整型数据分为四种:byteshortintlong2.byte型变量:使用关键字byte来声明byte型变量,例如:
bytex=-12,tom=28,漂亮=98;对于byte型变量,内存分配给1个字节,占8位,因此byte型变量的取值范围是-128~1272.2基本数据类型
2.2.1逻辑类型2.2.2整数类型2.2.3字符类型2.2.4浮点类型2.2.5基本数据类型的转换整型数据分为四种:byteshortintlong3.short型变量:使用关键字short来声明byte型变量,例如:shortx=12,y=1234;对于short型变量,内存分配给2个字节,占8位,因此short型变量的取值范围-215~215-14.long型常量:long型常量用后缀L来表示,例如108L(十进制)、07123L(八进制)、0x3ABCL(十六进制)变量:使用关键字long来声明long型变量,例如:longwidth=12L,height=2005L,length;对于long型变量,内存分配给8个字节,占64位,因此long型变量的取值范围是-263~263-1。
2.2基本数据类型
2.2.1逻辑类型2.2.2整数类型2.2.3字符类型2.2.4浮点类型2.2.5基本数据类型的转换整型数据分为四种:byteshortintlongJava把23,45,1000…等字面常量按4个字节处理,因此
Java中不存在byte和short型常量的表示法,但可以把byte或short范围内的int型常量赋值给byte或short型变量。当把一个int型常量赋值给一个byte和short型变量时,不可以超出这些变量的取值范围,否则必须进行类型转换运算;例如,常量128的属于int型常量,超出byte变量的取值范围,如果赋值给byte型变量,必须进行byte类型转换运算(将导致精度的损失),如下所示:
bytea=(byte)128;byteb=(byte)(-129);那么a和b得到的值分别是-128和127。2.2基本数据类型
2.2.1逻辑类型2.2.2整数类型2.2.3字符类型2.2.4浮点类型2.2.5基本数据类型的转换
常量:‘A’,‘b’,‘?’,‘!’,‘9’,‘好’,‘\t’,‘き’,‘モ’等,即用单引号扩起的Unicode表中的一个字符。变量:使用关键字char来声明char型变量,例如:charch='A',home='家',handsome='酷';对于char型变量,内存分配给2个字节,占16位,最高位不是符号位,没有负数的char。char型变量的取值范围是0~65535。对于charx='a';内存x中存储的是97,97是字符a在Unicode表中的排序位置。因此,允许将上面的语句写成
charx=97;2.2基本数据类型
2.2.1逻辑类型2.2.2整数类型2.2.3字符类型2.2.4浮点类型2.2.5基本数据类型的转换要观察一个字符在Unicode表中的顺序位置,可以使用int型强制转换,如(int)‘a’。如果要得到一个0~65535之间的数所代表的Unicode表中相应位置上的字符必须使用char型强制转换。例子1中,分别用强制转换来显示一些字符在Unicode表中的位置,以及某些位置上的字符,运行效果如下图。例子12.2基本数据类型
2.2.1逻辑类型2.2.2整数类型2.2.3字符类型2.2.4浮点类型2.2.5基本数据类型的转换浮点型分为float和double型。1.float型常量:453.5439f,21379.987F,231.0f(小数表示法),2e40f(2乘10的40次方,指数表示法)。需要特别注意的是:常量后面必须要有后缀f或F。变量:使用关键字float来声明float型变量,例如:
floatx=22.76f,tom=1234.987f,weight=1e-12F;对于float型变量,内存分配给4个字节,占32位,float型变量的取值范围大约是对于float型变量,内存分配给4个字节,占32位,float型变量的取值范围是1.4E-45~3.4028235E38和-3.4028235E38~-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型。2.double型常量:2389.539d,2318908.987,0.05(小数表示法),1e-90(1乘10的-90次方,指数表示法)。对于double常量,后面可以有后缀d或D,但允许省略该后缀。变量:使用关键字double来声明double型变量,例如:
doubleheight=23.345,width=34.56D,length=1e12;对于double型变量,内存分配给8个字节,占64位,double型变量的取值范围是4.9E-324~1.7976931348623157E308和-1.7976931348623157E308~-4.9E-324double变量在存储double型数据时保留16位有效数字,实际精度取决于具体数值。2.2基本数据类型
2.2.1逻辑类型2.2.2整数类型2.2.3字符类型2.2.4浮点类型2.2.5基本数据类型的转换按精度从低到高排列:byteshortcharintlongfloatdouble当把级别低的值赋给级别高的变量时,系统自动完成数据类型的转换。需要特别注意的是,当把级别高的变量的值赋给级别低的变量时,必须要使用显式类型转换(强制转换)运算,例如:对于intx=1;bytey;y=(byte)x;是正确的,而y=x;是错误的。编译器不检查变量x的值是多少,只检查x的类型。再比如:charc=65;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型变量时没有进行强制转换运算,例如:floatx=12.4;将导致语法错误,编译器将提示:possiblelossofprecision。正确的做法是:floatx=12.4F;或floatx=(float)12.4;例子2例子2演示了基本数据类型的相互转换,运行效果如图。2.3从命令行输入、输出数据
2.3.1输入基本型数据2.3.2输出基本型数据Scanner类在java.util包中(有关包的知识点将在第4章讲解),可以使用该类创建一个对象:Scannerreader=newScanner(System.in);然后reader对象调用下列方法,读取用户在命令行输入的各种基本类型数据:nextBoolean();nextByte(),nextShort(),nextInt(),nextLong(),nextFloat(),nextDouble()。reader对象用空白做分隔标记读取用户在命令行输入的数据。上述方法执行时读取数据时可能会发生堵塞状态(WAITING)。如果键盘缓冲区中还有“数据”可读,上述方法执行时就不会发生堵塞,否则程序需等待用户在命令行输入新的数据、按enter回车键确认(回车会刷新键盘缓冲区中的内容,消除堵塞状态)。2.3从命令行输入、输出数据
2.3.1输入基本型数据2.3.2输出基本型数据例子3中,用户在键盘用空格(或回车)做分隔,依次输入若干个数字,最后输入#号字符回车键确认,程序将计算出这些数的和及平均值,运行效果如下图。在调用nextInt()方法前,可以让reader对象首先调用hasNextInt()来判断下一个数据是否是符合nextInt()所要求的数据,如果符合要求,hasNextInt()方法返回true,否者返回false。注意,当nextInt()成功读取数据后,hasNextInt()方法才会判断下一个数据。例子32.3从命令行输入、输出数据
2.3.1输入基本型数据2.3.2输出基本型数据System.out.println()或System.out.print()可输出串值、表达式的值,二者的区别是前者输出数据后换行,后者不换行。允许使用并置符号:“+”将变量、表达式或一个常数值与一个字符串并置一起输出,如: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:输出浮点型数据,小数部分最多保留6位。%s:输出字符串数据。输出数据时也可以控制数据在命令行的位置,例如:%md:输出的int型数据占m列。%m.nf:输出的浮点型数据占m列,小数点保留n位。2.4数组
2.4.1声明数组2.4.2创建数组2.4.3数组元素的使用2.4.4length的使用2.4.5数组的初始化2.4.6数组的引用2.4.7表示格式2.4.8复制数组2.4.9排序与二分查找数组的元素类型
数组名字[];数组的元素类型[]数组名字;或数组的元素类型
数组名字[][];数组的元素类型[][]数组名字;例如:floatboy[];charcat[][];数组是相同类型的变量按顺序组成的一种复合数据类型,称这些相同类型的变量为数组的元素或单元。数组通过数组名加索引来使用数组的元素。索引从0开始。与C/C++不同,Java不允许在声明数组中的方括号内指定数组元素的个数。若声明:inta[12];或int[12]a;将导致语法错误。2.4数组
2.4.1声明数组2.4.2创建数组2.4.3数组元素的使用2.4.4length的使用2.4.5数组的初始化2.4.6数组的引用2.4.7表示格式2.4.8复制数组2.4.9排序与二分查找为数组分配内存空间的格式如下:数组名字=new数组元素的类型[数组元素的个数];例如:boy=newfloat[4];为数组分配内存空间后,数组boy获得4个用来存放float类型数据的内存空间(称为数组的元素或单元),如下图。系统会给每个数组元素一个默认的值,如,float型是0.0。数组变量boy中存放着这些内存单元的首地址,该地址称作数组的引用,这样数组就可以通过索引操作这些内存单元。数组属于引用型变量,数组变量中存放着数组的首元素的地址,通过数组名加索引使用数组的元素,如boy[0]=1.3F;2.4数组
2.4.1声明数组2.4.2创建数组2.4.3数组元素的使用2.4.4length的使用2.4.5数组的初始化2.4.6数组的引用2.4.7表示格式2.4.8复制数组2.4.9排序与二分查找一维数组boy或二维数组a都是通过索引符访问自己的元素,如boy[0],boy[1],a[0][1],a[1][2]等等。
在使用数组时必须谨慎,防止索引(下标)越界。编译器不检查数组索引是否越界,但运行时将发生ArrayIndexOutOfBoundsException异常对于一维数组,“数组名字.length”的值就是数组中元素的个数;对于二维数组“数组名字.length”的值是它含有的一维数组的个数。例如,对于floata[]=newfloat[12];intb[][]=newint[3][6];a.length的值12;而b.length的值是3。2.4数组
2.4.1声明数组2.4.2创建数组2.4.3数组元素的使用2.4.4length的使用2.4.5数组的初始化2.4.6数组的引用2.4.7表示格式2.4.8复制数组2.4.9排序与二分查找声明数组时同时也可以给数组的元素一个初始值,如:floatboy[]={21.3f,23.89f,2.0f,23f,778.98f};上述语句相当于:floatboy[]=newfloat[5];然后boy[0]=21.3f;boy[1]=23.89f;boy[2]=2.0f;boy[3]=23f;boy[4]=778.98f;可以直接用若干个一维数组初始化一个二维数组,这些一维数组的长度不尽相同,例如:inta[][]={{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.4length的使用2.4.5数组的初始化2.4.6数组的引用2.4.7表示格式2.4.8复制数组2.4.9排序与二分查找两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。例如,对于inta[]={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.4length的使用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.4length的使用2.4.5数组的初始化2.4.6数组的引用2.4.7表示格式2.4.8复制数组2.4.9排序与二分查找JDK1.5版本后,提供的一个简单的输出数组元素的值的方法。让Arrays类调用publicstaticStringtoString(int[]a)方法,可以得到参数指定的一维数组a的如下格式的字符串表示:[a[0],a[1]…a[a.length-1]]例如,对于数组:int[]a={1,2,3,4,5,6};Arrays.toString(a)得到的字符串是:[1,2,3,4,5,6]2.4数组
2.4.1声明数组2.4.2创建数组2.4.3数组元素的使用2.4.4length的使用2.4.5数组的初始化2.4.6数组的引用2.4.7表示格式2.4.8复制数组2.4.9排序与二分查找1.arraycopy方法System类调用方法publicstaticvoidarraycopy(sourceArray,intindex1,copyArray,intindex2,intlength)可以将数组sourceArray从索引index1开始后的length个元素中的数据复制到数组copyArray中,即将数组sourceArray中索引值从index1到index1+length-1中的元素中的数据复制到数组copyArray的某些元素中;copyArray数组从第index2元素开始存放这些数据。例子5演示了arraycopy方法,运行效果如下图。例子52.4数组
2.4.1声明数组2.4.2创建数组2.4.3数组元素的使用2.4.4length的使用2.4.5数组的初始化2.4.6数组的引用2.4.7表示格式2.4.8复制数组2.4.9排序与二分查找2.copyOf和copyOfRange()方法Arrays类调用publicstaticdouble[]copyOf(double[]original,intnewLength)方法可以把参数original指定的数组中从索引0开始的newLength个元素复制到一个新数组中,并返回这个新数组,且该新数组的长度为newLength,如果newLength的值大于original的长度,copyOf方法返回的新数组的第newLength索引后的元素取默认值。Arrays类调用publicstaticdouble[]copyOfRange(double[]original,intfrom,intto)方法可以把参数original指定的数组中从索引from至to-1的元素复制到一个新数组中,并返回这个新数组,即新数组的长度为to-from。例子6使用copyOf和copyOfRange()方法复制数组.例子6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026上半年四川事业单位统考南充市考试招聘550人考试备考题库及答案解析
- 2026石河子恒信建筑建材检测有限责任公司昆玉分公司招聘10人考试备考试题及答案解析
- 2025-2026学年刷子李教学设计导入
- 2026年中国第一汽车集团有限公司校园招聘考试模拟试题及答案解析
- 2026福建省省属事业单位招聘184人三(医疗类)考试备考试题及答案解析
- 2025-2026学年分类比较教学设计
- 2025-2026学年诚信考试教案
- 2026年中石化青海石油分公司校园招聘笔试参考题库及答案解析
- 固体废物贮存处置场建设项目环境影响报告书
- 道路施工排水设计方案
- HG/T 22820-2024 化工安全仪表系统工程设计规范(正式版)
- 基于人工智能的文化遗产保护与传承策略
- 《做个诚实的孩子》课件
- 2022年上海市养老服务综合统计监测报告
- 生物工程设备课件
- 加缪的人生哲学
- 风险监控指标汇总表
- 江苏师范大学成人继续教育网络课程《英语》单元测试及参考答案
- 小学科学教学经验交流课件
- 中考数学-隐藏的圆(图片版)课件
- GA 423-2015警用防弹盾牌
评论
0/150
提交评论