Java讲稿02-变量.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

变量在路上,就不怕遥远本章内容1.关键字2.标识符3.变量4.类型转换5.变量的作用范围1.关键字关键字的定义和特点定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)特点:关键字中所有字母都为小写用于定义数据类型的关键字classinterfaceenumbyteshortintlongfloatdoublecharbooleanvoid用于定义数据类型值的关键字truefalsenull用于定义流程控制的关键字ifelseswitchcasedefaultwhiledoforbreakcontinuereturn用于定义访问权限修饰符的关键字privateprotectedpublic用于定义类,函数,变量修饰符的关键字abstractfinalstaticsynchronized用于定义类与类之间关系的关键字extendsimplements用于定义建立实例及引用实例,判断实例的关键字newthissuperinstanceof用于异常处理的关键字trycatchfinallythrowthrows用于包的关键字packageimport其他修饰符关键字nativestrictfptransientvolatileassert保留字Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用。自己命名标记符时要避免使用这些保留字byValue、cast、future、generic、inner、operator、outer、rest、var、goto、const2.标识符标识符:Java对各种变量、方法和类等要素命名时使用的字符序列称为标识符凡是自己可以起名字的地方都叫标识符。定义合法标识符规则:由26个英文字母大小写,0-9,_或$组成数字不可以开头。不可以使用关键字和保留字,但能包含关键字和保留字。Java中严格区分大小写,长度无限制。标识符不能包含空格。注意:在起名字时,为了提高阅读性,要尽量有意义,“见名知意”。Java中的名称命名规范Java中的名称命名规范:包名:多单词组成时所有字母都小写:xxxyyyzzz类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ3.数据类型数据类型基本数据类型引用数据类型数值型字符型(char)布尔型(boolean)整数类型(byte,short,int,long)浮点类型(float,double)类(class)接口(interface)数组([])字符串在这里整数类型:byte、short、int、longJava各整数类型有固定的表数范围和字段长度,不受具体OS的影响,以保证java程序的可移植性。Java的整型常量默认为int型,声明long型常量须后加‘l’或‘L’类型占用存储空间表数范围byte1字节=8bit-128~127short2字节-215~215-1int4字节-231~231-1long8字节-263~263-1浮点类型:float、double与整数类型类似,Java浮点类型也有固定的表数范围和字段长度,不受具体OS的影响。Java的浮点型常量默认为double型,声明float型常量,须后加‘f’或‘F’。浮点型常量有两种表示形式:十进制数形式:如:5.12512.0f.512(必须有小数点)科学计数法形式:如:5.12e2512E2100E-2类型占用存储空间表数范围单精度float4字节-3.403E38~3.403E38双精度double8字节-1.798E308~1.798E308字符类型:charchar型数据用来表示通常意义上“字符”(2字节)字符型常量的三种表现形式:字符常量是用单引号(‘’)括起来的单个字符,涵盖世界上所有书面语的字符。例如:charc1='a';charc2='中';charc3='9';Java中还允许使用转义字符‘\’来将其后的字符转变为特殊字符型常量。例如:charc3=‘\n’;//'\n'表示换行符直接使用Unicode值来表示字符型常量:‘\uXXXX’。其中,XXXX代表一个十六进制整数。如:\u000a表示\n。char类型是可以进行运算的。因为它都对应有Unicode码。ASCII码在计算机内部,所有数据都使用二进制表示。每一个二进制位(bit)有0和1两种状态,因此8个二进制位就可以组合出256种状态,这被称为一个字节(byte)。一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。ASCII码:上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码。ASCII码一共规定了128个字符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。缺点:不能表示所有字符。相同的编码表示的字符不一样:比如,130在法语编码中代表了é,在希伯来语编码中却代表了字母Gimel(ג)Unicode编码乱码:世界上存在着多种编码方式,同一个二进制数字可以被解释成不同的符号。因此,要想打开一个文本文件,就必须知道它的编码方式,否则用错误的编码方式解读,就会出现乱码。Unicode:一种编码,将世界上所有的符号都纳入其中。每一个符号都给予一个独一无二的编码,使用Unicode没有乱码的问题。Unicode的缺点:Unicode只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储:无法区别Unicode和ASCII:计算机无法区分三个字节表示一个符号还是分别表示三个符号UTF-8UTF-8是在互联网上使用最广的一种Unicode的实现方式。UTF-8是一种变长的编码方式。它可以使用1-6个字节表示一个符号,根据不同的符号而变化字节长度。UTF-8的编码规则:对于单字节的UTF-8编码,该字节的最高位为0,其余7位用来对字符进行编码(等同于ASCII码)。对于多字节的UTF-8编码,如果编码包含n个字节,那么第一个字节的前n位为1,第一个字节的第n+1位为0,该字节的剩余各位用来对字符进行编码。在第一个字节之后的所有的字节,都是最高两位为10,其余6位用来对字符进行编码。布尔类型:booleanboolean类型适于逻辑运算,一般用于程序流程控制:if条件控制语句;while循环控制语句;do-while循环控制语句;for循环控制语句;boolean类型数据只允许取值true和false,无null。不可以0或非0的整数替代false和true,这点和C语言不同。4.变量什么是变量变量代表一块内存空间,变量名相当于这块内存空间的名字,变量所占内存空间的大小取决于变量的类型。程序是通过使用变量名来访问这块区域的。在程序运行的过程中变量的值可能会发生变化。JAVA中每个变量必须先声明,后使用。变量被初始化(initialize)之后才可以被使用。程序的执行过程程序代码操作系统代码内存硬盘栈(stack)堆(heap)静态域常量池(方法区)局部变量、对象声明的引用静态变量2.找到main方法开始执行3.执行过程中的内存管理1.load到内存区字符串常量new出来的类或数组的实例(含成员变量)变量的分类-按数据类型对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。数据类型基本数据类型引用数据类型数值型字符型(char)布尔型(boolean)整数类型(byte,short,int,long)浮点类型(float,double)类(class)接口(interface)数组([])字符串在这里变量的分类-按声明的位置的不同在方法体外,类体内声明的变量称为成员变量。在方法体内部声明的变量称为局部变量。注意:局部变量除形参外,需显式初始化。成员变量局部变量实例变量(不以static修饰)类变量(以static修饰)形参(方法签名中定义的变量)方法局部变量(在方法内定义)代码块局部变量(在代码块内定义)所有变量定义变量定义变量,就是说明变量属于哪一种数据类型,这样编译器才知道需要配置多少空间给它以及能够存储什么样的数据类型当执行到变量定义语句时,系统就会在内存的DATA区配置一块内存空间给该变量,该变量从此代表了这一块内存空间,这块内存空间称为该变量的实例可以一次定义一个变量,如:inta;floatb;charc;也可以一次定义多个同类型变量,如:inta,b,c;给变量赋值单纯的赋值语句myScore=85;定义变量的同时赋值:intmyScore=85inti=3,j=4;只定义而没有赋值的变量称为没有初始化(initialize)类的成员变量会被自动初始化为默认值参见程序:DemoDeclAndAss.javaJAVA字面值的修饰符JAVA将整数常量作为一个int类型看待若在程序中写一个整数的字面量,编译器会自动视为int类型的值。若给long类型的变量赋值,且该值在int类型的范围内,则编译器可以识别它,自动转型后再赋给long类型的变量。反之,若所写的字面量超出了int类型的范围,编译器就无法识别它,这时就得在它的后面加上L修饰符,告知编译器这是一个long类型的整数值,这样才能通过编译。longLnum2=125;//编译不会出错,自动转换longLnum1=9223372036;//编译会出错JAVA将浮点数常量作为一个double类型来看待在一个浮点数的后面加上D/d可以告诉编译器该浮点常量是一个double的数据。在一个浮点数的后面加上F/f可以告诉编译器该浮点常量是一个float的数据。给double类型的变量赋值浮点字面量,加不加D都可以,而给float类型的变量赋值浮点字面量,一定要加上F修饰符,以告知编译器这时一个float值,而不是一个double值,否则就是将double值赋给float变量,编译器会显示有关精度丧失的错误消息。floatF1=3.14;//编译会出错floatF2=3.14f;//编译不会出错参见程序:DemoLiteral.javaJAVA的final变量final变量相当于其他语言中的constant,其特点是一旦初始化之后,就不能再为其赋值。final变量如果是成员变量,则在定义的时候就要赋值,而不能在实现区赋值。final变量若非成员变量,可以在定义时不赋值,而在实现区赋值,但也只能赋值一次。final变量能够确保变量不至于在后续的程序执行过程中被误改。也有助于程序的维护工作,因为要修改时只需改一处。5.对应基本类型的包装类型每一个基本类型都对应着引用类型,该引用类型内有一个特别的成员变量,该成员变量的类型就是对应的基本类型。这些引用类型有许多成员函数,包括进行类型转换的成员函数。对照列表如下:BytebyteShortshortIntintLonglongFloatfloatDoubledoubleBooleanboolean参考程序:DemoInteger.java参考程序:DemoInteger.java构造包装类型实例及获取其中基本类型值我们运用构造函数来构造包装类型的实例。我们运用xxValue()方法来取得包装类型实例中包含的基本类型值。6.String类型:字符串一个字符串,就是一串连续的字符,例如:云深不知处Java语言用String类来作为字符串数据的数据类型,也就是说,String类的每一个实例代表一个字符串。实际上在String类中,

1 / 41
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功