|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
概述: 【课前思索】 1. Java中的标识符是由哪些字符组成的? 2. Java中有哪些保留字?简朴数据类型包含哪几种?各种数据类型变量的定义方式和常量的表示方式及取值范围。 3. Java 中各简朴数据类型间的优先次序和自动转变规则是什么? 各数据类型间在什么情况下,进行自动转变,在什么情况下使用强制转变? 4. Java中有哪些运算符?这些运算符的优先关系是怎样的? 5. Java 中有哪些控制语句?你了解每一种控制语句的语法规则吗? 6. Java 中的一维数组和多维数组在数组动态初始化和静态初始化时有何不同? 7. Java中的字符串有两种表示方式,这两种表示方式有什么不同? 8. 如何访问字符串?如何修改字符串?如何对两个字符串进行比较? 【难 重 点】 重点: 1. 深刻理解各知识点的概念,并熟记java 的语法规范。 2. 纯熟使用各种数据类型的定义,表示和引用。 3. 能纯熟使用各种控制语句。 4. 能纯熟处理字符串。 难点: 1. 动态初始化复杂类型数组时,要先为数组中的元素开辟引用空间,再为每个元素开辟空间。 2. 使用StringBuffer类表示和操作字符串时,要注重它可以处理可变字符串,即当在 StringBuffer类型的字符串中插入字符而超出已分配的缓冲区时,系统会自动地为它分配额外的空间。String类不可以。 2.1 简朴数据类型 2.1.1 标识符和保留字 1.标识符 程序员对程序中的各个元素加以命名时使用的命名记号称为标识符(identifier)。Java语言中,标识符是以字母,下划线(_),美元符($)开始的一个字符序列,后面可以跟字母,下划线,美元符,数字。例如,identifier,userName,User_Name,_sys_val, $change为合法的标识符,而2mail room#,class 为非法的标识符。 2.保留字 具有专门的意义和用途,不能当作一般的标识符使用,这些标识符称为保留字(reserved word),也称为要害字,下面列出了java语言中的所有保留字: abstract,break,byte,boolean,catch,case,class,char,continue,default,double,do,else,extends,false,final,float,for,finally,if,import,implements,int,interface,instanceof,long,length,native,new,null,package,private,protected,public,return,switch,synchronized,short,static,super,try,true,this,throw,throws,threadsafe,transient,void,while 。 java语言中的保留字均用小写字母表示。 2.1.2 数据类型概述 1. java中的数据类型划分 java语言的数据类型有简朴类型和复合类型: 简朴数据类型包括: 整数类型(Integer):byte, short, int, long 浮点类型(Floating):float,double 字符类型(Textual):char 布尔类型(Logical):boolean 复合数据类型包括: class interface 数组 2.常量和变量 常量:用保留字final来实现 final typeSpecifier varName=value[,varName[=value]…]; 如:final int NUM=100; 变量:是java 程序中的基本存储单元,它的定义包括变量名、变量类型和作用域几个部分。其定义格式如下: typeSpecifier varName[=value[,varName[=value]…]; 如:int count; char c=\\\'a\\\'; 变量的作用域指明可访问该变量的一段代码,声明一个变量的同时也就指明了变量的作用域。按作用域来分,变量可以有下面几种:局部变量、类变量、方式参数和例外处理参数。在一个确定的域中,变量名应该是唯一的。局部变量在方式或方式的一个块代码中声明,它的作用域为它所在的代码块(整个方式或方式中的某块代码)。类变量在类中声明,而不是在类的某个方式中声明,它的作用域是整个类。方式参数传递给方式,它的作用域就是这个方式。例外处理参数传递给例外处理代码,它的作用域就是例外处理部分。 2.1.3 简朴数据类型 1.布尔类型--boolean 布尔型数据只有两个值true和false,且它们不对应于任何整数值。布尔型变量的定义如: boolean b=true; 2.字符类型--char 字符常量: 字符常量是用单引号括起来的一个字符,如\\\'a\\\',\\\'A\\\'; 字符型变量: 类型为char,它在机器中占16位,其范围为0~65535。字符型变量的定义如: char c=\\\'a\\\'; /*指定变量c为char型,且赋初值为\\\'a\\\'*/ 3.整型数据 整型常量: ◇ 十进制整数: 如123,-456,0 ◇ 八进制整数: 以0开头,如0123表示十进制数83,-011表示十进制数-9。 ◇ 十六进制整数: 以0x或0X开头,如0x123表示十进制数291,-0X12表示十进制数-18。 整型变量: 数据类型 所占位数 数的范围 Byte 8 -27~27-1 Short 16 -215~215-1 Int 32 -231~231-1 Long 64 -263~263-1 4.浮点型(实型)数据 实型常量: ◇ 十进制数形式 由数字和小数点组成,且必须有小数点,如0.123, 1.23, 123.0 ◇ 科学计数法形式 如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。 ◇ float型的值,必须在数字后加f或F,如float t = 1.23f。 实型变量: 数据类型 所占位数 数的范围 float 32 3.4e-038 ~3.4e+038 double 64 1.7e-038 ~1.7e+038 2.1.4 简朴数据类型中各类型数据间的优先关系和相互转变 自动类型转变规则 整型,实型,字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算,转变从低级到高级; 操作数1类型 操作数2类型 转变后的类型 byte、short、char int int byte、short、char、int long long byte、short、char、int、long float float byte、short、char、int、long、float double double 3.强制类型转变 高级数据要转变成低级数据,需用到强制类型转变,如: int i; byte b=(byte)i; 2.2 运算符和表达式 2.2.1 运算符 基本的运算符按功能划分,有下面几类: 1 算术运算符: +,?D,*,/,%,++,-- 2 关系运算符: >,<,>=,<=,==,!= 3 布尔逻辑运算符: !,&&,|| 。 4 位运算符: >>,<<,>>>,&,|,^,~。 >>>为右移后零填充, ^为按位异或 例如: a=10011101; b=00111001;则有如下结果: a<<3 =11101000; a>>3 =11110011 a>>>3=00010011; a&b=00011001; a|b=10111101; ~a=01100010; a^b=10100100; 5 赋值运算符 =,及其扩展赋值运算符如+=,-=,*=,/=等。 6 条件运算符 ? : operand?statement1:statement2 operand为一个布尔表达式,若为真则执行statement1,为statement2 7 其它: 包括分量运算符・ ,下标运算符 [],实例运算符instanceof,内存分配运算符new,强制类型转变运算符 (类型),方式调用运算符 () 等。例如: 2.2.2 表达式 表达式是由操作数和运算符按一定的语法形式组成的符号序列。一个常量或一个变量名字是最简朴的表达式,其值即该常量或变量的值;表达式的值还可以用作其他运算的操作数,形成更复杂的表达式。 1.表达式的类型 表达式的类型由运算以及参与运算的操作数的类型决定,可以是简朴类型,也可以是复合类型: 布尔型表达式: x&&y||z; 整型表达式: num1+num2; 2.运算符的优先次序 表达式的运算按照运算符的优先顺序从高到低进行,同级运算符从左到右进行: 优先次序 运算符 1 . [] () 2 ++ -- ! ~ instanceof 3 new (type) 4 * / % 5 + - 6 >> >>> << 7 > < >= <= 8 = = != 9 & 10 ^ 11 | 12 && 13 || 14 ?: 15 = += -= *= /= %= ^= 16 &= |= <<= >>= >>>= 先单运算符,而后乘除加减,然后位运算符,之后比较运算,然后赋值运算。 2.3 控制语句 Java程序通过控制语句来执行程序流,完成一定的任务。程序流是由若干个语句组成的,语句可以是单一的一条语句,如c=a+b,也可以是用大括号{}括起来的一个复合语句。Java中的控制语句有以下几类: ◇ 分支语句:if-else, switch ◇ 循环语句:while, do-while, for ◇ 与程序转移有关的跳转语句:break, continue, return ◇ 例外处理语句:try-catch-finally, throw ◇ 注释语句://,/* */, /** */ 2.3.1 分支语句 分支语句提供了一种控制机制,使得程序的执行可以跳过某些语句不执行,而转去执行特定的语句。 1.条件语句 if-else if(boolean-expression) statement1; [else statement2;] 2.多分支语句 switch switch (expression){ case value1 : statement1; break; case value2 : statement2; break; ………… case valueN : statemendN; break; [default : defaultStatement; ] } break语句用来在执行完一个case分支后,使程序跳出switch语句,即终止switch语句的执行(在一些特别情况下,多个不同的case值要执行一组一样的操作,这时可以不用break)。假如将default语句放在了第一行,则不管expression与case中的value是否匹配,程序会从default开始执行直到第一个break出现。 2.3.2 循环语句 1.while语句 [initialization] while (termination){ body; [iteration;] } 2.do-while语句 [initialization] do { body; [iteration;] } while (termination); 3.for语句 for (initialization; termination; iteration){ body; } iteration:反复 ◇ for语句执行时,首先执行初始化操作,然后判定终止条件是否满意,假如满意,则执行循环体中的语句,最后执行迭代部分。完成一次循环后,重新判定终止条件。 ◇ 初始化、终止以及迭代部分都可以为空语句(但分号不能省),三者均为空的时候,相称于一个无限循环。 ◇ 在初始化部分和迭代部分可以使用逗号语句,来进行多个操作。逗号语句是用逗号分隔的语句序列。 2.3.3 跳转语句 1.break语句 ◇ 在switch语中,break语句用来终止switch语句的执行。使程序从switch语句后的第一个语句开始执行。 ◇ 在Java中,可以为每个代码块加一个括号,一个代码块通常是用大括号{}括起来的一段代码。加标号的格式如下: BlockLabel: { codeBlock } break语句的第二种使用情况就是跳出它所指定的块,并从紧跟该块的第一条语句处执行。 } 2.continue语句 continue语句用来结束本次循环,跳过循环体中下面尚未执行的语句,接着进行终止条件的判定,以决定是否继承循环。对于for语句,在进行终止条件的判定前,还要先执行迭代语句。它的格式为: continue; 也可以用continue跳转到括号指明的外层循环中,这时的格式为 continue outerLable; 例如: outer: for( int i=0; i<10; i++ ){ //外层循环 inner: for( int j=0; j<10; j++ ){ //内层循环 if( i<j ){ …… continue outer; } …… } …… } 3.返回语句return return语句从当前方式中退出,返回到调用该方式的语句处,并从紧跟该语句的下一条语句继承程序的执行。返回语句有两种格式: return expression ; return; return语句通常用在一个方式体的最后,否则会产生编译错误,除非用在if-else语句中 2.3.4 例外处理语句 包括try,catch,finally,throw语句; 与c/c++相比,是Java特有的语句。我们将在第四讲中介绍。 2.4 数组 java语言中,数组是一种最简朴的复合数据类型。数组是有序数据的集合,数组中的每个元素具有一样的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。数组有一维数组和多维数组。 2.4.1 一维数组 ◇ 静态初始化 int intArray[]={1,2,3,4}; String stringArray[]={"abc", "How", "you"}; ◇ 动态初始化 1)简朴类型的数组 int intArray[]; intArray = new int[5]; 2)复合类型的数组 String stringArray[ ]; String stringArray = new String[3];/*为数组中每个元素开辟引用 空间(32位) */ stringArray[0]= new String("How");//为第一个数组元素开辟空间 stringArray[1]= new String("are");//为第二个数组元素开辟空间 stringArray[2]= new String("you");// 为第三个数组元素开辟空间 3.一维数组元素的引用 数组元素的引用方法为: arrayName[index] index为数组下标,它可以为整型常数或表达式,下标从0开始。每个数组都有一个属性length指明它的长度,例如:intArray.length指明数组intArray的长度。 2.4.2 多维数组 1.二维数组的定义 type arrayName[ ][ ]; type[ ][ ] arrayName; 2.二维数组的初始化 ◇ 静态初始化 int intArray[ ][ ]={{1,2},{2,3},{3,4,5}}; Java语言中,由于把二维数组看作是数组的数组,数组空间不是连续分配的,所以不要求二维数组每一维的大小一样。 ◇ 动态初始化 1) 直接为每一维分配空间,格式如下: arrayName = new type[arrayLength1][arrayLength2]; int a[ ][ ] = new int[2][3]; 2) 从最高维开始,分别为每一维分配空间: arrayName = new type[arrayLength1][ ]; arrayName[0] = new type[arrayLength20]; arrayName[1] = new type[arrayLength21]; … arrayName[arrayLength1-1] = new type[arrayLength2n]; 3) 例: 二维简朴数据类型数组的动态初始化如下, int a[ ][ ] = new int[2][ ]; a[0] = new int[3]; a[1] = new int[5]; 对二维复合数据类型的数组,必须首先为最高维分配引用空间,然后再顺次为低维分配空间。 而且,必须为每个数组元素单独分配空间。 例如: String s[ ][ ] = new String[2][ ]; s[0]= new String[2];//为最高维分配引用空间 s[1]= new String[2]; //为最高维分配引用空间 s[0][0]= new String("Good");// 为每个数组元素单独分配空间 s[0][1]= new String("Luck");// 为每个数组元素单独分配空间 s[1][0]= new String("to");// 为每个数组元素单独分配空间 s[1][1]= new String("You");// 为每个数组元素单独分配空间 3.二维数组元素的引用 对二维数组中的每个元素,引用方法为:arrayName[index1][index2] 例如: num[1][0]; 2.5 字符串的处理 2.5.1 字符串的表示 Java语言中,把字符串作为对象来处理,类String和StringBuffer都可以用来表示一个字符串。(类名都是大写字母打头) 1.字符串的比较 String中提供的方式: equals( )和equalsIgnoreCase( ) 它们与运算符\\\'= =\\\'实现的比较是不同的。运算符\\\'= =\\\'比较两个对象是否引用同一个实例,而equals( )和equalsIgnoreCase( )则比较两个字符串中对应的每个字符值是否一样。 返回类别: 教程 上一教程: 详解Java中的指针、引用及对象的clone 下一教程: 用java学习数据结构--单链表 您可以阅读与"第二讲 Java语言基础知识"相关的教程: · JAVA相关基础知识(1) · 基础知识 --> JavaDoc用法 · JAVA基础知识精华总结 · JAVA基础知识(2) · JAVA基础知识(3) |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |