数据类型与运算符_第1页
数据类型与运算符_第2页
数据类型与运算符_第3页
数据类型与运算符_第4页
数据类型与运算符_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章数据类型与运算符本章要点目标理解:常量、变量和表达式。掌握:Java中的八种原始数据类型。掌握:运算符和表达式的应用。重点掌握:熟练使用整型、浮点型、字符型常用的数据类型的定义,表示和引用。掌握:算术运算符、关系运算符和逻辑运算符的应用。难点掌握:自增、自减运算符的不同用法。2.1.1常量定义:常量是在程序运行过程中其值始终保持不变的量。声明常量语法:final数据类型常量名=值;例如:finalintA=12;一般常量用大写。2.1.2变量定义:变量是在程序运行时值会发生变化的量。声明变量语法:数据类型变量名1[,变量名2,……];数据类型变量名1[=初值][,变量名2[=初值],…];intk;//声明一个存放整型且名是k的变量floatx,y;//声明浮点型变量x,ycharch=‘w’;//声明字符变量ch,初值为w2.1常量、变量和表达式2.1常量、变量和表达式【例2-1】源程序名“ComputeArea.java”,计算面积示例。

//ComputeArea为类名; publicclassComputeArea{ publicstaticvoidmain(Stringargs[]){

doubleradius,area; //声明变量; finaldoublePI=3.1415926; //声明常量; radius=20; //给变量赋值;

area=radius*radius*PI;

System.out.println(“area

is”+area); } }

2.2数据类型每个数据类型都有一个值域,或者叫做范围。编译器根据变量或常量的数据类型对其分配存储空间。Java为数值、字符值和布尔值数据提供了几种基本数据类型。Java语言的数据类型划分如图2-1。数据类型基本数据类型类class数据类型整数类型浮点类型字符类型char布尔类型boolean接口interface数组单精度浮点型float双精度浮点型double字节型byte短整型short整型int长整型long图2-1Java语言的数据类型2.2数据类型表2-1Java的基本数据类型数据类型关键字占用位数缺省数值取值范围布尔型boolean8falsetrue,false字符型char16‘\u0000’'\u0000'~'\uFFFF'’字节型byte80–128~127短整型short160–32768~32767整型int320–2147483648~2147483647长整型long640–9223372036854775808~9223372036854775807单精度float320.0F-3.4E38~3.4E38双精度double640.0D-1.7E308~1.7E3082.2数据类型2.2.1整数类型包括四种类型:byte、short、int、long。整数常量:十进制整数,如,10,-4;八进制整数,以0开头,如010,-012。十六进制整数,以0x开头,如0x10,零x。Java默认整数常量类型为int;要表示long类型需要在整数后面加上L或l。整数变量:声明整数类型变量:int

aintvar //声明aintvar变量是int类型;long alongvar //声明alongvar变量是long类型;注意:要根据变量可能处于的最大值选择合适的整型。2.2.2浮点类型包括两种类型:float和doubleJava默认的浮点型是double类型;数字后面跟d或D,表示double类型;数字后面跟f或F,表示float类型;2.2数据类型【例2-2】源程序名“TypeMaxValue.java”,数值数据类型的最大值示例。

publicclassTypeMaxValue{

publicstaticvoidmain(Stringargs[])

{ bytelargestByte=Byte.MAX_VALUE; //定义byte类型变量 shortlargestShort=Short.MAX_VALUE; //定义short类型变量

int

largestInteger=Integer.MAX_VALUE; //定义int类型的变量 longlargestLong=Long.MAX_VALUE; //定义long类型的变量 floatlargestFloat=Float.MAX_VALUE; //定义float类型的变量 doublelargestDouble=Double.MAX_VALUE;//定义double类型变量 //在屏幕上显示对应类型的最大值

System.out.println("最大的byte值是:"+largestByte);

System.out.println("最大的short值是:"+largestShort); System.out.println("最大的integer值是:"+largestInteger);

System.out.println("最大的long值是:"+largestLong);

System.out.println("最大的float值是:"+largestFloat);

System.out.println("最大的double值是:"+largestDouble);}

}2.2数据类型运行结果程序分析Java中每种数据类型都封装为一个类,通过类型类的MAX_VALUE方法找到各种数值数据类型的取值最大值。2.2数据类型2.2.3字符类型字符型常量字符型常量就是用两个单引号括起来的一个字符。如‘A’,‘1’,‘’表示空格。FinalcharNAME=‘A’;字符型变量字符型变量是char,用于表示单个字符。charletter=‘d’;charnumchar=‘2’; 字符串常量字符串常量就是括在两个双引号之间0个或多个字符组成的序列。Stringmessage=“WelcometoJava!”;//字符串必须用双引号括住。

