java第二章java语言基础_第1页
java第二章java语言基础_第2页
java第二章java语言基础_第3页
java第二章java语言基础_第4页
java第二章java语言基础_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2.1 语言成分2.2 流程控制语句2.3 数组2.4 字符串第2章 Java语言基础2? 熟记Java的语法规范? 熟练使用各种数据类型? 了解变量及其作用域? 熟练运用控制程序流程语句? 理解运算符? 掌握数组和字符串学习要点32.1.1 标识符与关键字1. 关键字关键字是由Java语言定义的、具有特定含义的单词。Java的关键字有:abstract boolean break byte case catchchar class continue default do doubleelse extends false final finally floatfor if implements

2、 import instanceof intinterface long native new null package private protected public return short staticsuper switch synchronized this throw throws transient true try void while4 Unicode字符编码s 由国际Unicode协会编制,收录了全世界所有语言文字中的字符,是一种跨平台的字符编码。 UCS (Universal Character set)s 指采用Unicode字符编码的通用字符集。s 两种方案:16位

3、编码和32位编码,对应的字符集分别称为:UCS-2和UCS-4。s Java语言采用UCS-2,其前128个字符与ASC字符集完全一致,之后是其他语言文字。2.1.1 标识符与关键字52. 标识符 标识符是以字母开头的字母数字序列,用于命名变量、常量、类、对象、方法、参数、数组、文件等。 标识符命名规则: 数字指09,字母指大小写英文字母、下划线(_)、美元符号(),也可以是Unicode字符集中的字符,如汉字等; 不能以数字开头; 区分大小写; 不能是Java中的关键字; 长度不受限制。2.1.1 标识符与关键字6合法标识符:username1、user_name、$username、VAL

4、UE、Value、value非法标识符:class、98.3、Hello World Java约定 关键字、变量、对象、方法、包等名字通常全部字母小写; 由多个单词构成的标识符,首字母小写,其后单词字母大写,如toString; 类名首字母大写; 常量名全部字母均大写。2.1.1 标识符与关键字72.1.1 标识符与关键字3. 分隔符 用于分开两个语法成分。关键字、标识符的分隔符是空格;语句的分隔符是分号;数据的分隔符是逗号等。4. 注释在程序中必须包含适量的注释,以提高程序的可读性和易维护性。程序注释一般占程序代码总量的20%50%。注释的作用 说明程序(需要注意的事项作为备忘或方便其他开发

5、人员了解); 暂时注销某些语句。82.1.1 标识符与关键字 单行注释 注释内容前面加/。2) 多行注释 注释内容前面以/*开头,以*/结束。 /*/中可以嵌套/,但不可以嵌套/*/。3) 文档注释 注释内容前面以/*开头,以*/结束。 用于从源代码自动生成文档,可以执行javadoc命令,可根据源代码中的内容生成Web网页。Engineer.java95. 程序书写风格 在Java中,所有的程序代码分为结构定义语句和功能执行语句。一条语句可以写在若干行上;可以任意编排。 书写程序应遵循一些规则,使程序清楚简洁,增强程序的可读性; 采用缩进格式显示代码的层次关系;顺序执行的语句要对齐格式。2.

6、1.1 标识符与关键字102.1.2 基本数据类型1. 数据类型的定义s 数据是计算机程序的处理对象。s 类型是具有相同逻辑意义的一组值的集合。s 数据类型指一个类型和定义在这个类型上的操作集合。s 数据类型定义了数据的性质、取值范围以及对数据所能进行的运算和操作。112.1.2 基本数据类型2. 数据类型的分类只有两个取值:true、false数据类型引用数据类型基本数据类型布尔类型(boolean)字符类型(char)数值型浮点类型(float, double)整数类型(byte, short, int, long)数组(array)接口(interface)类(class)由简单数据构成

7、,其值不可分解其变量保存地址的引用信息12类型名大小(位)取值范围byte8128127,即-2727-1short1632768 32767int32231 231-1long64263 263-1float32约3.402 823 47E+38double64约1.797 693 134 862 315 70E+3082.1.2 基本数据类型C语言中,byte通常是无符号整型Java的基本数据类型在任何操作系统中都具有相同的大小,而C语言在不同的系统中变量的取值范围不一样132.1.3 变量与常量1. 常量(持续不变的值)1) 整型常量十进制:第一位不能是0 (数字0除外) ; 123、6

