版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
变量和常量
2运算符与表达式
4标识符和关键字
31基本数据类型
33控制语句6数组35本章内容提要标识符
Java标识符命名规范:
由字母、数字、_和$组成;标识符的第一个字符不能是数字;标识符区分大小写;长度不限,但通常不超过15个字符;不能取名为Java关键字;不能夹有空格。2.1标识符和关键字如果确实需要分隔,可以用下划线代替空格,如“MAX_SIZE”。标识符用来命名变量、符号常量、数组、方法、类、对象、接口、包等。为了提高程序的可读性,标识符最好“见名知义”,而且规范大小写的使用方式。2.1标识符和关键字
例如:合法的标识符
identifieruserNameUser_Name_sys_val$change
非法的标识符
2mail room# class
2.1标识符和关键字2#classJava语言使用Unicode标准字符集,Unicode标准字符集由UNICODE协会管理并接受其技术上的修改,最多可以识别65536个字符,所以字母包括下面几种:A---Z,a---z0——9汉字、日文、朝鲜文、德文、希腊文等多国语言中的符号2.1标识符和关键字关键字关键字又称保留字,是Java语言规定了特定含义的标识符。用户只能按照系统规定的方式使用;不能自行定义;关键字一律用小写字母表示。
2.1标识符和关键字abstractbooleanbreakbytecasecatchcharclasscontinuedefaultdodoubleelseextendsfalsefinalfinallyfloatforifimplementsimportinstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticstrictfpsuperswitchsynchronizedthisthrowthrowstransienttruetryvoidvolatilewhile2.1标识符和关键字注释
1.单行注释以//开始,并以换行符结束。
2.块注释以/*开始,并以*/结束。这种注释不能互相嵌套。
3.doc注释以/**开始,并以*/结束。Doc注释一般位于整个文档的最前面,它是Java特有的。2.1标识符和关键字1.变量:
变量就是内存中的一小块空间,它用来存储一个数据。内存中可以有多个这样的小块空间,为了以示区别,将它们命名为不同的名字,这个名字就是变量名。
Java是强类型语言,在使用前,要先定义:
doubleprice=33.2d;2.2变量和常量2.常量:常量是在程序运行期间不能被修改的量,常量分为普通常量(常数)和标识符常量,普通常量(常数)可以直接使用;标识符常量就是常值变量,使用前需要先被定义。
finalintMAX_SIZE=345;在Java语言中不能通过#define命令把一个标识符定义为常量,而是用关键字final来实现;习惯上,常量名用大写字母,变量名用小写字母,以示区别。2.2变量和常量数据类型概述2.3基本数据类型说明数据类型占内存空间(位数)字节型byte1字节(8位)短整型short2字节(16位)整型int4字节(32位)长整型long8字节(64位)单精度浮点型float4字节(32位)双精度浮点型double8字节(64位)布尔型boolean1字节(8位)字符型char2字节(16位)与C语言有哪些区别整数类型整数类型又称为整型,整型数据是一种数值型数据,是指那些没有小数部分的数据。整型常量:123、6000(十进制),077(八进制),0x3ABC(十六进制).
整型变量的定义分为4种:
1.int型(4个字节)使用关键字int来定义int型整型变量。例:intx;2.3基本数据类型2.字节型(1个字节)使用关键字byte来定义字节型整型变量。例:bytex,tom_12;3.短整型(2个字节)使用关键字short来定义短整型变量。例:shortx,tom_12;2.3基本数据类型4.长整型(8个字节)使用关键字long来定义长型整型变量。例:longx,longtom_12;Java没有提供任何无符号整数类型2.3基本数据类型浮点类型
浮点类型又称为实型,指的是包含小数部分的数据,分为float和double两种类型。
1.float型(4个字节)常量:123.5439f,12389.987F,123.0f,2e40f(f不可省略)
变量:
使用关键字float来定义float型变量例:floatx,floattom_12;2.3基本数据类型2.double型(8个字节)常量:12389.5439d(d可以省略),12389908.987,123.0,6e-140(6乘10的-140次方,科学计数法)变量:
使用关键字double来定义double型变量。例:doublex,tom_12;
如果变量赋值时没有对float类型加上后缀f,就会出错:
floatf1=125.39;2.3基本数据类型布尔类型
常量
:true,false变量:
使用关键字boolean来定义逻辑变量例:booleanx;booleantom_12;Java中的布尔值和数字之间不能来回转换,即false和true不对应于任何0或非0的整数值。2.3基本数据类型字符类型
字符常量:’A’,‘!’,‘9’,‘好’,‘\t’字符变量:使用关键字char来定义字符变量例:charx,tom_12;
对于char型变量,内存分配2个字节,char型变量的取值范围为0——65535。例:charx=‘a’;charx=97;字符串常量:“A”,“Hello\nJava”
2.3基本数据类型
要观察一个字符在Unicode字符集中的顺序位置,必须使用int类型显示转换,如(int)’a’。反之,如果要得到一个0——65535之间的数所代表的Unicode表中的相应位置上的字符也必须使用char型显示转换,如(char)123。
[例2-1]字符型数据与整型数据的相互转换2.3基本数据类型汉字"我"在unicode表中的顺序位置:25105unicode表中第25105位置上的字符是:我
基本数据类型间的相互转换
Java是一种强类型语言,用表达式为一个变量赋值,或是在一个方法中传递参数时,两者数据类型必须匹配,否则需要类型转换。Java中的类型转换有两种:自动转换和强制转换。
1.自动转换当把在级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换。
2.3基本数据类型
低-------------------------------------------->高byte—>short—>char—>int—>long—>float—>double26在表达式中,byte、short或char数据将无条件地转换(升级)为int类型。在表达式中,实现低级别向高级别自动升级。在赋值表达式中,如果左值类型高于右值类型,右值类型将自动转换为左值类型。2.3基本数据类型2.3基本数据类型
例:
floatx=100;
如果输出x的值,结果将是
intx=50;floaty;y=x;
如果输出y的值,结果将是100.050.0强制转换
当级别高的变量的值赋给级别低的变量时,必须强制进行数据类型转换。强制转换格式为:(目标数据类型)变量名或表达式例:intx=(int)23.89;输出x的值是
charc=(char)(12.5+54);输出c的值是强制转换运算可能导致精度的损失。2.3基本数据类型23‘B’所有整数类型都能向float或double自动转换,反之必须强制转换;字符类型可向int、long、float、double自动转换,反之必须强制转换;字符类型转换为byte时必须强制转换;布尔类型不可和任何其他数据类型转换。2.3基本数据类型
运算符是对操作数进行运算的符号。运算符的类型包括:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符和其他运算符。
表达式是用运算符把操作数(变量、常量和方法等)连接起来的表达某种运算或含义的式子。表达式的类型由运算以及参与运算的操作数的类型决定,可以是简单类型,也可以是引用类型。
2.4运算符与表达式算数运算符与算术表达式
1.二元算术运算符二元算术运算符涉及两个操作数。
运算符表达式功能+op1+op2加-op1-op2减*op*op2乘/op/op2除%op%op2求余2.4运算符与表达式数据类型之间的转换;与C不同,对取模运算符“%”来说,其操作数可以为浮点数,如10%3.5=3.0;Java对加运算符进行了扩展,使它能够进行字符串的连接,如"abc"+"de",得到串"abcde"。2.4运算符与表达式2.一元算术运算符一元算术运算符涉及的操作数只有一个。
2.4运算符与表达式运算符名称表达式功能+一元加+op1取正值-一元减-op1取负值++增量++op1,op1++加1--减量--op1,op1--减1
例如:
假设a=5,b=10,计算表达式
c=(a++)*(--b)。计算过程分为以下三步:
(1)b=b-1=9;
(2)c=a*b=45;
(3)a=a+l=62.4运算符与表达式关系运算符与关系表达式
2.4运算符与表达式运算符表达式功能>op1>op2比较op1是否大于op2<op1<op2比较op1是否小于op2>=op1>=op2比较op1是否大于等于op2<=op1<=op2比较op1是否小于等于op2==op1==op2比较op1是否等于op2!=op1!=op2比较op1是否不等于op2关系运算符用于测试两个操作数之间的关系。关系表达式将返回一个布尔结果true或false,而不是C中的1或0。例如:
表达式3>5的值为false;表达式3<=5的值为true;表达式3==5的值为false;表达式3!=5的值为true。2.4运算符与表达式逻辑运算符与逻辑表达式
关系表达式1的值(op1)关系表达式2的值(op2)op1&&op2op1||op2!op1truefalsefalsetruefalsetruetruetruetruefalsefalsefalsefalsefalsetruefalsetruefalsetruetrue2.4运算符与表达式逻辑运算符与布尔操作数一起使用;&&和||的“短路”性质。
例如:
x的初值是2,那么经过下列逻辑比较运算后,x的值仍然是1。
((y=2)==0)&&((x=5)==5);
经过下列逻辑比较运算后,x的值将变为5。
((y=2)==2)&&((x=5)==5);2.4运算符与表达式位运算符与位表达式运算符功能表达式~按位取反~op&按位与op1&op2|按位或op1|op2^按位异或op1^op2>>op1按位右移op2位op1>>op2<<op1按位左移op2位op1<<op2>>>op1添零右移op2位op1>>>op22.4运算符与表达式1.位逻辑运算符”按位与”运算符例如:a00000111b10101011&________c 00000011结论:按位与,只有一一为1。2.4运算符与表达式“按位或”运算符例如:
a00101010b00010111
|_________c00111111结论:按位或,只有零(0)零(0)为0。2.4运算符与表达式“按位取反”运算符例如:
a00101010~_________c11010101结论:对二进制数按位取反,即0变成1,1变成0。2.4运算符与表达式“按位异或”运算符例如:
a00101010b00010111^________c00111101结论:按位异或,只有零一或一零为1。2.4运算符与表达式位运算符也可以操作逻辑型数据当a、b都是true时,a&b是true,否则是false当a、b都是false时,a|b是false,否则是false当a是true时,~a是false;当a是false时,~a是true
例如:x的初值是1((y=1)==0)&&((x=6)==6);((y=1)==0)&((x=6)==6);2.4运算符与表达式2.移位运算符右移运算符>>
用来将一个数的二进制位序列右移若干位。例如:
a=00010001a>>2=00000100b=11101111b>>2=11111011
结论:右端的低位被舍弃,最高位则移入原来高位的值。2.4运算符与表达式左移运算符<<
用来将一个数的二进制位序列左移若干位。例如:
a=00010001a<<2=01000100b=11101111b<<2=10111100
结论:高位左移后溢出,舍弃;低位加0。2.4运算符与表达式添零右移运算符>>>
用来将一个数的各二进制位添零右移若干位,也称为无符号右移。例如:
a=00010001a>>>2=00000100b=11101111b>>>2=00111011
结论:右端的低位被舍弃,最高位则永远加0。2.4运算符与表达式赋值运算符与赋值表达式赋值表达式的组成为:赋值运算符的左侧为一个变量,右侧为一个表达式。表达式的值的类型应与左侧的变量类型一致或者可以转换为左侧的变量类型。
1.赋值运算符赋值运算符“=”用来把一个表达式的值赋给一个变量。2.4运算符与表达式例如:byteb=12;inti=b;//自动类型转换
inta=13;bytec=(byte)a;//强制类型转换
intj=i+1;//把表达式i+1的值赋给变量j2.4运算符与表达式2.扩展赋值运算符在赋值运算符“=”前加上其他运算符,即构成了扩展赋值运算符。例如:
a*=b--(a=6)/(b=2)包含以下三步运算:
(1)a=6,b=2,a/b=3;
(2)b=b-a/b=-1;
(3)a=a*b=-62.4运算符与表达式2.4运算符与表达式运算符表达式等效表达式+=op1+=op2op1=op1+op2-=op1-=op2op1=op1-op2*=op1*=op2op1=op1*op2/=op1/=op2op1=op1/op2%=op1%=op2op1=op1%op2&=op1&=op2op1=op1&op2|=op1|=op2op1=op1|op2^=op1^=op2op1=op1^op2>>=op1>>=op2op1=op1>>op2<<=op1<<=op2op1=op1<<op2>>>=op1>>>=op2op1=op1>>>op2条件运算符与条件表达式
条件运算符是三元运算符,用“?”和“:”表示。
classTernaryOp{publicstaticvoidmain(String[]args){intsalary,daysPresent=30;salary=daysPresent==20?2000:3000; System.out.println("您本月薪资为$"+salary);}}2.4运算符与表达式true
false条件
?表达式1:表达式2其他运算符
1.括号运算符()
在Java语言中,括号运算符()的运算优先级最高,在表达式中使用时,用于改变运算符的运算顺序。
2.下标运算符[][]是数组下标运算符,定义数组时用于声明数组元素的个数;引用数组元素时用于提供数组的下标值。
2.4运算符与表达式3.对象运算符instanceof
对象运算符instanceof用于测试一个指定的对象是否是指定类(或它的子类)的一个实例化的对象,若是则返回true,否则返回false。例如:
Strings="abcde";booleanb=sinstanceofString;4.内存分配运算符new
使用new运算符为数组和类分配内存空间。2.4运算符与表达式运算符的优先级与结合性
2.4运算符与表达式优先顺序运算符结合性1.[]()2++--!~instanceof右到左3new左到右4*/%左到右5+-左到右6>><<>>>左到右7><>=<=左到右8==!=左到右优先顺序运算符结合性9&左到右10^左到右11|左到右12&&左到右13||左到右14?:左到右15=+=-=*=/=%=^=右到左16&=|=<<=>>=>>>=右到左2.4运算符与表达式
数组是Java语言的一种引用类型,它是由类型相同的元素组成的有顺序的数据集合。在一个数组中:
1.每个元素的数据类型都是相同的。
2.数组中的各个元素都是有顺序的。
3.所有元素共用一个数组名,利用数组名和数组下标来唯一地确定数组中每个元素的位置。
4.数组要经过声明、分配内存及赋值后,才能被使用。2.5数组一维数组
一维数组的定义分为声明和为数组分配内存空间两步进行。
1.一维数组的声明一维数组的一般声明方式为:
typearrayName[];
或者type[]arrayName;
2.5数组包括基本数据类型和引用数据类型合法的标识符注意:在[]里面什么都不能有2.创建数组空间
arrayName=newtype[arraysize];
例如:
inta[];a=newint[20];也可以将声明与分配内存空间合成一条语句。例如:
inta[]=newint[20];2.5数组和C语言不同,Java允许使用int型变量指定数组的大小。例如:
intsize=30;doublenumber[]=newdouble[size];一维数组在声明的时候,[]里面是什么都不能有的,但是在使用new运算符进行构造的时候,必须指明数组的长度,只有这样系统才能知道应该给这个数组分配多少内存。2.5数组3.一维数组的初始化当一个数组用new为数组分配内存后,自动用数据类型的缺省值初始化所有的数组元素。
类型初始化值char\u0000int0long0lfloat0.0fdouble0.0dbooleanfalse引用类型null2.5数组
例如:intmyArray[]=newint[50];
另一种创建数组的方法是直接赋值,初值的个数就是数组的大小,初始值必须用大括号括住,用逗号作为分隔符。
intmyArray[]={1,2,3,4,5,6};2.5数组4.一维数组元素的引用数组中元素的引用方式为:
arrayName[index]
下标可以是整型常数或表达式。需要注意的是下标从0开始,一直到数组的长度减1。表示一维数组长度的格式:数组名.length。
例如:int[]intArray=newint[20];intL=intArray.length;2.5数组[例2-2]一维数组的使用2.5数组数组a:123456,20,30数组b:123456,20,30数组b的长度:3数组的数组如果一个一维数组,它的每个元素又都是一个一维数组,就构成了一个二维数组。
1.数组声明
typearrayName[][];
或type[][]arrayName;
例如:int[][]array2;2.5数组2.创建数组空间直接为每一维分配空间例如:
a[][]=newint[2][3];从最高维开始,分别为每一维分配空间例如:
b[][]=newint[2][];//未分配内存空间, //还不能使用数组bb[0]=newint[3];b[1]=newint[5];//创建两个一维数组2.5数组3.数组初始化与一维数组相同,一个二维数组定义后,必须经过初始化才可以引用。对由new操作符生成的数组元素自动初始化。例如:
inta[][]=newint[2][3];2.5数组
例如:
strArray=newString[2][3];//正确的方法
strArray=newString[2][];//正确的方法
最高维必须指定长度其余低维可不指定长度
strArray=newString[][4];
不允许最高维不指定长度而其余低维指定长度2.5数组定义数组的同时对数组初始化例如:intmyArr[][]={{1,2},{3,4,5},{6,7}};
在Java语言中,从最高维至最低维分配空间。分配空间时当前最高维必须指定长度,其余低维可不指定长度;但不允许最高维不指定长度而其余低维指定长度。2.5数组Java中的程序控制语句分为3类
1.选择结构
2.循环结构
3.跳转语句2.6控制语句选择语句选择语句根据条件表达式值的不同选择执行不同的语句序列,其他与条件表达式值不匹配的语句序列则被跳过不执行。选择语句分为:条件语句(if-else)多分支语句(switch)2.6控制语句1.条件语句if语句
if(条件) statement;或者
if(条件) {block}2.6控制语句2.6控制语句[例2-3]使用if表达式将三个数按从小到大的顺序排列
a=4,b=6,c=8if-else语句
if(条件) statement1;或{block1} else statement2;或{block2}2.6控制语句2.6控制语句有钱吗?有没有else子句不能单独作为语句使用,它必须和if子句配对使用。if和else后面的复合句里如果只有一个语句,{}可以省略不写,但为了增强程序的可读性最好不要省略。
[例2-4]使用if-else表达式判断成绩数学及格了我在学习Java2.6控制语句if-elseif语句
if(条件1) statementl;或{blockl} elseif(条件2) statement2;或{block2} ┊ elseif(条件N) statementN;或{blockN} else statementN+1;或{blockN+1}]2.6控制语句if与else的配对关系。else总是与它上面的最近的未配对的if配对。例如:
if(表达式1)
if(表达式2)语句1else
语句2if(表达式3)语句3else
语句4{}2.6控制语句2.多分支语句
switch(expression){ casevaluel:statement1; break; casevalue2:statement2; break; ┊ casevalueN:statementN; break; default:defaultStatement; }
2.6控制语句switch语句在使用时需要注意以下几点:表达式expression的值只能为:int、byte、short或char。多分支语句把表达式返回的值依次与每个case子句进行比较,如果遇到匹配的值,则执行该case子句后的语句序列。case子句中的值必须是常量,而且所有case子句中的值应是不同的。
2.6控制语句default子句是任选的。当表达式的值与任一case子句中的值都不匹配时,程序执行default后面的语句;如果表达式的值与任一case子句中的值都不匹配且没有default子句,程序不作任何操作,直接跳出switch语句。break语句用来在执行完一个case分支后,使程序跳出switch结构,即终止switch语句的执行。
2.6控制语句[例2-5]使用switc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮业餐厅经理顾客体验与收入增长绩效评估表
- 设计创新与市场反馈协同性考核表
- 生物制药实验室技术员操作合规性评估表
- 防暑防蚊防虫课件
- 放射防护制作方案课件
- 放射腹部课件
- 2027年备考公务员 面试综合练习试题卷附答案
- 2027年备考会计基础 【零基础学员必练】自我提分评估(附答案)
- 2027年备考人力资源管理专业知识与实务 全真模拟考试试题卷含答案
- 法式别墅庄园介绍课件
- 试用期聘用合同范本6篇
- (一模)2026年11月绍兴市2027届高三高考科目诊断性考试物理试卷(含答案)
- IEC 62920-2021 中文版(光伏发电系统 功率转换设备电磁兼容性要求与试验方法)
- 基层医疗机构抗菌药物临床应用考核试题库(适配国家基本药物目录)
- 2026陕西延长石油集团统一招聘笔试真题(完整版+手写阅卷版答案解析)
- 消毒供应室降低纸塑包装物品灭菌后水迹发生率品管圈PDCA案例所有图表均可以直接点击编辑修改
- 2025年房地产估价师《土地估价基础与实务》真题及答案解析回忆版
- 北京信息科技大学《高等数学(1)》2025-2026学年第一学期期末试卷(B卷)
- 2026年老年人体检服务规范测试题
- 雨课堂学堂在线学堂云《审计心理案例分析(西南政法)》单元测试考核答案
- 道路工程施工监理细则与质量控制流程
评论
0/150
提交评论