NCEPU第二章Java语言基础2019年11月24日星期日NCEPUContents1.关键字和标识符2.基本数据类型3.变量和常量4.运算符和表达式NCEPU一、关键字和标识符2019年11月24日星期日NCEPU一、关键字和标识符关键字标识符注释分隔符2019年11月24日星期日NCEPU一、关键字和标识符*Java语言使用国际字符格式标准Unicode码,而不是ASCII码。Unicode字符集定义了一整套国际标准字符集,用16位表示一个字符,包括65536个字符,比通常使用的8位的ASCII码字符集大得多。2019年11月24日星期日NCEPU一、关键字和标识符*数字、英文字母、和标点符号在Unicode和ASCII字符集中有相同的值除此以外,Unicode字符集还包括许多常见语种的字母,如拉丁语、希腊语、汉字等。2019年11月24日星期日NCEPU关键字关键字(keyword)是Java中具有特殊含义的字符序列Java不允许用户对关键字赋予别的含义,或做标识符使用。Java定义的关键字为:2019年11月24日星期日NCEPU关键字abstractbreakbytebooleancatchcaseclasscharcontinuedefaultdoubledoelseextendsfalsefinalfloatforfinallyifimportimplementsintinterfaceinstanceoflonglengthnativenewnullpackageprivateprotectedpublicfinalreturnswitchsynchronizedshortstaticsupertrytruethisthrowthrowsthreadsafetransientvoidwhile2019年11月24日星期日NCEPU标识符*标识符(identifier)用来表示变量名、常量名、类名、方法名、接口名等。Java标识符:组成:字母数字_$开头:字母_$区分大小写2019年11月24日星期日NCEPU标识符*合法标识符IdentifieruserNameUser_name_sys_var1$changesizeof非法标识符2Sun//以数字2开头Class//是Java的关键字,有特殊含义#myname//含有其他符号#2019年11月24日星期日NCEPU标识符*标识符区分大小写,长度没有限制。Xyz,xyz,XYZ都是不同的标识符。注意:许多系统中都使用$,并且有特殊含义,因此最好不要随便使用$。2019年11月24日星期日NCEPU标识符(约定)*Java在约定俗成的惯例中,有一些对标识符的命名约定:类、接口类名采用名词,可以由多个字组成,每个字的首字母大写,其他字母小写。例如:HelloWorld接口是一种特殊的类,命名约定与类一样关键字首字母大写如(String),系统定义的类首字母大写如System.out.println(“HelloWorld!”);2019年11月24日星期日NCEPU标识符(约定)*方法方法名采用动词,可以由多个字组成,第一个字的首字母小写,其他字的首字母大写,其他字母采用小写。尽量不要在方法名中使用下划线(_)。例如:getName2019年11月24日星期日NCEPU标识符(约定)*常量简单类型的常量名全部为大写,字和字之间用下划线分隔。例如:BLUE_COLOR变量变量的命名规则与方法名一样,而且尽量避免使用$,该字符对内层类有特殊含义2019年11月24日星期日NCEPU注释*Java有三种注释形式://在一行的注释,注释风格源于C++/*一行或多行注释,这是传统C所用的注释风格,C++也继承了它*//**文档注释*/2019年11月24日星期日NCEPU注释*■为类和接口添加注释类或者接口的注释必须在所有import语句的后面,同时又要位于class定义的前面。除了上面所说的常规标记以外,你还可以在类注释中使用如下标记:◇@author作者名当使用author标记时,用指定的文本文字在生成的文档中添加“Author”(作者)项。文档注释可以包含多个@author标记。可以对每个@author指定一个或者多个名字。当然你同样可以使用多个作者标记,但是它们必须放在一块儿。◇@version版本这个标记建议一个“版本”条目,后面的文字可以是当前版本的任意描述。2019年11月24日星期日NCEPU注释*■方法注释紧靠在每条方法注释的前面,必须有一个它所描述的那个方法的签名。同样除了使用常规用途的标记以外,还可以使用如下针对方法的注释:◇@param变量描述当前方法需要的所有参数,都需要用这个标记进行解释,并且这些标记都应该放在一起。具体的描述(说明)可同时跨越多行,并且可以使用html标记。◇@return该方法的返回值这个标记为当前方法增加一个返回值(“Returns”)小节。同样具体描述支持html并可跨多行。◇@throws该方法抛出的异常这个标记为当前方法在“Throws”小节添加一个条目,并会自动创建一个超级链接。具体的描述可以跨越多行,同样可以包括html标记。一个方法的所有throws都必须放在一起。2019年11月24日星期日NCEPUHelloWorld.java/***ThefirstThinkinginJavaexampleprogramm*Displayastring*@authorNCEPU*@authorncepu.edu.cn*@version2.0*/publicclassHelloWorld{/***@paramargs*@returnnoreturnvalue*@exceptionnoexceptionthrown*/publicstaticvoidmain(String[]args){System.out.println(HelloWorld!);}}2019年11月24日星期日NCEPU分隔符Java使用一些特殊字符作为分隔符(separator):;分号语句的结束符,逗号分隔变量声明中的连续标识符,或在for语句中的连接语句2019年11月24日星期日NCEPU分隔符.句号用于分隔包、子包和类,或分隔引用变量中的变量和方法()小括号用于在方法定义和访问中将参数表括起来,和在表达式中定义运算的先后次序,或在控制语句中将表达式和类型转换括起来2019年11月24日星期日NCEPU分隔符[]方括号用于声明数组类型,以及引用数组的元素值{}花括号/大括号将若干语句序列括起来作为一个程序代码块,或为数组初始化时赋值NCEPU二、基本数据类型2019年11月24日星期日NCEPU二、基本数据类型整型浮点型字符型布尔型类型转换2019年11月24日星期日NCEPU二、基本数据类型计算机处理的对象是数据,可以是数值数据(34.5)也可以是非数值数据,例如字符串“HelloWorld”。2019年11月24日星期日NCEPU二、基本数据类型通常算法语言将数据按其性质进行分类,每一类称为一种数据类型(datatype)数据类型定义了数据的性质、取值范围、存储方式以及对数据所能进行的运算和操作。2019年11月24日星期日NCEPU二、基本数据类型在Java语言中,数据类型分为:基本数据类型(primitivetype简单类型)复合数据类型(也叫作引用类型,referencetype)2019年11月24日星期日NCEPU数据类型基本数据类型引用类型类类型布尔类型:boolean数组接口类型:interface字符类型:char数值类型浮点数类型:float,double整数类型:byte,short,int,longJava语言的数据类型*2019年11月24日星期日NCEPU基本类型数值类型整型(byte(8)、short(16)、int(32)、long(64))实型(float(32)、double(64))字符型char(16)注:Unicode码布尔型boolean(true/false)引用类型数组类(class)接口(interface)所有基本类型所占的位数都是确定的,并不因操作系统的不同而不同。Java语言的数据类型*2019年11月24日星期日NCEPU整型Java的整型数据有三种进制的形式表示:十进制:用多个0~9之间的数字表示,如:123,-654,其首位不能为0八进制:用0开头,后面接多个0~7之间的数字,如:0123(相当于十进制数的83)十六进制:以0x或0X开头,后面接多个0~9之间的数字,或a~f或A~F之间的字母如:0x123E(相当于十进制数的4670)2019年11月24日星期日NCEPU4种Java整型量的大小和可表示的范围*byte8位-27~27-1short16位-215~215-1int32位-231~231-1long64位-263~263-1整型类型整数长度表示范围2019年11月24日星期日NCEPU整型说明:一个整型数隐含定义为int型,当一个整数要表示成long型时,需要在后面加上L或l,例如:345L2019年11月24日星期日NCEPU浮点型Java用浮点型表示数学中的实数,有两种表示方式:标准计数法:由整数部分、小数部分和小数点构成,如:1.2,-567.89科学计数法:由十进制整数、小数点、小数和指数部分构成,指数部分由E或e带上整数表示,如:-567.89可以表示为-5.6789E+2。要说明的是:在E或e前面必须有数字,在E或e后面必须是带正负号的整数,例如:E5和1.23E都是错误的2019年11月24日星期日NCEPU浮点型数据类型所占位数数的范围float323.4e-038~3.4e+038double641.7e-308~1.7e+3082019年11月24日星期日NCEPU浮点型*说明:一个浮点数隐含定义为double型,若要将一个浮点数说明为float型,必须在后面加上F或f例如:3.1415是一个double型3.1415f是一个float型2019年11月24日星期日NCEPU字符类型—char*字符型用来存储单个字符,一个字符用一个16位的Unicode码表示,它的值是16位的无符号整数,范围为0~65535。所有可见的字符都需要用单引号括起来,例如‘A’,‘+’,‘#’等。一些控制字符并不可见,可以利用转义序列来表示。2019年11月24日星期日NCEPU字符类型--char'\n':换行,将光标移至下一行的开始‘\t’:水平制表符(TAB键)‘\r’:回车'\\':反斜杠‘\’‘:单引号'\'''双引号2019年11月24日星期日NCEPU布尔型用来表示逻辑值,也叫作逻辑型。它只有真(true)和假(false)两个值,true和false不能转换成数字表示形式。所有关系运算(如ab)的返回值都是布尔型的值,布尔型也用于控制语句中的条件表达式。逻辑类型—boolean*2019年11月24日星期日NCEPU整型、浮点型、字符型的数据可以进行混合运算,运算时,不同类型的数据先转换成同一数据,然后再进行计算。转换的一般原则是:位数少的转换为位数多的类型,这叫作自动类型转换。类型转换2019年11月24日星期日NCEPU自动类型转换在表达式的计算过程中,整型、实型、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级:低---------------------------------------------------高byte,short,char—int—long—float—double类型转换2019年11月24日星期日NCEPU转换规则表*操作数1类型操作数2类型转换后的类型byte、short、charintintbyt