Java编程基础及应用第2章Java语言基础第二章Java语言基础2.1关键字2.2标识符2.3数据类型2.4常量与变量2.5Java编程规范2.6本章小结第二章Java语言基础2.1关键字2.2标识符2.3数据类型2.4常量与变量2.5Java编程规范2.6本章小结2.1关键字Java是一种严格的类型化语言,Java处理的每一个数据都必须指明类型,正是因为这样的规定,Java才具有了良好的安全性与健壮性。关键字(keyword)是电脑语言里事先定义的,包括具有特殊意义的标识符和特殊意义的变量。2.1关键字abstractassertbooleansdbytecasecatchcharclassconstcontinuedefaultdodoubleelseenumextendsfinalfinallyfloatforgotoifimplementsimportinstanceofintinterfacelongnativenewpackageprivateprotectedpublicreturnstrictfpshortstaticsuperswitchsynchronizedthisthrowthrowstransienttryvoidvolatilewhile第二章Java语言基础2.1关键字2.2标识符2.3数据类型2.4常量与变量2.5Java编程规范2.6本章小结2.2标识符Java语言中,变量,常量,函数或者语句块都有名字,我们统统称之为Java标识符。标识符是用来给类、对象、方法、变量、接口和自定义数据类型命名的。2.2标识符Java标识符由数字,字母和下划线(_),美元符号($)组成,由字母、下划线和美元符号开头。在Java标识符中字母是区分大小写的,而且要求首位不能是数字。Java关键字不能当作Java标识符。2.2标识符命名要求类和接口名:每个单词的首字母大写,可以含有大小写。方法名:首字符小写,其余单词的首字母大写,含大小写。尽量少用下划线。常量名:基本数据类型的常量名使用全部大写字母,字与字之间用下划线分隔。对象常量可大小混写。变量名。可大小写混写,首字符小写,以后每个单词的首字母大写。不用下划线,少用美元符号。给变量命名时尽量做到见名知义。第二章Java语言基础2.1关键字2.2标识符2.3数据类型2.4常量与变量2.5Java编程规范2.6本章小结2.3数据类型Java的数据类型分为:基本数据类型和引用数据类型。基本数据类型的长度和取值范围固定,与平台无关。2.3数据类型基本数据类型数据类型引用数据类型类(class)接口(interface)数组([])数值型字符型(char)布尔型(boolean)整数类型(byte,short,int,long)数值型(float,double)2.3.1整数类型Java定义了4个整数类型:短整型(short),整型(int),长整型(long),字节型(byte)。这些都是有符号的值,正数或是负数。整数类型的长度不应该被理解为它占用的存储空间,而应该是该类变量和表达式的行为。只要你对类型进行了说明,Java的运行环境对该类的大小是没有限制的。2.3.1整数类型2.3.2浮点类型浮点类型表示有小数部分的数字。Java中有两种浮点类型:float:占4个字节,共32位,称为单精度浮点数double:占8个字节,共64位,称为双精度浮点数2.3.2浮点类型float和double类型都遵循IEEE754标准,该标准分别为32位和64位浮点数规定了二进制数据表示形式:float=1(数字符号)+8(指数,底数为2)+23(尾数)double=1(数字符号)+11(指数,底数为2)+52(尾数)2.3.2浮点类型把double类型的数据直接赋给float类型变量,有可能会造成精度的丢失,因此必须进行强制类型的转换,否则会导致编译错误。例如:floatf1=1.0;//编译错误,必须进行强制类型转换;floatf2=1;//合法,把整数1赋值给f2,f2的取值1.0;2.3.3布尔类型布尔类型对程序进行逻辑判断,以控制程序运行过程。只能取true或false两个值之一。注意:在Java源程序中不允许把整数或null赋给boolean类型的变量。2.3.2浮点类型小数的默认类型是double类型,可以把它直接赋值给double类型变量doubled1=1000.1;doubled2=1.0001E+3;//采用十进制科学计数法表示的数字,d2实际取值为1000.1doubled3=0.0011;doubled4=0.11E-2;//采用十进制科学计数法表示的数字,d4实际取值为0.00112.3.3布尔类型例2.1利用布尔值进行判断。publicclassBooleanDemo{publicstaticvoidmain(String[]args){booleaniscat=true;if(iscat){System.out.println(这是一只猫咪!);}else{System.out.println(这不是一只猫咪。);}}}2.3.4字符类型1.字符编码Java语言对文本字符采用Unicode字符编码。由于计算机内存只能存取二进制数据,因此必须为各个字符进行编码。所谓字符编码,是指用一串二进制数据来表示特定的字符。ASCII(AmecianStandardCodeforInformationInterchange美国信息交换标准代码))字符编码是最常见的字符编码。2.3.4字符类型2.char的几种可能取值charc='a';charc='\u0061';//设定a的十六进制数据的Unicode字符编码charc=0x0061;//设定a的十六进制数据的Unicode字符编码charc=97;//设定a的十进制数据的Unicode字符编码2.3.4字符类型3.转义字符对于有些特殊字符,比如单引号,如不知道它的Unicode字符编码,直接从键盘输入编译错误:charc=''';//编码出错为了解决这个问题,可采用转义字符来表示单引号和其他特殊字符:charc='\'';2.3.5引用数据类型引用类型与基本数据类型的行为完全不同,并且它们具有不同的语义。假定一个方法中有两个局部变量,一个变量为int原始类型,另一个变量是对一个Integer对象的对象引用:inti=5;Integerj=newInteger(10);//对象引用2.3.5引用数据类型Java中的所有对象都要通过对象引用访问。对象引用是指向对象存储所在堆中的某个区域的指针。当声明一个原始类型时,就为类型本身声明了存储。引用类型和基本类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和基本类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为null,而基本类型实例变量的缺省值与它们的类型有关。2.3.5引用数据类型不能对原始类型调用方法,但可以对对象调用方法:使用原始类型无须调用new,也无须创建对象。这节省了时间和空间。混合使用原始类型和对象可能导致与赋值有关的意外结果。intj=5;j.hashCode();//错误Integeri=newInteger(5);i.hashCode();//正确2.3.5引用数据类型例2.2基本数据类型与引用数据类型的区别。importjava.awt.Point;publicclassAssign{publicstaticvoidmain(Stringargs[]){inta=1;intb=2;Pointx=newPoint(0,0);Pointy=newPoint(1,1);System.out.println(ais+a);System.out.println(bis+b);System.out.println(xis+x);System.out.println(yis+y);System.out.println(Performingassignmenand+setLocation...);a=b;a++;2.3.5引用数据类型程序运行结果:修改整数a和b的结果没什么意外的地方。b的值被赋予整型变量a,结果a的值增加了1。但我们在完成对对象x=y赋值之后特意对x调用了setLocation,x和y的值怎么会相同呢?ais1bis2xisjava.awt.Point[x=0,y=0]yisjava.awt.Point[x=1,y=1]PerformingassignmentandsetLocation...ais3bis2xisjava.awt.Point[x=5,y=5]yisjava.awt.Point[x=5,y=5]2.3.5引用数据类型这种混淆是由原始类型和对象的使用造成的。对于非原始类型(如Point对象),赋值修改的是对象引用,而不是对象本身。因为x和y是对象引用,它们现在引用同一个对象。因此,对x所作的任何更改也会更改y。第二章Java语言基础2.1关键字2.2标识符2.3数据类型2.4常量与变量2.5Java编程规范2.6本章小结2.4常量与变量常量是在整个程序运行过程中不发生改变的数据。Java中的常量值是用文字常量表示的,文字常量又称为字面常量、子面值、直接常量。常量分为整型常量、浮点常量、字符常量、字符串常量和布尔常量。2.4.1常量1.整型常量整型常量可以采用常用的十进制(decimal),也可以采用八进制(octal),十六进制(hexadecimal)数字表示。十进制数字没有什么特殊标志,八进制数的第一位是数字0开头的,十六进制数字由数字0开头且紧跟一个字母x(大小写均可)后面是数字。7601140x4C2.4.1常量2.浮点常量一个浮点常量通常是指具有小数部分的一个十进制实数,小数点也可以没有,其后可以跟上“C”(或“c”)再加上指数,最后可以跟上“F”(或“f”)表明是单精度(float)或“D”(或“d”)表明是双精度(double),在C的前面最少应有一位数字。7676D76.7.6E17.6E1D0.76E2在Java语言中,用final声明的标识符只能被赋值一次,所以实数常量的定义也可以使用final关键字来完成。publicfinalfloatFF=3.1415926F;publicfinaldoubleFD=7.414253D;2.4.1常量3.字符常量字符常量是用两个英语格式的单引号括起来的一个字符。这个字符可以使拉丁字母,例如‘a’、‘A’,也可以是转义字符(见表2.4),还可以是与所要表示的字符相对应的八进制数或Unicode码。2.4.1常量3.字符常量写法相对应的Unicode码意义‘\n’‘\u000a’回车换行‘\t’‘\u0009’调至横向下一制表位‘\b’‘\u0008’退格‘\r’‘\u000d’回车‘\f’‘\u000c’换页‘\\’‘\u005c’输出反斜杠字符\‘\”‘\u0027’输出单引号字符’‘\”’‘\u0022’输出双引号字符”‘\ddd’ddd表示1~3位八进制数字,最大为377‘\xdd’dd表示1~2位十六进制数字‘\udddd’dddd表示1~4位十六进制数字的Unicode码2.4.1常量3.字符型常量字符串常量是用英语格式的双引号括起来的字符序列(可以使0个字符)。字符串中可以包括任何Unicode字符,也可以是转义字符。注意:‘B’和“B”是完全不同的,前者是字符常量,而后者是字符串常量。在Java语言中,可以使用连接运算符(+)把两个或更多的字符串常量连接在一起,组成一个更长的字符串。2.4.1常量3.布尔类型在Java语言中,布尔常量只能是true(逻辑真)和false(逻辑假)中的一个。2.4.2变量任何变量在使用之前都需要声明。变量的声明