8、000八进制:必须以0开头; 077十六进制:必须以0 x或0X开头; 0 x3ABC、0X8aM 整数默认类型为int,长整型必须以L或l做后缀:9L142) 浮点型常量 float(32位):2e3f,23.6f,必须在后面加上f(F); double(64位):12.6,3.84D;后面d(D)可省略; 浮点数默认类型为double。3) 布尔常量 true false2.1.3 变量与常量154) 字符常量 字符常量要用两个单引号括起来,如a、8 ; Java中的字符用Unicode表示,占2个字节,可以表示065535种字符。2.1.3 变量与常量C语言中字符是1个字节,只能表示25

9、6种字符对于特殊的字符,需要以反斜杠()后跟一个普通字符来表示。如:16转义字符指代Unicode值r回车符u000Dn换行符u000At制表符Tab键u0009b退格键backspaceu0008单引号u0027双引号u0022反斜杠u005C2.1.3 变量与常量175) 字符串常量 字符串常量和字符常量的区别:前者用双引号括起来,用来表示一连串的字符,后者用单引号括起来,用于表示单个字符。如Hello World,123;6) null常量 只有一个值,用null表示,表示对象的引用为空。2.1.3 变量与常量182. 变量 概念s 保存在程序中可被改变的数据。 基本要素s 名字、类型、

10、值和作用域。声明的语法格式修饰符 数据类型 变量=表达式,变量=表达式例如:int x=0,y; int ageOfStudent; int ageOfTeacher;2.1.3 变量与常量19M 变量只要在使用前声明即可,不必全部集中在程序开始处。声明的位置决定变量的作用域。M 同一作用域的标识符只能被声明一次,不能重复声明,如: int i; char i;2.1.3 变量与常量203. 变量的有效取值范围L byte b=128L float f=3.5J float f=3.5f2.1.3 变量与常量214. 变量的作用域一对大括号之间的部分是一个代码块,代码块决定了其中定义的变量的作

11、用域。M 在java中不能在代码块中重复定义代码块外已经定义过的变量。作用域决定了变量的可见性以及存在时间,即在定义变量的语句所属的那层大括号之间,就是这个变量的有效作用范围。TestScope.java2.1.3 变量与常量222.1.4 运算符1. 算术运算符 8 适用于数值类型(整数、字符、浮点数)8 、*、/、%、+、-8 例:7/2 ?7.0/2、-7%2、7%-2g 思考题:假设int i=3, j=3,下面两个表达式的值分别是多少? (i+)(i+)(i+) (+j)(+j)(+j)仅作用于整数、字符,仅作用于整数、字符,不能用于表达式不能用于表达式先返回变量值,然后再对变量加(

12、减)1先将变量的值加(减)1,然后再返回变量的值 常用于数字循环。还常用于数字循环。还可以是浮点数与可以是浮点数与c不同不同232. 关系运算符(比较运算符)8 适用于基本数据类型8 比较两边的操作数,结果是布尔型,比较条件成立时以true表示,比较条件不成立时以false表示。8 、=、 A2.1.4 运算符字符比较依据其unicode值243. 位运算符 8 适用于整数和字符类型,按二进制的位进行运算8 、&、|、 例:a=10011101,则有: a3 =11110011、 a3=00010011&多学两招:移位能实现整数除以(右移)或乘以(左移)2的n次方的效果。M 移

13、位不会改变变量本身的值。a 2 2.1.4 运算符254. 逻辑运算符8 适用于布尔类型8 &、|、!、&、| &和|具有短路计算功能,而&和|没有短路计算功能。 例:false & b、true | b 5. 赋值运算符及复合赋值运算符P28 8 变量值表达式8 =、=、=、*=、/= 例:i=3、x=y=z=5、i=3 2.1.4 运算符266.类型强制转换符8将一个表达式的数据类型强制转换为指定的数据类型。8格式:(数据类型)表达式 例:(int)(98.4+0.5); 7. 条件运算符8格式:条件式?成立返回值:失败返回值 例:scoreOfSt

