第2章 Java编程基础.pdf
《第2章 Java编程基础.pdf》由会员分享,可在线阅读,更多相关《第2章 Java编程基础.pdf(117页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、清华大学出版社清华大学出版社 JavaEE基础教程基础教程 第第2 2章章 JavaJava编程基础编程基础 2 2.1 1 标识符与关键字标识符与关键字 2 2.2 2 数据类型数据类型 2 2.3 3 常量与变量常量与变量 2 2.4 4 运算符与表达式运算符与表达式 2 2.5 5 数组数组 Java EEJava EE基础教程基础教程 2 2 2011年年9月月23日星期五日星期五 Java语言由语法规则和类库两部分组成,其中语法规则确定了Java程序的书写规范。Java语言与C/C+语言有着紧密的联系,Java中的许多术语来自于C+,语法也来自于C+。因此Java的语法和C+的语法相
2、似。Java的部分功能来自其类库,类库包含有数百种预先写入的类,这些类提供了从简单的数字格式化到建立网络连接和访问关系数据库的所有方法。第第2 2章章 JavaJava编程基础编程基础 Java EEJava EE基础教程基础教程 3 3 2011年年9月月23日星期五日星期五 2 2.1 1 标识符与关键字标识符与关键字 返回 2.1.1标识符标识符 标识符是类、变量和方法等的名字,标识符区别大小写,未标识符是类、变量和方法等的名字,标识符区别大小写,未规定最大长度。规定最大长度。Java中的标识符可以包括空格之外的任何字符,但必须以字中的标识符可以包括空格之外的任何字符,但必须以字母、美元
3、符号(母、美元符号($)、下划线字符()、下划线字符(_)作为开头,不能以数)作为开头,不能以数字作为开头,也不能用字作为开头,也不能用Java语言的关键字是来作为标识符。语言的关键字是来作为标识符。与与C/C+语言不同的是,语言不同的是,Java语言还可以将一些非拉丁字母语言还可以将一些非拉丁字母(如汉字)包含在标识符中,这是因为(如汉字)包含在标识符中,这是因为Java语言使用的是语言使用的是Unicode字符集,它包含字符集,它包含65535个字符,适用于多种人类自然个字符,适用于多种人类自然语言。语言。标识符的选用原则是使标识符尽量表达所要表示的类、变量、标识符的选用原则是使标识符尽量
4、表达所要表示的类、变量、方法等的含义。方法等的含义。以下是以下是Java有效的标识符:有效的标识符:Identifier,userName,User_name,_sys_varl,$change,江苏,长江,江苏,长江 Java EEJava EE基础教程基础教程 4 4 2011年年9月月23日星期五日星期五 2.1.2关键字关键字 Java有48个关键字,比其他大多数语言都要少。关键字在编程语言中有特殊的含义。这些关键字列在表2-1中。2 2.1 1 标识符与关键字标识符与关键字 Java EEJava EE基础教程基础教程 5 5 2011年年9月月23日星期五日星期五 以下是有关关键字
5、的重要注意事项:1.true、false和null为小写,而不是象在C+语言中那样为大写;2.无sizeof运算符;3.goto和const不是Java编程语言中使用的关键字。Java EEJava EE基础教程基础教程 6 6 2011年年9月月23日星期五日星期五 2 2.2 2 数据类型数据类型 返回 数据类型指定变量可以包含的数据的类型。与某些语言不同,Java的数据类型很特殊。除了null,Java数据类型可以分为基本数据类型、引用类型两大类。任何数据都一定是上述数据类型的一种。Java数据类型结构图如图2.1所示。Java EEJava EE基础教程基础教程 7 7 2011年年9
6、月月23日星期五日星期五 2 2.2 2 数据类型数据类型 Java EEJava EE基础教程基础教程 8 8 2011年年9月月23日星期五日星期五 在在Java中“引用”是指向一个对象在内存中的位置,在本中“引用”是指向一个对象在内存中的位置,在本质上是一种带有很强的完整性和安全性限制的指针,当声明质上是一种带有很强的完整性和安全性限制的指针,当声明某个类、接口或数组类型的一个变量时,那个变量的值总是某个类、接口或数组类型的一个变量时,那个变量的值总是某个对象的引用或者是某个对象的引用或者是null引用。与引用。与C+中中指针不同的是,指指针不同的是,指针可以有针可以有+、-运算,而引用
7、无此运算。运算,而引用无此运算。Java具有具有8个基本数据类型,可以分为四大类:布尔型、字个基本数据类型,可以分为四大类:布尔型、字符型、整数型和浮点型。为了将它们与更加复杂的数据类型符型、整数型和浮点型。为了将它们与更加复杂的数据类型(如引用类型如引用类型)区分开来,将这些数据类型称为基本数据类型。区分开来,将这些数据类型称为基本数据类型。这些类型的数据与常量的类型基本相同。这些类型的数据与常量的类型基本相同。可使用可使用int、short、long和和byte 4个数据类型来包含整型数个数据类型来包含整型数据。使用据。使用double和和float 两个数据类型来包含浮点数据。基本两个数
8、据类型来包含浮点数据。基本数据类型数据类型boolean只包含两个可能值中的一个:只包含两个可能值中的一个:true或或false。2 2.2 2 数据类型数据类型 Java EEJava EE基础教程基础教程 9 9 2011年年9月月23日星期五日星期五 对包含单一字符文本的变量使用基本数据类型对包含单一字符文本的变量使用基本数据类型char。若要显示。若要显示具有一个以上字符的文本,则使用具有一个以上字符的文本,则使用String类,在后面的章节中类,在后面的章节中将进行介绍。将进行介绍。2 2.2 2 数据类型数据类型 Java EEJava EE基础教程基础教程 1010 2011年
9、年9月月23日星期五日星期五 引用类型和原始类型具有不同的语义,它们的行为完全引用类型和原始类型具有不同的语义,它们的行为完全不同。例如,假定一个方法中有两个局部变量,一个变量不同。例如,假定一个方法中有两个局部变量,一个变量为为int原始类型,另一个变量是对一个原始类型,另一个变量是对一个Integer对象的引用对象的引用,不能对原始类型调用方法,但可以对引用类型调用方法,不能对原始类型调用方法,但可以对引用类型调用方法,例如:例如:int i=5;/原始类型原始类型 Integer j=new Integer(10);/对象引用对象引用 i.hashCode();/错误错误 j.hashC
10、ode();/正确正确 2 2.2 2 数据类型数据类型 Java EEJava EE基础教程基础教程 1111 2011年年9月月23日星期五日星期五 2.3.1常量 1整型常量 在Java语言中,整型常量有三种形式,它们分别是:十进制、八进制、十六进制。十进制数不加前缀;八进制数加前缀0;十六进制数加前缀0 x或0X。如:123;0123(十进制数为83);0 x123(十进制数为291)。若要以二进制显示输出结果,则使用Integer和Long类的静态方法toBinaryString()。如:int a=62478;System.out.println(int a=+Integer.to
11、BinaryString(a);/输出:int a=1111010000001110 2 2.3 3 常量与变量常量与变量 返回 Java EEJava EE基础教程基础教程 1212 2011年年9月月23日星期五日星期五 2浮点型常量 浮点数有两种表示方法,即标准表示法和科学记数法。浮点数又分为单精度数(float)和双精度数(double)。如:123.456f;123.456(无f或F后缀,默认为double型)。3布尔型常量 布尔型常量有两个值:ture和false,它们分别表示真和假。一般通过测量布尔值来判断是否执行某个步骤。Java EEJava EE基础教程基础教程 1313
12、2011年年9月月23日星期五日星期五 4字符型常量 字符型常量是一个单一的字符,其形式是由两个单引号引起来的一个字符。Java的字符型常量的表示方法有四种,分别是:(1)用单引号括起来的单个字符,这些字符包含在Unicode字符集中,如:A,a,好,t。注意:两个单引号引起来的内容不能是单引号和反斜杠,即()和()是不正确的写法。(2)用单引号括起来的八进制Unicode字符,形式是:ddd,其中d的范围是07,表示字符范围在000377。如012。(3)用单引号括起来的十六进制Unicode字符,形式是:uxxxx,u字母后面带4位十六进制数,它可以表示全部Unicode字符。如u2af3
13、。(4)对于一些不能显示的特殊字符采用转义字符来表示。Java EEJava EE基础教程基础教程 1414 2011年年9月月23日星期五日星期五 表2-4 Java常用转义字符 转义字符形式 功能 单引号字符 双引号字符 反斜杠字符 r 回车 n 换行 f 走纸换页 t 横向跳格 b 退格 ddd 1到3位8进制数(ddd)所代表的字符 uxxxx 1到4位16进制数(xxxx)所代表的字符 Java EEJava EE基础教程基础教程 1515 2011年年9月月23日星期五日星期五 例如:System.out.println(And then Jim said,Whos at the
14、door?);注意字符值使用单引号,字符串使用双引号。与C/C+不同,Java中的字符型数据是16位无符号型数据,它表示Unicode集,而不仅仅是ASCII集,例如u0061表示ISO拉丁码的a,u4e2d表示汉字中,所以字符常量共有 65536个。5字符串常量 字符串常量是由双引号()引起来的一串字符,如This is a string.n。与C/C+语言中不同的是,Java中的字符串常量是作为String类的一个对象来处理的,而不是通过字符数组来实现的。Java EEJava EE基础教程基础教程 1616 2011年年9月月23日星期五日星期五 例例2-1 下面的程序使用了两个下面的程
15、序使用了两个Unicode的转义字符,它们用其十六进的转义字符,它们用其十六进制代码来表示制代码来表示Unicode字符。字符。程序清单:程序清单:ch02EscapeRout.java public class EscapeRout public static void main(String args)1 System.out.println(au0022.length()+u0022b.length();2 System.out.println(a.length()+b.length();3 System.out.println(a.length()+b.length();程序中,第“程
16、序中,第“1”行中的行中的u0022为双引号(为双引号()的十六进制表示,而不)的十六进制表示,而不是转义表示,该行相当于:是转义表示,该行相当于:a.length()+b.length(),输出,输出2;第;第“2”行很明显输出行很明显输出2;第“;第“3”行中双引号(行中双引号()是转义表示的,输出)是转义表示的,输出的字符串内容相当于的字符串内容相当于a .l e n g t h()+b,输出,输出14 Java EEJava EE基础教程基础教程 1717 2011年年9月月23日星期五日星期五 2.3.2变量变量 变量主要用来保存数据,是用标识符命名的数据项,是程序运变量主要用来保存
17、数据,是用标识符命名的数据项,是程序运行过程中可以改变值的量。在程序中,通过变量名来引用变量行过程中可以改变值的量。在程序中,通过变量名来引用变量包含的数据。变量使用前要首先声明。包含的数据。变量使用前要首先声明。1变量声明变量声明 声明一个变量的方式:变量类型声明一个变量的方式:变量类型 变量名变量名;Java是强类型的语言,即每一个变量必须有一个数据类型。变是强类型的语言,即每一个变量必须有一个数据类型。变量的类型决定了它可以容纳什么类型的数值以及可以对它进行量的类型决定了它可以容纳什么类型的数值以及可以对它进行怎样的操作。变量声明的位置决定了该变量的作用域。怎样的操作。变量声明的位置决定
18、了该变量的作用域。2变量的初始化变量的初始化 在在Java程序中,任何变量都必须经初始化后才能被使用。变量程序中,任何变量都必须经初始化后才能被使用。变量可以在它们声明的时候初始化,也可以利用一个赋值语句来初可以在它们声明的时候初始化,也可以利用一个赋值语句来初始化。变量的数据类型必须与赋给它的数值的数据类型相匹配。始化。变量的数据类型必须与赋给它的数值的数据类型相匹配。Java EEJava EE基础教程基础教程 1818 2011年年9月月23日星期五日星期五 下面是程序中的局部变量声明,其初始化如下。整型:int x=8,total=1000;long y=12345678L;byte
19、z=55;short s=128;浮点型:float f=234.5F;double d=-1.5E-8,square=95.8;其他类型:char c1=a,c2=中,c3=u4e2d,c4=20013;boolean t=true;Java EEJava EE基础教程基础教程 1919 2011年年9月月23日星期五日星期五 在Java语言中,基本数据类型主要用在两个地方,一个是类中的成员变量,一个是局部变量。当他们作为类的成员变量使用时,当创建类的实例时编译器会给其一个默认值的初值。但是,当基本数据类型当作局部变量使用时,如在循环语句中当作循环条件来使用,此时跟类成员不同,系统不会自动对
20、局部变量进行初始化。在这方面,Java跟其他语言也有所不同。如在C+中,如果变量没有初始化,那么系统只是抛出一个警告信息,但仍然可以正常进行。Java这种做法是比较安全的。Java EEJava EE基础教程基础教程 2020 2011年年9月月23日星期五日星期五 3引用型变量引用型变量 引用变量将类名、接口和数组作为数据类型。引用变量实际上引用变量将类名、接口和数组作为数据类型。引用变量实际上不包含数据,它引用包含数据的某个类的一个实例。例如,字不包含数据,它引用包含数据的某个类的一个实例。例如,字符串数据符串数据(字符集合字符集合)不属于不属于8种种Java基本数据类型中的任意一基本数据
21、类型中的任意一种,但字符串数据包含在种,但字符串数据包含在String类的一个实例中,类的一个实例中,Java使用使用String类引用变量来访问字符串数组。下面分析其访问原理。类引用变量来访问字符串数组。下面分析其访问原理。就像声明基本变量那样声明就像声明基本变量那样声明String引用变量,首先指定数据类引用变量,首先指定数据类型为类名型为类名String,然后指定要使用的变量名称。下面的代码声,然后指定要使用的变量名称。下面的代码声明了数据类型为明了数据类型为String的引用变量的引用变量s:String s;此代码会创建一个名为此代码会创建一个名为s的变量,但是不会将它初始化为一个的
22、变量,但是不会将它初始化为一个值。它也不会指向一个值。它也不会指向一个String实例,实际上,它不会指向任何实例,实际上,它不会指向任何地方,而且也不会有值。可以将某个值赋给地方,而且也不会有值。可以将某个值赋给String变量变量s,就,就像赋给基本变量值一样。像赋给基本变量值一样。Java EEJava EE基础教程基础教程 2121 2011年年9月月23日星期五日星期五 下面的代码会将字符“Hello Again”赋给名为s的String变量:s=Hello Again;也可以在声明String变量时为它赋值,就像为基本变量赋值一样:String s=Hello Again;下图说明
23、了char基本变量和String引用变量的存储原理。char c=A;String s=Hello Again;图中显示实际上变量c是包含字符值A的一个基本变量,而变量s是指向包含Hello Again的String类的一个实例的引用变量。Java EEJava EE基础教程基础教程 2222 2011年年9月月23日星期五日星期五 Java在对变量进行内存分配时,把内存划分成两种:一种是栈内存,另一种是堆内存。栈内存是向低地址扩展的数据结构,是一块连续的内存的区域,栈顶的地址和栈的最大容量是系统预先规定好的。堆内存是向高地址扩展的数据结构,是不连续的内存区域。这是由于系统是用链表来存储空闲的
24、内存地址的,自然是不连续的,而链表的遍历方向是由低地址向高地址。堆的大小受限于计算机系统中有效的虚拟内存。堆获得的空间比较灵活,也比较大。Java EEJava EE基础教程基础教程 2323 2011年年9月月23日星期五日星期五 在程序中定义的一些基本类型的变量和对象的引用变量都是在栈内存中分配,当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量分配的内存空间,该内存空间可以立即被另作它用。堆内存用来存放由 new 创建的对象和数组,在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。在堆中产生了一个数组或者对象之
25、后,还可以在栈中定义一个特殊的变量,让栈中的这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量,以后就可以在程序中使用栈中的引用变量来访问堆中的数组或者对象,引用变量就相当于是为数组或者对象起的一个名称。引用变量是普通的变量,定义时在栈中分配,引用变量在程序运行到其作用域之外后被释放。而数组和对象本身在堆中分配,即使程序运行到使用new产生数组或者对象的语句所在的代码块之外,数组和对象本身占据的内存也不会被释放,数组和对象在没有引用变量指向它的时候,才变为垃圾,不能再被使用,但仍然占据内存空间不放,在随后的一个不确定的时间被垃圾回收器收走(释放掉)。栈中的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 Java编程基础 Java 编程 基础
限制150内