版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
T2Java数据处理与流程控制回顾Java的历史与发展Java语言特性理解Java虚拟机(JVM)Java的开发环境与配置目标数据类型运算符号流程控制数组变量变量的特性名称:标识符,代表这块内存中的数据。类型:根据所存储的数据类型的不同,有各种不同类型的变量。初始值:为其赋值或者是保留缺省值,变量在使用前必须先初始化。作用域
:在不同程序块中的可用性及生命周期intx=0;y=x+3;Java中两大数据类型基本数据类型:也称作内置类型,Java语言本身提供的基本数据类型,是其他类型(包括Java核心库和用户自定义类型)的基础。例如:boolean,char等引用数据类型:Java语言根据基本类型扩展出的其他类型。例如:class,interface等在程序执行期间可根据需要经常变化的值。java的变量类型数据类型基本数据类型引用数据类型数值型字符型(char)布尔型(boolean)整数类型(byte,short,int,long)浮点类型(float,double)类(class)接口(interface)数组基本数据类型的取值范围基本类型类型定义类型取值boolean1字节8位true,falsebyte1字节8位有符号整数-128~+127char2字节16位Unicode字符Unicode0~Unicode216-1short2字节16位有符号整数-32768(-215)~+32767(+215-1)int4字节32位有符号整数-2147483648(-231)~+2147483647(231-1)long8字节64位有符号整数-263~+263-1float4字节32位浮点数1.4E-45~3.4E+38,-1.4E-45~-3.4E+38double8字节64位浮点数4.9E-324~1.7E+308,-4.9E-324~-1.7E+308基本数据类型之间的转换当把一个long类型的变量赋值给int类型时,int可能存不下那么大的数。所以编译器不允许把long变量赋值给int变量但是反之可以除boolean类型外,所有的原始数据类型因为各自的精度不同,赋值时都要考虑这个问题基本数据类型之间的转换自动类型转换(隐式类型转换)
byteb=3;
intx=b;//b自动转换成int型14321byteint强制类型转换(显示类型转换)
bytea;
intb; a=(byte)b;//强制转换强转时,当心丢失数据或失真基本数据类型之间的转换相同类型的变量、常数运算,结果还是原类型不同类型的变量、常数运算,结果的类型为参与运算的类型中精度最高者表达式的数据类型自动提升规则byte,short,char型的值被提升int型其中一个操作数为long型,结果为long型其中一个操作数为float型,结果为float型其中一个操作数为double型,结果为double型基本数据类型之间的转换案例说明:byteb=50;charc=‘a’;shorts=1024;inti=50000;floatf=5.67f;doubled=.1234;result=(f*b)+(i/c)-(d*s);请问result是什么类型?案例分析System.out.println(‘a’+1);System.out.println(“”+’a’+1);以上两条语句打印结果是什么?运算符运算符是是一种特特殊符号号,用以以表示数数据的运运算、赋赋值和比比较,一一般由一一至三个个字符组组成。。运算符共共分以下下几种算术运算算符赋值运算算符比较运算算符逻辑运算算符位运算符符算术运算算符赋值运算算符赋值运算算符(=)用于为变变量赋值值比较运算算符关系运算算符用于于测试两两个操作作数之间间的关系系。关系表达达式将返返回一个个布尔结结果。运算符含义示例==等于a==b!=不等于a!=b>大于a>b<小于a<b>=大于或等于a>=b<=小于或等于a<=binstanceof检查是否是该类的一个对象“aa”instanceofString注1:比较运运算符的的结果都都是boolean型,也就就是true/false。注2:比较运运算符““==”不能误写写成“=”,切记!!切记!!逻辑运算算符逻辑运算算符与布布尔操作作数一起起使用运算符含义示例&逻辑与A&B|逻辑或A|B^逻辑异或A^B!逻辑反!A||短路或A||B&&短路与A&&B“&”和“&&”的区别在在于:“&”:那么无论论任何情情况,““&”两边的表表达式都都会参与与计算。。“&&”:当“&&”的左边为为false,则将不不会计算算其右边边的表达达式。“|”和“||”的区别与与“&”和“&&”的区别一一样。位运算用于int、short、long、byte和char数据类型型运算符含义示例~
按位非(NOT)/取反b=~a
&
按位与(AND)c=a&b
|
按位或(OR)c=a|b
^
按位异或(XOR)c=a^b
>>
右移b=a>>2
>>>
无符号右移,左边空出的位以0填充b=a>>>2
<<
左移b=a<<1
Java中位运算算符都是是通过二进制进行操作作的。位运算规规则:任何信息息在计算算机智中中都是以以二进制制的形式式保存的的,&、|、^除了可以以作为逻逻辑运算算符,也也可以作作为位运运算,它它们对两两个操作作数中的的每一个个二进制制位都进进行运算算。只有参与与运算的的两位都都为1,&运算的结结果才为为1,否则就就是0。只有参与与运算的的两位都都为0,|运算的结结果才为为0,否则就就是1。只有参与与运算的的两位不不同,^运算的结结果才为为1,否则就就是0。我们可以以对数据据按二进进制的位位进行移移位操作作,Java的位移运运算有三三种:<<左移>>右移>>>无符号右右移位运算10001010右移100010100被抛弃右移后补1运算符的的优先级级高优先级低三元运算算符(?:)三元运算算符(?:)可以替代代if-else结构true
false条件
?表达式1:表达式2classTernaryOp{publicstaticvoidmain(Stringargs[]){intsalary,daysPresent=30;salary=daysPresent==20?2000:3000;System.out.println("您本月薪薪资为$"+salary);}}Instanceof运算符classInstanceOfDemo{publicstaticvoidmain(Stringargs[]){InstanceOfDemot=newInstanceOfDemo();if(tinstanceofInstanceOfDemo){System.out.println("T是InstanceOfDemo的实例");}else{System.out.println("T不是InstanceOfDemo的实例!");}}}可以确定对象象是否属于一一个特定的类类控制结构选择if-elseSwitch循环whiledo-whileforJava支持下列控制制结构:选择择、循环、跳跳转跳转breakContinueif(i<10)returni*100;elsereturni*10;以上代码片断断等效于:returni<10?i*100:i*10;if-else选择语句switch选择语句switch结构的语法为为:switch(表达式){case'常量值1':语句(组);break;case'常量值2':语句(组);break;case'常量值N':语句(组);break;default:语句(组);}表达式必须为为byte,short,int或char类型常量值必须是是与表达式类类型兼容的特特定的一个常常量不允许有重复复的case值default子句为可选while循环while(条件){语句组;}do-while循环do{语句组;}while(条件);for循环for(变量初始化;循环条件表达达式;递增或递减变变量的值){语句组;}循环语句“初始化”和“循环条件表达达式”部分可以使用用逗号来执行行多个操作如果三个部分分都为空语句句(分号不能能省),相当当于一个无限限循环“当型”循环,先判断断条件再执行行“直到型”循环,先执行行再判断条件件,也就是说说,至少可以以执行一次在while(条件)后面的分号不不要忘循环语句使用规则While适合于开始不不清楚循环将将要进行的次次数,而且循循环可能一次次都不进行的的情况do-while适合于不清楚楚循环次数,,但是循环肯肯定要进行一一次的情况For适合于预先知知道循环将要要进行的次数数的情况一定程度上他他们是可以互互相替换的break和continuebreak语句在循环中中用于立即从从当前循环终终止控制。遇到break语句时,将跳跳出当前循环环。continue语句则是从其其调用处跳至至循环的开始始处。continue语句之后的语语句将不再执执行。Return返回语句Return语句从当前方方法退出,返返回到调用该该方法的语句句处,并从紧紧跟该语句的的下一条语句句继续执行程程序。返回语句的两两种格式:1、returnexpression返回一个值给给调用该方法法的语句。返回值的数据据类型必须和和方法声明中中的返回值类类型一致或是是精度低于声声明的数据类类型。2、return当方法声明中中用void声明返回类型型为空时,应应使用这种返返回类型,它它不返回任何何值。数组:是有相同类型的、用一个标标识符名称封封装到一起的的一个对象序列或基本数据类类型数据序列。数组是一种最最简单的复合合数据类型。。数组可以是一一维的也可以以是多维的。。一维数组定义义:typearrayName[]或type[]arrayName说明:type:可以是java中任意的数据据类型,包括括简单类型和和复合类型((也可以是数数组)arrayName:为一个合法法的标识符;;[]指明该变量是是一个数组类类型的变量。。数组例如声明一个个数组x:intx[];int[]x;声明一个数组组,每个元素素都是整数数数据。声明的时候不不指定数组的的长度。只声明的数组组是不能访问问它的任何元元素的请问此时能否否访问该数组组中的值?数组--声明数组变量量intx[];用new关键为对象分分配其内存空空间。Type[]arrayName=newtype[arraySize]例如:int[]x=newint[100];通过引用来使用数组元元素:arrayName[index]index为数组下标,,可是整型常常数或表达式式。index取值从0到arraySize-1;数组–为数组分配空空间X=newint[100]当x=null即该数组对象象不再被任何何引用变量使使用的时候,,“垃圾回收收器”将自动动释放该内存存资源数组在内存中中的分配数组数组的静态初初始化intia[]={1,2,3,4};intia[]=newint[]{3,4,5};动态初始化intintArray[];//声名数组Int[]Array=newint[5];//为数组分配空空间注意:声明数数组时,无论论用何种方式式定义数组,,都不能指定定其长度inta[5];声明的时候不不能指定长度度数组使用时要注意意的问题空指针异常((NullPointException)只声明但没有有初始化的时时候直接使用用该变量。数组越界异常常(ArrayIndexOutBoundsException)所有数组的下下标都从0开始int[]a={1,2,3};for(inti=0;i<a.length;i++){System.out.println(a[i]);}其中length属性表示数组组的长度多维数组多维数组(数组的数组)java没有真正的多多维数组,只只有数组的数数组二维数组的定定义typearrayName[][];或type[][]arrayName;例子:intxx[][]=newint[3][3];int[][]xx={{3,2,7},{1,5},{6}};多维数组C中的数组必须须是x*y矩阵Java中的数组则可可任意静态初始化intintArray[][]={{3,2,7},{1,5},{6}};Java语言中,由于于把二维数组组看作是数组组的数组,数数组空间不是是连续分配的的,所以不要要求二维数组组每一维的大大小相同。多维数组多维数组动态初始化int[][]xx=newint[3][];//指定一个3行n列的数组xx[0]=newint[3];//指定第一行为为3列xx[1]=newint[2];//指定第二行为为2列在Java语言中,必必须首先为为最高维分分配引用空空间,然后后再顺次为为低维分配配空间。总结数据类型运算符号流程控制数组作业1、哪些是基基本数据类类型?哪些些是引用数数据类型??2、算术运算算符中“/”和“%”的区别是什什么?3、描述几种种分支结构构的语法和和执行过程程?4、在循环中中使用什么么方式跳出出或终止循循环?5、while循环和do-while循环有什么么区别?上机作业1、写一个程程序,通过过控制台输输入某个学学生的成绩绩,并进行行比较,大大于60的根据成绩绩的不同给给出不同的的奖励,小小于60分进行惩罚罚。2、写一个程程序,通过过控制台输输入30个学生的成成绩,最后后统计出最最高分、最最低分、和和平均分成成绩3、定义几个个变量描述述长方形的的长和宽,,然后计算算出该长方方形的周长长、面积并并输出?上机作业1、编写一个个程序,如如下图,先先输出供用用户选择的的信息选项项,然后用用户输入选选择的选项项序号,程程序根据选选项的序号号打印出相相对应的信信息,然后后结束程序序。上机机作作业业2、编编写写猜猜数数字字程程序序,,先先定定义义一一个个变变量量,,给给变变量量初初始始化化个个值值,,用用户户通通过过控控制制台台猜猜该该变变量量的的值值,,如如果果用用户户输输入入的的值值大大于于变变量量的的值值就就提提示示““大大了了””,,如如果果小小于于就就提提示示““小小了了””,,直直到到猜猜对对为为止止??3、使使用用二二维维数数组组存存储储并并打打印印如如下下数数据据::12345678910然后后打打印印它它的的倒倒三三角角:12473586910写程程序序输输出出下下面
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论