14、udent=60 ? 及格 :不及格;2.1.4 运算符278. 字符串连接运算符8 +用于连接两个字符串。8 当用+连接一个字符串与一个操作数时,Java自动将操作数的值转换为字符串。 例:int max=2; System.out.print(max = +max);9. 点运算符8 .:用于分隔包、子包、类及类中成员。2.1.4 运算符2810. 对象运算符8 instanceof运算符:判断一个对象是否属于指定类或其子类,运算结果为布尔类型。11. new运算符8 new运算符:用于申请数组的存储空间、创建对象。 2.1.4 运算符29优先次序运算符优先次序运算符1. ( ) 9&am

15、p;2+ - ! 103new (type)11| 4* / % 12&5+ - 13|6 14?:7 = = instanceof15= += -= *= /= %= =8= = != 16&= |= = = 优先级2.1.4 运算符30运算的类型兼容原则 类型兼容:允许具有相同性质的不同类型数据间进行混合运算。 类型兼容包括:类型相容和赋值相容。2.1.4 运算符31 类型相容w 指两个不同的数据类型具有某些相同的性质,其数据能够参加相同的运算,运算结果的数据类型为范围大、精度高的那种数据类型。shortbyteintlongcharfloatdouble2.1.4 运算符

16、例如:a+1、(char)(a+1)、a=97boolean b=0; true=1; xyz; 32(2)赋值相容w 指一种数据类型的值可以通过赋值操作赋给另一种数据类型的变量。w 变量的数据类型必须比表达式数据类型占用的字节数长,Java自动将表达式转换为较长的数据类型后再赋值。2.1.4 运算符例如:long big = 6; double x = 1.0f , y = 0; float z = 0.0;332.2 流程控制语句程序的三种基本结构1.顺序结构 程序从上到下一行一行执行的结构,中间没有判断和跳转,直到程序结束2.选择结构 if 和switch3.循环结构 for 、whil

17、e和do-while342.2.1 顺序结构语句v 赋值语句 赋值表达式; v 空语句只有分号,没有内容,不执行任何操作。为了增加程序的容错性。v 复合语句 变量声明或常量声明; 语句序列; 352.2.2 选择语句1. if语句j if语句的语法格式if (条件式 )语句1;else 语句2;k 复合条件if (n=100) & (n=100) if (n=999)362. switch语句switch (变量名或表达式) case 符合数字或字符: 语句1; break; case 符合数字或字符: 语句2; break; default: 语句3;M变量或表达式必须是整数或字符类

18、型(JDK7编译器支持表达式为String);Mcase一旦碰到第一次匹配,如果没有break,就会继续执行(不同的常量表达式可共用一些语句序列!) ScoreLevel.java 强制退出当前语句372.2.3 循环语句1. while语句(当型循环)根据所指定的条件式来判断是否执行循环体。语法如下: while (条件式) 语句1; 语句2; 注意:while (x=3); 382. do-while语句(直到型循环)do-while语句语法 do 语句; while (条件式);循环体至少被执行一次以;作为结束,不能忽略。393. for语句 for语句语法 for (初始式; 判断式;

19、 递增式) 语句; 为循环变量赋初值,只执行一次循环条件,结果为布尔值给出循环变量的变化规律,通常是递增或递减 使用for语句需要注意的问题n 在条件表达式之后没有分号;n for语句中的和都可以是逗号表达式。401. return语句v使程序从方法中返回至方法调用处,并为方法返回一个值。v格式 return 返回值;M Java语言不支持goto语句。2.2.4 转移语句412. break和continuev在switch语句的某个case子句中,或在while、do-while、for语句的循环体中,如果遇到break语句,则立即退出当前switch语句或循环语句。v在while、do-

20、while、for语句的循环体中,如果遇到continue语句,则本次循环结束,回到循环条件,继续判断是否执行下一次循环。2.2.4 转移语句42for(int i = 1; i 6; i+) if(i = 3) break; System.out.println(i = + i);for(int i = 1; i 6; i+) if(i = 3) continue; System.out.println(i = + i);2.2.4 转移语句43for(int i = 1; i 5)break;2.2.4 转移语句结构很结构很糟糕糟糕442.3 数组有关内存分配的一些知识:vJava把内存划