注意:字符型变量可以进行增量减量运算。“A”是字符串;而‘A’是字符。2.2数据类型2.2.4布尔类型布尔数据类型的值域包括两个值:真(true)和假(false)。boolean

doorOpen=true;布尔类型的值不能转换成任何数据类型,true不等于1,false也不等于0。2.2.5类型之间的转换自动类型转换自动转换按照低级类型转换成高级类型的规则进行,有系统自动实现。bye->short->int->long->float->double //从左到右依次自动转换char->int //char类型可以直接转换成int类型强制类型转换由高级类型向低级类型转换叫做强制类型转换。格式:(目标数据类型)变量名或表达式例如:inta=345; byteb; b=(byte)a;2.2数据类型【例2-3】源程序名“TypeTest.java”,数据类型转换示例。

publicclassTypeTest{ publicstaticvoidmain(Stringargs[]){

intc; longd=6000; floatf; doubleg=123456789.987654321; c=(int)d;f=(float)g;//导致精度的损失.System.out.println("c="+c);System.out.println("d="+d);System.out.println("f="+f);System.out.println("g="+g);}}2.1简单数据类型运行结果

程序分析将long类型数据强制转换为int类型,有些情况可能导致数据溢出。将double类型数据强制转换为float类型,将导致精度的损失,通过运行结果可以看出。所以,进行数据类型的强制转换时一定需要慎重。2.2.6转义序列转义字符代表一些特殊字符。转义字符主要通过在字符前加一个反斜杠“\”来实现。常用的转义字符

转义字符含

义转义字符含

义'\b'退格'\uxxxx'用4位16进制数表示字符'\t'制表符tab'\"'双引号'\r'回车'\''单引号'\n'换行'\\'反斜线'\f'换页'\ddd'用3位8进制数表示字符2.2数据类型2.3运算符和表达式运算符是表明作何种运算的符号。操作数是被运算的数据。表达式是由操作数和运算符组成的式子。表达式的运算结果称为表达式的值。Java提供的运算符,按操作数的数目来分,可有:一元运算符:需要一个操作数。++i,--i,+i,-i二元运算符:需要二个操作数。a+b,a-b,a>b三元运算符:需要三个操作数。表达式1?表达式2:表达式3三目表达式的运算规则是:如果表达式1的值为true,则整个表达式的值取表达式2的值。如果表达式1的值为false,则整个表达式的值取表达式3的值。例如,4>3?4:3表达式的值为4。多数二元运算符具有自左向右的结合性,一元运算符具有自右向左结合性。运算符按功能分为8类:算术运算符;关系运算符;逻辑运算符;位运算符;条件运算符;赋值运算符;扩展运算符;其他运算符(分量运算符,下标运算符等)。2.3运算符和表达式2.3.1算术运算符算术运算符可以对数值型和字符型数据进行运算,但不能对布尔类型数据进行运算。表2-3Java定义的算术运算符运算符意义运算符意义+加%求余-减++自增*乘--自减/除基本算术运算符加,减,乘,除;注意:对整数进行“/”除法运算时,所有余数都去掉。doublei1=1.0/2.0;//i1的结果是0.5

inti2=1/2;//i2的结果是0inti3=5/2; //i3的结果是2doublei4=5.0/2.0//i4的结果是2.5 2.3运算符和表达式2.3.1算术运算符模运算符整数,浮点数都可以进行模运算,其结果是整数和浮点数。inti5=42%10 //i5的值为2doublei6=42.5%10//i6的值为2.5自增和自减运算符x++,++x等同于x=x+1;x--,--x等同于x=x-1;++,--前置后置于变量使用不同若运算符是前置于变量的,则变量先加1或减1,再参与表达式中的运算。若运算符是后置于变量的,则变量先参与表达式的运算,再加1或减1。例如:inti=10;intn;n=10*i++;//先算10*i即10*10等于100,再计算机i++,i的值是11,n值是100另例:doublex=1.0;doubley=5.0;doublez=x--+(++y);三行都执行完后,y变为6.0,z变为7.0,而x变为0.0。2.3运算符和表达式2.3.2关系运算符和逻辑运算符关系运算符关系运算又称比较运算,用来比较两个同类型数据的大小。关系运算符都是双目运算符。关系运算的结果是布尔值,即true(真)或false(假)。Java提供的关系运算符见表2-4表。表2-4比较运算符运算符名称例结果<小于1<3true<=小于等于1<=3true>大于1>2false>=大于等于1>=2false==等于1==2false2.3运算符和表达式逻辑运算符逻辑运算又称布尔运算,是对布尔值进行运算,其运算结果仍为布尔值。常用的逻辑运算符如表2-5所示。

表2-5逻辑运算符运算符名称举例描述!非!x对x进行取反运算。例如,若x为true,结果为false&&与x&&y若x和y都为true,结果才为true||或x||y若x和y都为false,结果才为false^异或x^y假设变量x=1和y=2,则(x>1)^(y==2)的结果为true。2.3运算符和表达式2.3.3位运算符位运算符用于对二进制位(bit)进行运算。位运算符的操作数和结果都是整数。常见的位运算符如表2-6所示。表2-6位运算符运算符名称应用举例运算规则~按位取反~x对x每个二进制位取反&按位与x&y对x,y每个对应的二进制位做与运算|按位或x|y对x,y每个对应的二进制位做或运算^按位异或x^y对x,y每个对应的二进制位做异或运算<<按位左移x<<a将x各二进制位左移a位>>按位右移x>>a将x各二进制位右移a位>>>不带符号的按位右移x>>>a将x各二进制位右移a位,左面的空位要补02.3运算符和表达式2.3.4赋值运算符和条件运算符赋值运算符赋值运算符用于给变量或对象赋值。基本赋值运算符使用形式:变量或对象=表达式“=”的作用是,把右边表达式的值赋给左边的变量或对象。例如:j=k=i+2;//运算顺序是,先将i加2的值赋给k,再把k的值赋给j。x=12.45;y=2*x+1;i=(int)x;条件赋值运算符:条件赋值运算符(?:)是三元运算符。一般形式:<表达式1>?<表达式2>:<表达式3>A=5;B=A>10?100:1000; //结果B为10002.3运算符和表达式2.3.5扩展运算符扩展运算符是在基本赋值运算符前面加上其他运算符后构成的赋值运算符。Java提供的各种扩展运算符见表2-7所示。表2-7扩展运算符表2-7复合赋值运算符运算符名称举例功能+=加赋值运算符a+=ba=a+b-=减赋值运算符a-=ba=a-b*=乘赋值运算符a*=ba=a*b/=除赋值运算符a/=ba=a/b%=取余赋值运算符a%=ba=a%b&=位与赋值运算符a&=ba=a&b|=位或赋值运算符a|=ba=a|b^=位异或赋值运算符a^=ba=a^b<<=算术左移赋值运算符a<<=ba=a<<b>>=算术右移赋值运算符a>>=ba=a>>b2.3运算符和表达式2.3.6其他运算符分量运算符(“.”):意为Sytem类的out方法;实例运算符(instanceof):tinstanceofTread; //用来测试t是否是Tread的一个实例内存分配运算符(new):t=newThread(“T1”);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论