首页 Java语言2 Java运算符与表达式

Java语言2 Java运算符与表达式

举报
开通vip

Java语言2 Java运算符与表达式Java语言程序设计资源与环境科学学院第二章Java语言基础*Java的基础语法(1)—Java程序必须放在一个类中—Java是严格区分大小写的—Java是一种自由格式的语言一条语句可以分成多行来书写。但是在换行时不能将一个单词分隔,一个字符串也不能分隔,如果一定要分隔字符串,那就要用"+"号相连。—Java程序有三种注释方式/**/多行注释//单行注释/***/文件注释,这表明此后正文内容可以由自动文档生成器javadoc读取,它可以为JavaA...

Java语言2 Java运算符与表达式
Java语言程序设计资源与环境科学学院第二章Java语言基础*Java的基础语法(1)—Java程序必须放在一个类中—Java是严格区分大小写的—Java是一种自由格式的语言一条语句可以分成多行来书写。但是在换行时不能将一个单词分隔,一个字符串也不能分隔,如果一定要分隔字符串,那就要用"+"号相连。—Java程序有三种注释方式/**/多行注释//单行注释/***/文件注释,这表明此后正文内容可以由自动文档生成器javadoc读取,它可以为JavaAPI生成HTML文件。*Java的基础语法(2)—java中的标识符 java中的包、类、方法、参数和变量的名字,可由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但标识符不能以数字开头,不能是关键字。合法的标识符:indentifierusernameuser_name_userName$username非法的标识符:class98.3HelloWorld*Java的关键字注:java留做将来使用的goto,const关键字,不能用作变量名 abstract do implement private this boolean double import protected throw break else instanceof public throws byte extend int return transient case false interface short true catch final long static try char fianlly native strictfp void class float new super volatile continue for null switch while default if package synchronized*Java的常量(1)—整型常量十进制(12),八进制(012),十六进制(0x12)—长整型常量13L—单精度浮点数 5.1f,.4f,0f—双精度浮点数 5.1,.4,0d—布尔常量true和false*Java的常量(2)—字符常量 ‘a’,‘8’,'\u0027'‘\r‘表示接受键盘输入,相当于按下了回车键;‘\n‘是换行;‘\t‘是制表符,相当于table键;‘\b‘是退格键,相当于BackSpace;‘\‘‘是单引号,而‘\“‘是双引号;‘\\‘是一个斜杠“\”。—字符串常量 “HelloWorld“,”123”,"Welcome\nXXX"—null常量 null常量只有一个值,用null表示,表示对象的引用为空*Java的常量(3)—要声明常量,可在变量声明前加上关键字final,并给变量指定一个初值。如 finaldoublePI=3.141592finalbooleanDEBUG=falsefinalintPENALTY=25实例程序:书P21*Java的变量(1)变量:是系统为程序分配的一块内存单元,用来存储各种类型的数据。根据所存储的数据类型的不同,有各种不同类型的变量。变量名代表这块内存中的数据。*Java的变量(2)*Java的变量(3)—字节类型byte占用一个字节(8位),数字大小为-27~27-1—短整数类型short占用两个字节(16位),数字大小为-215~215-1—整数类型int占用四个字节(32位),数字大小为-231~231-1—长整数类型long占用八个字节(64位),数字大小为-263~263-1*Java的变量(4)—单精度浮点类型float占用四个字节(32位),数字大小为1.4E-45~3.4E38F,有效数位约为6~7位。—双精度浮点类型double占用八个字节(64位),数字大小为4.9E-324~1.7E308,有效数位约为14~15位。—字符类型char占用两个字节(16位),数字大小为0~216-1,是unicode编码。字符类型是一种基于整数的类型,可以直接算术运算—布尔类型boolean取值只有两个,true和false*Java类型转换—编译程序将会检查数据类型,防止两个不兼容的数据类型之间随意进行赋值—类型转换分两类: 自动类型转换(也叫隐式类型转换)某些数值的转换不需要强制进行,Java允许把一个较小的数据类型的值直接赋给一个具有较大范围的数据类型的变量。例,把整数类型的值赋给长整数类型的值。 强制类型转换(也叫显式类型转换)通过在表达式前面的圆括号中写入新的类型名,即可以把一个表达式强制转换成另一个数据类型。例:floatf=3.142F;intt=(int)f;*变量的生命周期—变量要先定义,后使用,但不是在变量定义后的语句一直都能使用前面定义的变量。我们可以用大括号将多个语句包起来形成一个复合语句,变量只能在定义它的复合语句中使用。publicclassTestScope{publicstaticvoidmain(String[]args){ intx=12;{intq=96;//x和q都可用 intx=3;System.out.println("xis"+x);System.out.println("qis"+q);}q=x;System.out.println("xis"+x);}}//错误的定义,Java中不允许有这种嵌套定义//错误的行,只有x可用,q超出了作用域范围*Java的类型系统*Java中的运算符*运算符的定义—运算符是一种特殊符号,用以表示数据的运算、赋值和比较,一般由一至三个字符组成。运算符共分以下几种: 算术运算符 赋值运算符 比较运算符 逻辑运算符 移位运算符*算术运算符*算术运算符中注意问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 “+”除字符串相加功能外,还能把非字符串转换成字符串,如:“x”+123;的结果是“x123”。 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论了,如:-7%2=-1 对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。intx=3510;x=x/1000*1000;等于?实际运行结果是3000*算术运算符的应用技巧 思考题1:某个培训中心要为新到的学员安排房间,假设共有x个学员,每个房间可以住6人,让你用一个公式来计算他们要住的房间数? 思考题2:假设你要让x的值在0至9之间循环变化,请写出相应的程序代码。答案:(x+5)/6。这种算法还可用在查看留言板的分页显示上:其中x是总共的留言数,6是每页显示的留言数,结果就是总共有多少页。答案:intx=0;while(true){x=(x+1)%10;}另一个编程实例:书P25*赋值运算符注1:在JAVA里可以把赋值语句连在一起,如:x=y=z=5;在这个语句中,所有三个变量都得到同样的值5。注2:x+=3等效于x=x+3,*=,-=,/=依此类推。*比较运算符注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。注2:比较运算符“==”不能误写成“=”,切记!切记!*逻辑运算符注1:逻辑运算符用于对boolean型结果的表达式进行运算,运算的结果都是boolean型。注2:“&”和“&&”。“&”可作用于两个布尔操作数或两个整数操作数。作用于布尔操作数时,无论任何情况,“&”两边的表达式都会参与计算。如果使用“&&”,当“&&”的左边为false,则将不会计算其右边的表达式。“|”和“||”的区别与“&”和“&&”的区别一样。见书:P28*“&”和“&&”的区别 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 publicclassTestAnd{publicstaticvoidmain(String[]args){intx=0;inty=3;if(x!=0&&y==y/x) System.out.println("y="+y);}}上面例子中,由于if语句的判断条件中的第一个布尔表达式是不成立的,程序就不会判断第二个布尔表达式的值,这就是“短路”。如果两个表达式之间用“&”来连接,如果正好碰到上面所示的特殊情况,就会出错。*位运算符 任何信息在计算机中都是以二进制的形式保存的,&,|,^除了可以作为逻辑运算符,也可以做为位算符,它们对两个操作数中的每一个二进制位都进行运算。—只有参加运算的两位都为1,&运算的结果才为1,否则就为0。—只有参加运算的两位都为0,|运算的结果才为0,否则就为1。—只有参加运算的两位不同,^运算的结果才为1,否则就为0。*位运算符 我们可以对数据按二进制位进行移位操作,java的移位运算符有三种:—<<左移无符号的位移处理,左移并低位补0,正负可变化。—>>右移(带符号右移)带符号右移,空出高位改成最高位值。—>>>无符号右移(右移零填充)无符号位移,空出高位补0.*“>>”和“>>>”区别分析publicclassShiftTest{publicstaticvoidmain(String[]args){intx=0x80000000;//x十进制为:-2^31=-2147483648inty=0x80000000;x=x>>1;y=y>>>1;System.out.println(“0x80000000>>1=”+Integer.toHexString(x));System.out.println(“0x80000000>>>1=”+Integer.toHexString(y));}}运行结果如下:0x80000000>>1=0xc0000000//十进制为:-10737418240x80000000>>>1=0x40000000//十进制为:1073741824十六进制与二进的对比0x8000000016=1000,0000,0000,0000,0000,0000,0000,00000xc000000016=1100,0000,0000,0000,0000,0000,0000,00000x4000000016=0100,0000,0000,0000,0000,0000,0000,0000*1.16进制数转换为10进制数intx=0x80000000;//x十进制为:-2^31=-2147483648 可看到0x80000000是一个负数。int型负数中最大的一个数。0xc0000000是一个负数,第一位为符号位,转换为十进制为:-2^30=-10737418240x40000000是一个正数,第一位为符号位,转换为十进制为:2^30=10737418242.x>>1的结果和x/2的结果是一样的,x<<1和x*2的结果也是一样的。是装换成十进制数的结果。3.x>>2带符号右移两位,空出的高位全部补符号位数值。位运算注意问题(1) 移位运算符适用类型有byte、short、char、int、long 对低于int型的操作数将先自动转换为int型再移位 对于int型整数移位a>>b,系统先将b对32取模,得到的结果才是真正移位的位数。例如:a>>33和a>>1结果是一样的,a>>32的结果还是a原来的数字对于long型整数移位时a>>b,则是先将移位位数b对64取模。*位运算注意问题(2) 移位不会改变变量本身的值。如a>>1;在一行语句中单独存在,毫无意义。x>>1的结果和x/2的结果是一样的,x<<2和x*4的结果也是一样的。总之,一个数左移n位,就是等于这个数乘以2的n次方,一个数右移n位,就是等于这个数除以2的n次方。请思考:如何用程序实现求2的x次方?答案:y=1<<x;*运算符号的优先级我们可以使用括号改变运算赋的优先级,分析inta=2;intb=a+3*a;语句的执行过程与inta=2;intb=(a+3)*a;语句的执行过程的区别。*多个运算符的注意问题 对于inta=2;intb=a+3*a++;这样的语句,b最终等于多少呢? 对于inta=2;intb=(3*a++)+a;这样的语句,b最终等于多少呢? 对于inta=2;intb=(a++)+3*a;这样的语句,b最终等于多少呢?—Java的计算顺序 规定 关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定 ,对于所有二元运算符(带两个操作数),在计算右边的操作数之前,总是应当先全部计算出左边的操作数。因此,b+c*d,b必须在指向乘法操作之前先行计算(因为对加法运算来说,乘法是它右边的操作数)试验得到的结果是a=3,b=8。试验得到的结果是a=3,b=9。试验得到的结果是a=3,b=11。*多个运算符的注意问题publicclassMathTest{//Java应用程序由main方法开始执行publicstaticvoidmain(Stringargs[]){inta=2;intb=a+3*a++;System.out.println("a="+a);System.out.println("b="+b);} }*多个运算符的注意问题 与其去思考其中的原因,我们还不如将上面的第二句改为几条语句来实现我们想要的结果。不要在一行中编写太复杂的表达式,也就是不要在一行中进行太多的运算在一行中进行太多的运算并不能为你带来什么好处,相反只能带来坏处,它并不比改成几条语句的运行速度快,它除可读性差外,还极容易出错。对于优先级顺序,不用刻意去记,有个印象就行。如果你实在弄不清这些运算先后关系的话,就用括号或是分成多条语句来完成你想要的功能,因为括号的优先级是最高的。*本章 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf —掌握Java的基础语法。程序编写位置,大小写,注释方式,标识符,关键字。—掌握Java的常量和变量数据类型。各数据类型所占字节数,数据表达范围,类型转换,变量的生命周期问题。—掌握Java的运算符。算术运算符及注意问题,赋值运算符号,比较运算符,逻辑运算符,位运算符及注意问题。运算符的优先级及多个运算符的注意问题。*思考题—Java有哪些数据类型,各数据类型所占字节数是多少?类型转换分为几类?—Java有哪些运算符类型?使用时分别需要注意哪些问题?***************************1.16进制数转换为10进制数intx=0x80000000;//x十进制为:-2^31=-2147483648 可看到0x80000000是一个负数。int型负数中最大的一个数。0xc0000000是一个负数,第一位为符号位,转换为十进制为:-2^30=-10737418240x40000000是一个正数,第一位为符号位,转换为十进制为:2^30=10737418242.x>>1的结果和x/2的结果是一样的,x<<1和x*2的结果也是一样的。是装换成十进制数的结果。3.x>>2带符号右移两位,空出的高位全部补符号位数值。********
本文档为【Java语言2 Java运算符与表达式】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
xxj7584
暂无简介~
格式:ppt
大小:771KB
软件:PowerPoint
页数:0
分类:建造师考试
上传时间:2020-03-18
浏览量:0