21、分成两种:一种是栈内存,一种是堆内存。v在方法中定义的一些基本数据类型的变量和引用变量都在方法的栈内存中分配。v当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。452.3 数组有关内存分配的一些知识:v堆内存存放由new创建的对象和数组。v在堆中产生了一个对象或数组后,还可以在栈中定义一个特殊的变量,让栈中这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量。v引用变量就相当于是为数组或对象起的一个名称,以后就可以在程序中使用栈中的引用变量

22、来访问堆中的数组或对象。462.3 数组数组:具有相同数据类型的元素的有序集合。数组的元素个数称为数组长度;元素在数组中的位置称为元素的下标;Java的数组是引用数据类型,数组元素的数据类型既可以是基本数据类型,也可以是引用数据类型。472.3 数组2.3.1 一维数组1. 声明一维数组变量 数据类型 数组变量 or 数据类型 数组名int x; 或int x; int x5; /error(在定义数组时,不能为其指定长度)2. 使用new为数组分配空间 数组变量 = new 数据类型长度 x = new int5; int x = new int5; /声明数组时分配空间482.3 数组3.

23、 数组长度Java语言自动为每个数组提供length属性表示其占用的存储单元个数。获得数组长度的格式如下: 数组变量.length4. 数组元素表示及运算一维数组的一个元素由一个下标唯一确定,格式如下: 数组变量下标 其中:下标是确定数组元素位置的表达式,其数据类型是整数,取值为0 x.length-1。 数组x的5个元素是x0 x4492.3.1 一维数组栈内存?堆内存 int x只在此方法运行时存在此方法中定义的变量某个方法的栈空间图 aint x; /定义一个数组,这条语句执行完后的内存状态如图a所示:502.3.1 一维数组栈内存0 x3000堆内存 int x只在此方法运行时存在此方

24、法中定义的变量某个方法的栈空间图 b000 x0 x1x4new int5产生的对象 0 x3000(对象首地址)x=new int5;/数组初始化,这条语句执行完后的内存状态如图b所示:51s 可以改变x的值,让它指向另外一个数组对象,或者不指向任何数组对象,只需要将常量null赋值给x。如x=null;,这条语句执行完后,内存状态如图c所示:2.3.1 一维数组栈内存 null堆内存int x只在此方法运行时存在此方法中定义的变量某个方法的栈空间图 c000 x0 x1x4new int5产生的对象0 x3000(对象首地址)522.3.1 一维数组5. 数组声明时赋值 方法一:int a

25、=new int1,2,3; int a=new int31,2,3; 方法二:int a=1,2,3; M 不等价:int a; a=1,2,3;v数组定义、分配空间和赋初值的基本方式int a;a = new int3;a0=1;a1=2;a2=3;不能指定其长度数组元素532.3.1 一维数组6. 使用数组时要注意的问题M数组元素的下标(即数组元素方括号内的数字,代表了数组元素中的位置)从0开始,直到数组元素个数减1为止。Arrayout.javaM必须对数组引用变量赋予一个有效的数组对象,才可以使用数组中的每个对象。 NullPointer.java542.3.1 一维数组7. 数组元

26、素的初始值数据类型初始值 数据类型初始值byte0float0.0fshort0double0.0int0charu0000long0Lbooleanfalse引用数据类型nullArrayDemo.java5510未初始化ijint i = 10 , j ;(a)变量声明1010ijj = i ;(b)变量赋值,传值1011ijj + ;(c)变量赋值不影响其他变量(1) 基本数据类型变量的传值赋值 基本数据类型的变量获得存储单元的方式是静态的; 变量保存数据值,两个变量之间赋值,传递的是值。8. 理解引用数据类型56(2) 数组变量的引用赋值数组变量保存数组的引用;两个数组变量之间的赋值是

27、引用赋值,传递的是地址,没有申请新的存储空间。8. 理解引用数据类型a未初始化(a) int a; nullb b=null;(e) 数组变量释放存储空间0a(b) a=new int5; 0000a int b; b=a; b1=10;(c) 数组变量赋值,传递引用 b010000 b=new int4;(d) 数组变量再次申请空间 ba0100000000572.3.2 二维数组v如果数组元素又是数组,则称为多维数组。1. 声明二维数组 int mat; mat = new int 34;等价于 int mat=new int34;声明时可以赋初始值G int mat = new int 1,2,3,4,5,6 ;A int mat = 1,2,3,4,5,6

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论