1第二章java语言基础java语言的词法数据类型变量操作符与表达式流程控制语句数组2java语言的词法1.空格与分号2.注释3.标识符4.关键字源码网:是一种自由格式的语言,可以用任意个空格、制表符、换行符隔开每个词。如:System.out.println(Counted+count+chars.);分号作为语句的结束符,每个语句必须以分号作为结束符。第二章java语言基础4java语言的词法2.注释三种注释格式://实现单行注释/*这是*一段注释,*它跨越了多个行*//**JDK的javadoc工具用这种注释信息能自动从程序中抽出类的公共接口形成文档。…*/第二章java语言基础5java语言的词法3.标识符定义:标识符用来作为类、方法和变量的名字语法规则:以字母、下划线(_)、美元符号($)开始,后跟这三种符号或数字。例如:identifier_sys_var1$changeuserNameuser_name必须要区分大小写没有长度限制第二章java语言基础6java语言的词法3.标识符《续》约定:–类名,接口名:首字母应该大写。classThisIsAClassNameinterfaceAccount–字段、方法以及对象:首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如:getMethod()–常量:全部用大写字母表示。如:GREENHEAD_COUNT–Java包(Package)属于一种特殊情况:它们全都是小写字母,即便中间的单词亦是如此。如:packagejava.awt.event第二章java语言基础7第二章java语言基础java语言的词法4.关键字abstractbooleanbreakbytecasecatchcharclassconst*continuedefaultdodoubleelseextendsfinalfinallyfloatforgoto*ifimplementsimportinstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttryvoidvolatilewhile关键字是由系统定义的一些词,它们在程序里代表特定的含义。定义表示符时要避免使用这些词。第二章java语言基础java语言的词法4.关键字有关关键字值得我们注意的地方:(1)true、false和null为小写,而不是象在C++语言中那样为大写。严格地讲,它们不是关键字,而是文字。然而,这种区别是理论上的。(2)无sizeof运算符,因为所有数据类型的长度和表示是固定的,与平台无关,不是象在C语言中那样数据类型的长度根据不同的平台而变化。这正是Java语言的一大特点。(3)goto和const不是Java编程语言中使用的关键字。9数据类型基本数据类型(primitivetype:)引用数据类型(referencetype)第二章java语言基础数据类型–Java中的数据类型可以分为基本类型(primitivetype)和引用类型(referencetype)两大类。其中的基本数据类型包括:整数类型、实数类型(也称浮点类型)、字符类型和布尔类型。–Java中的引用数据类型是一种抽象数据类型(ADT),它将数据和相关的操作封装在一起。除了Java类库提供的大量作为API的引用数据类型外,Java允许程序员定义自己的引用数据类型,满足更复杂的编程需要。Java中的数据类型基本类型(primitive)字符类型布尔类型整数类型实数类型floatchar引用类型(reference)intlongbyteshortdoubleboolean整数、字符、布尔、实数类、接口字、字节、位字符串、集合、数组基本数据类型机器内部表示引用数据类型抽象第二章java语言基础11字符型:char整型:byte,short,int,andlong浮点型:double,float布尔型:boolean(取值true或false)第二章java语言基础数据类型基本数据类型(primitivetype:)12数据类型字符型数据第二章java语言基础1.字符型常量:字符常量是用单引号括起来的一个字符,如‘a’,‘A’转义字符,以反斜杠(\)开头,将其后的字符转变为另外的含义13数据类型字符型数据转义字符描述\ddd1到3位8进制数所表示的字符(ddd)\uxxxx1到4位16进制数所表示的字符(xxxx)\’单引号字符\’’双引号字符\\反斜杠字符\r回车\n换行\f走纸换页\t横向跳格\b退格第二章java语言基础14数据类型字符型数据第二章java语言基础2.字符型变量(char):它在机器中占16位,其范围为0~65535字符型变量的定义如:charc=’a’;可以把它当作整数数据来操作。例如:intthree=3;charone=’1’;charfour=(char)(three+one);//four=’4’15数据类型字符型数据第二章java语言基础3.字符串型常量:字符串是指一个字符序列的集合。在Java中字符串完全被当成对象,字符串类型是标准Java类库中预定义的String类。字符串作为对象数据类型还封装了许多相关的操作,便于我们对字符串进行处理。字符串常量是作为String类的一个对象来处理的,而不是一个基本数据.字符串常量是用双引号(“”)括起来的一串字符,如“Thisisastring.\n”。字符串连接使用+操作符intcount=7例如:Counted+count+chars.16数据类型字符型数据第二章java语言基础3.字符串型常量:字符串连接使用+操作符intx=0,y=1,z=2;StringsString=x,y,z;System.out.println(sString+x+y+z);System.out.println(x+sString);–intlength()返回字符串的长度。–Stringsubstring(intbeginIndex,intendIndex)返回原字符串中从beginIndex位置开始到endIndex位置(不包括该位置)之间的所有字符组成的新字符串。–intindexOf(intch)返回从索引0开始的与ch字符相匹配的首个字符的位置(索引值)。未检索到匹配字符的则返回-1。–intindexOf(Stringstr)返回从索引0开始的与str字符串相匹配的首个子串的开始位置(索引值)。未检索到匹配的字符串则返回-1。–booleanequals(ObjectanObject)比较字符串是否相等,相当时返回true,否则返回false。–比较字符串是否相等应该使用equals方法。示例程序字符串的引用与构造Srtingname1=newString(李白);//构造字符串对象“李白”,//name1引用该字符串对象Srtingname2=李白;//name2引用已构造的字符串对象“李白”Srtingname3=杜甫;//隐式构造字符串对象“杜甫”,name3引用该字符串对象name1=杜甫;//name1引用字符串对象“杜甫”第二章java语言基础数据类型字符型数据18数据类型整型数据第二章java语言基础1.整型常量:三种表示形式:–十进制整数,如123,-456,0–八进制整数,以0开头,如0123表示十进制数83,-011表示十进制数-9。–十六进制整数,以0x或0X开头,如0x123表示十进制数291默认整型常量为int类型。在机器中占32位对于long型值,则要在数字后加L或l,如123L表示一个长整数。在机器中占64位。19第二章java语言基础2.整型变量整型变量的类型有byte,short,int,long四种整型长度数据类型取值范围8bitsbyte-27to27-116bitsshort-215to215-132bitsint-231to231-164bitslong-263to263-1数据类型整型数据20第二章java语言基础3.整型变量的定义例如:byteb;//指定变量b为byte型shorts;//指定变量s为short型inti;//指定变量i为int型longl;//指定变量l为long型数据类型整型数据21数据类型浮点型数据第二章java语言基础1.实型常量Java的实常数有两种表示形式:十进制数形式:由数字和小数点组成,且必须有小数点,如0.123,.123,123.,123.0科学计数法形式:如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。实常数默认类型为double型,在机器中占64位,对于float型的值,则要在数字后加f或F,如12.3F,它在机器中占32位,且表示精度较低。22数据类型浮点型数据第二章java语言基础2.实型变量实型变量的类型有float和double两种:数据类型所占位数float32double643.实型变量定义例如:floatf;//指定变量f为float型doubled;//指定变量d为double型23数据类型举例第二章java语言基础请看Literals.java布尔类型boolean数据类型有两种文字值:true和false。在机器中之占1位。注意在Java编程语言中boolean类型只允许使用boolean值,在整数类型和boolean类型之间无转换计算。在C语言中允许将数字值转换成逻辑值,这在Java编程语言中是不允许的。25数据类型引用数据类型(referencetype)第二章java语言基础数组Array,类class,接口interface属于reference类型。reference类型的变量是所引用的对象的内存地址。例子:26数据类型引用数据类型(referencetype)第二章java语言基础publicclassMyDate{privateintday=1;privateintmonth=1;privateintyear=2000;publicMyDate(intday,intmonth,intyear){...}publicvoidprint(){...}}publicclassTestMyDate{publicstaticvoidmain(String[]args){MyDatemy_birth=newMyDate(22,7,1964);}27数据类型引用数据类型(referencetype)第二章java语言基础创建一个类对象:MyDatemy_birth=newMyDate(22,7,1964);28数据类型引用数据类型(referencetype)第二章java语言基础两个引用变量的赋值将会产生如下结果:intx=7;inty=x;MyDates=newMyDate(22,7,1964);MyDatet=s;t=newMyDate(22,12,1964);两个变量指向一个对象:29数据类型引用数据类型(referencetype)第二章java语言基础当t变量赋予一个新值时:t=newMyDate(22,12,1964);两个变量分别指向两个对象:30数据类型引用数据类型(referencetype)第二章java语言基础见例题:Assignment.java结果:1:n1.i:9,n2.i:472:n1.i:47,n2.i:473:n1.i:27,n2.i:27将一个对象传递到方法内部时,也会产生此现象见例题:PassObject.java输出结果如下:1:x.c:a2:x.c:z31常量和变量第二章jav