1、第章标识符、关键字和数据类型n2.1 标识符和关键字n2.2 Java语言的基本数据类型n2.3 Java的数组 2.1 标识符和关键字标识符和关键字nJava 语言中,对各种语言中,对各种变量变量、方法方法和和类类等要素命名时使用的等要素命名时使用的字符序列称为字符序列称为标识符标识符。nJava 标识符有如下命名规则:标识符有如下命名规则:标识符由字母、下划线标识符由字母、下划线“_”、美元符、美元符“$”或数字组成。或数字组成。标识符应以字母、下划线标识符应以字母、下划线、美元符开头。、美元符开头。nJava 标识符大小写敏感,长度无限制。标识符大小写敏感,长度无限制。n约定俗成:约定俗
2、成:Java 标识符选取因注意标识符选取因注意“见名知意见名知意”且不能与且不能与 Java 语言的关键字重名。语言的关键字重名。合法的标识符合法的标识符不合法的标识符不合法的标识符 HelloWorld class DataClass DataClass#_983 98.3$bS5_c7 Hell Worldn关键字关键字Java 中一些赋以特定的含义,用做专门用途的字符串中一些赋以特定的含义,用做专门用途的字符串称为关键字(称为关键字(keyword)。)。所有所有Java关键字都是小写英文字符串。关键字都是小写英文字符串。goto 和和 const 虽然从未使用,但也作被为虽然从未使用,
3、但也作被为 Java 关关键字保留。键字保留。关键字关键字原始数据类型-byte-short-int-long-float-double-char-boolean循环关键字-do-while-for-break-continue分支关键字-if-else-switch-case-default-break方法、变量和类修饰符-private-public-protected-final-static-abstract-synchronized-volatile-strictfp异常处理-try-catch-finally-throw-throws对象相关关键字-new-extends-impl
4、ements-class-instanceof-this-super 字面字面值值常量常量-false-true-null 方法相关关键字方法相关关键字-return-void 包相关关键字包相关关键字-package-importJava常量常量nJava 的常量值用字符串表示,区分不同的数据的常量值用字符串表示,区分不同的数据类型。类型。如整型常量如整型常量 123 实型常量实型常量 3.14字符常量字符常量 a 逻辑常量逻辑常量 true、false字符串常量字符串常量“helloworld”nulln注意:注意:区分字符常量和字符串常量区分字符常量和字符串常量区分区分 null 和和“
5、”“”Java变量变量nJava变量是程序中最基本的存储单元,其要素包括变量是程序中最基本的存储单元,其要素包括变量名变量名,变量类型变量类型和和作用域作用域。nJava程序中每一个变量都属于特定的数据类型,在使用前必程序中每一个变量都属于特定的数据类型,在使用前必须对其声明,声明格式为:须对其声明,声明格式为:type varName=value,varName=valuen例如:例如:int i=100;float f=12.3f;double d1,d2,d3=0.123;String s=“hello”;n从本质上讲,变量其实是内存中的一小块区域,使用变量名从本质上讲,变量其实是内存中
6、的一小块区域,使用变量名来访问这块区域,因此,每一个变量使用前必须要先申请来访问这块区域,因此,每一个变量使用前必须要先申请(声明),然后必须进行赋值(填充内容),才能使用。(声明),然后必须进行赋值(填充内容),才能使用。值名字Java变量的分类变量的分类n按被声明的位置划分:按被声明的位置划分:局部变量:方法或语句块内部定义的变量局部变量:方法或语句块内部定义的变量成员变量:方法外部、类的内部定义的变量成员变量:方法外部、类的内部定义的变量注意:类外面(与类对应的大括号外面)不能注意:类外面(与类对应的大括号外面)不能有变量的声明有变量的声明n按所属的数据类型划分:按所属的数据类型划分:基
7、本数据类型变量基本数据类型变量引用数据类型变量引用数据类型变量Java局部变量与成员变量局部变量与成员变量n方法体内部声明的变量(包括形参)称为局部变量:方法体内部声明的变量(包括形参)称为局部变量:方法体内部是指与方法对应的大括号内部方法体内部是指与方法对应的大括号内部n在方法体外,类体内声明的变量成为成员变量在方法体外,类体内声明的变量成为成员变量public void method()int i;int j=i+5;/编译出错,变量编译出错,变量i还未被初始化还未被初始化 double d=3.14;数据类型数据类型基本数据类型基本数据类型引用数据类型引用数据类型数值型数值型字符型(字符
8、型(char)布尔型(布尔型(boolean)整数类型整数类型(byte,short,int,long)浮点类型(浮点类型(float,double)类(类(class)接口(接口(interface)数组数组Java数据类型的划分数据类型的划分2.2 Java语言的基本数据类型n基本数据类型也称作简单数据类型。基本数据类型也称作简单数据类型。Java语言有语言有8种简单数据类型,分别是:种简单数据类型,分别是:boolean、byte、short、int、long、float、double、char。这这8种数据类型习惯上可分为种数据类型习惯上可分为4大类型:大类型:n逻辑类型:逻辑类型:b
9、ooleann字符类型:字符类型:charn整数类型:整数类型:byte、short、int、longn浮点类型:浮点类型:float、double基本数据类型基本数据类型nJava 的基本数据类型包括的基本数据类型包括(4类类8种种)boolean(true/false)byte(1)、short(2)、int(4)、long(8)float(4)、double(8)char(2)。1.逻辑类型逻辑类型 booleannboolean 类型适于逻辑运算,一般用于程序流程类型适于逻辑运算,一般用于程序流程控制控制。nboolean 类型数据只允许取值类型数据只允许取值 true 或或 fals
10、e,不,不可以可以 0 或非或非 0 的整数替代的整数替代 true 和和 false,这点和,这点和C语言不同。语言不同。n用法举例:用法举例:boolean flag;flag=true;if(flag)/do something 2.整数类型整数类型nJava 各整数类型有固定的表数范围和字段长度,其不受具体各整数类型有固定的表数范围和字段长度,其不受具体操作系统的影响,以保证操作系统的影响,以保证Java程序的可移植性。程序的可移植性。nJava 语言整型常量的三种表示形式:语言整型常量的三种表示形式:十进制整数,如:十进制整数,如:12,-314,0。八进制整数,要求以八进制整数,要
11、求以 0 开头,如:开头,如:012。十六进制数,要求十六进制数,要求 0 x 或或 0X 开头,如:开头,如:0 x12。nJava语言的整型常量默认为语言的整型常量默认为int型,声明型,声明long型常量可以后加型常量可以后加 l 或或 L ,如,如int i1=600;/正确正确 long l1=88888888888L;/必须加必须加l否则会出错否则会出错类类 型型占用存储空间占用存储空间表数范围表数范围 byte 1字节字节-128 127 short 2字节字节-215 215-1 int 4字节字节-231 231-1 long 8字节字节-263 263-1 3.char型型
12、 nchar 型数据用来表示通常意义上的型数据用来表示通常意义上的“字符字符”n字符常量为用单引号括起来的单个字符,例如:字符常量为用单引号括起来的单个字符,例如:nchar eChar=a;char cChar=中中;nJava 字符采用字符采用 Unicode 编码,每个字符占两个编码,每个字符占两个字节,因而可用十六进制编码形式表示,例如:字节,因而可用十六进制编码形式表示,例如:char c1=u0061;注:注:Unicode是全球语言统一编码是全球语言统一编码nJava 语言中还允许使用转义字符语言中还允许使用转义字符 来将其后的来将其后的字符转变为其它的含义,例如:字符转变为其它
13、的含义,例如:char c2=n;n/n代表换行符代表换行符4 浮点类型浮点类型n与整数类型类似,与整数类型类似,Java浮点类型有固定的表数范围和字段长浮点类型有固定的表数范围和字段长度,不受平台影响。度,不受平台影响。nJava 浮点类型常量有两种表示形式浮点类型常量有两种表示形式十进制数形式,例如十进制数形式,例如:3.14 314.0 .314 科学记数法形式,如科学记数法形式,如 3.14e2 3.14E2 100E-2 nJava 浮点型常量默认为浮点型常量默认为 double 型,如要声明一个常量为型,如要声明一个常量为 float 型,则需在数字后面加型,则需在数字后面加 f
14、或或 F,如:,如:double d=12345.6;/正确正确float f=12.3f;/必须加必须加 f 否则会出错否则会出错n下面列出下面列出 Java 的各种浮点类型的各种浮点类型类类 型型占用存储空间占用存储空间表数范围表数范围 float 4字节字节-3.403E383.403E38 double 8字节字节-1.798E3081.798E308 njavajava中可以从中可以从任意基本类型任意基本类型转型到另外的基本类型转型到另外的基本类型n例外例外 booleanboolean 类型不可以转换为其他的数据类型。类型不可以转换为其他的数据类型。n转换分为默认转换和强制转换转换
15、分为默认转换和强制转换n整型、字符型、浮点型的数据在混合运算中相互转换,转换整型、字符型、浮点型的数据在混合运算中相互转换,转换时遵循以下原则:时遵循以下原则:容量小的类型默认转换为容量大的数据类型;数据类型按容量大小排容量小的类型默认转换为容量大的数据类型;数据类型按容量大小排序为:序为:nbyte,short,charbyte,short,char-int int-long long-float float-double doublenbyte,short,charbyte,short,char之间不会互相转换,他们三者在计算时首先转换之间不会互相转换,他们三者在计算时首先转换为为inti
16、nt类型类型容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出;使用时要格外注意。但可能造成精度降低或溢出;使用时要格外注意。有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,然后再进行计算。量最大的那一种数据类型,然后再进行计算。(看下页)(看下页)实数常量(如:实数常量(如:1.21.2)默认为)默认为 doubledouble。整数常量(如:。整数常量(如:123123)默认为)默认为 intint 。
17、基本数据类型转换基本数据类型转换 强制类型转换的格式是:(数据类型)变量名 经过强制类型转换,将得到一个在“()”中声明的数据类型的数据,该数据是从指定变量所包含的数据转换而来的。值得注意的是,指定变量本身不会发生任何变化。例如,double y=3.14159d;int a=(int)y;short a,b,c;a=2;b=3;c=(short)(a+b);/类型转换类型转换short a,b,c;a=2;b=3;c=a+b;/类型错误类型错误 引用的概念(reference)p程序运行时,操作系统为程序运行分配的存储空间按用途可划分为下面几个部分:nPoint2D pointOne通常称p
18、ointOne是Point2D类型的对象变量(或对象);对于对象变量pointOne的声明,操作系统会在栈(Stack)内为pointOne分配一个32位的内存空间;n该内存空间将来会存储一个32位的地址数据,就是为Point2D类型的对象分配的内存空间的首地址;类类Point2D 属性:属性:x:float y:float方法:方法:getX():返回:返回x的值的值 getY():返回:返回y的值的值 类类Point2D图示图示nPoint2D pointOne=new Point2D(10,100);每当你需要创建对象,在程序代码中使用new,当它执行时,便会自堆(Heap)中分配对象所
19、占的存储空间-java对象存储在堆(Heap)中。pointOne值指向对象new Point2D(10,100)实际分配的内存空间的首地址。n所以pointOne就是一个引用,其值指向对象实际所在的内存中的位置。nYou manipulate objects with references;pointOne.getX()pointOne对对象实际所在象实际所在的内存空间的内存空间堆堆(Heap)(Heap)中分配中分配一块内存区域一块内存区域,假假设首地址为设首地址为0 xFF0032位地址数据:位地址数据:0 xFF00pointOne栈中分配栈中分配3232位位的内存空间的内存空间nul
20、l对于Java中的基本数据类型。nJava采取C/C+的方式,不用new为基本数据类型分配存储空间,而是将此类变量直接存放数据值,并置于栈中。这样在空间的分配和释放上,操作这类极小、极简单的变量效率较高。n为了保证处理数据的一致性,Java类库也提供了基本数据类型的包装类(wrapped classes)。Java defines four types of integer numeric data:byte 8-bit Byteshort 16-bit Shortint 32-bit Integerlong 64-bit LongPrimitive typeSizeWrapper typeJ
21、ava defines two floating point numeric type:float 32-bit Floatdouble 64-bit DoublePrimitive typeSizeWrapper typechar 16-bit Unicode Characternchar:a single character,stored using 16 bit Unicode encoding versus 8 bit ASCII encoding thus enabling Java to handle a wide range of international character
22、sets.nchar c=x;n例如:想使用包装类在堆内产生代表该基本类型的对象:char c=x;Character C=new Character(c);或写成:Character C=new Character(x);boolean 1-bit BooleanPrimitive typeSizeWrapper typenboolean:a variable that may only assume one of two values-true or falseJDK1.5版本以前需要手动封装Integer it=new Integer(10);JDK1.5以后自动完成类型封装Intege
23、r it=10;int i=10;Integer t1=i;/自动装包int y;y=t1;/自动拆包nJdk1.5:自动装包/拆包(Autoboxing/unboxing)自动装包:基本类型自动转为包装类自动拆包:包装类自动转为基本类型变量的声明和赋值变量的声明和赋值package sample;public class Assign public static void main(String args)int x,y;/声明int类型的变量 float z=3.414f;/声明float类型的变量并赋值 double w=3.1415;/声明double类型的变量并赋值 boolean truth=true;/声明boolean类型的变量并赋值 char c;/声明char类型的变量并赋值 String str;/声明String类型的变量 String str1=bye;/声明String类型的变量并赋值 c=A;/给char类型的变量赋值 x=6;y=1000;/给int类型的变量赋值
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。