收藏 分享(赏)

Java语言基础知识.doc

上传人:dreamzhangning 文档编号:2277578 上传时间:2018-09-09 格式:DOC 页数:16 大小:92.50KB
下载 相关 举报
Java语言基础知识.doc_第1页
第1页 / 共16页
Java语言基础知识.doc_第2页
第2页 / 共16页
Java语言基础知识.doc_第3页
第3页 / 共16页
Java语言基础知识.doc_第4页
第4页 / 共16页
Java语言基础知识.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、21 简单数据类型211 标识符和保留字1标识符程序员对程序中的各个元素加以命名时使用的命名记号称为标识符(identifier)。Java 语言中,标识符是以字母,下划线(_),美元符($)开始的一个字符序列,后面可以跟字母,下划线,美元符,数字。例如,identifier,userName,User_Name,_sys_val, $change 为合法的标识符,而 2mail room#,class 为非法的标识符。2保留字具有专门的意义和用途,不能当作一般的标识符使用,这些标识符称为保留字(reserved word),也称为关键字,下面列出了 java 语言中的所有保留字:bstrac

2、t,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,threads

3、afe,transient,void,while 。java 语言中的保留字均用小写字母表示。212 数据类型概1 java 中的数据类型划分java 语言的数据类型有简单类型和复合类型:简单数据类型包括:整数类型(Integer):byte, short, int, long浮点类型(Floating):float,double字符类型(Textual):char布尔类型(Logical):boolean复合数据类型包括:classinterface数组2常量和变量常量:用保留字 final 来实现final typeSpecifier varName=value,varName=value

4、; 如:final int NUM=100;变量:是 java 程序中的基本存储单元,它的定义包括变量名、变量类型和作用域几个部分。其定义格式如下:typeSpecifier varName=value,varName=value;如:int count; char c=a;变量的作用域指明可访问该变量的一段代码,声明一个变量的同时也就指明了变量的作用域。按作用域来分,变量可以有下面几种:局部变量、类变量、方法参数和例外处理参数。在一个确定的域中,变量名应该是唯一的。局部变量在方法或方法的一个块代码中声明,它的作用域为它所在的代码块(整个方法或方法中的某块代码)。类变量在类中声明,而不是在类的

5、某个方法中声明,它的作用域是整个类。方法参数传递给方法,它的作用域就是这个方法。例外处理参数传递给例外处理代码,它的作用域就是例外处理部分。213 简单数据类型1布尔类型-boolean布尔型数据只有两个值 true 和 false,且它们不对应于任何整数值。布尔型变量的定义如:boolean b=true; 2字符类型-char字符常量:字符常量是用单引号括起来的一个字符,如a,A;字符型变量:类型为 char,它在机器中占 16 位,其范围为 065535。字符型变量的定义如:char c=a; /*指定变量 c 为 char 型,且赋初值为a*/3整型数据整型常量: 十进制整数如 123

6、,456,0 八进制整数以 0 开头,如 0123 表示十进制数 83,011 表示十进制数9。 十六进制整数以 0x 或 0X 开头,如 0x123 表示十进制数 291,0X12 表示十进制数18。整型变量:数据类型 所占位数 数的范围byte 8 -272 7-1bhort 16 -2152 15-1int 32 -2312 31-1long 64 -2632 63-14浮点型(实型)数据实型常量: 十进制数形式由数字和小数点组成,且必须有小数点,如 0.123, 1.23, 123.0 科学计数法形式如:123e3 或 123E3,其中 e 或 E 之前必须有数字,且 e 或 E 后面

7、的指数必须为整数。 float 型的值,必须在数字后加 f 或 F,如 1.23f。实型变量:数据类型 所占位数 数的范围float 32 3.4e-038 3.4e +038double 64 1.7e-038 1.7e +0385简单数据类型的例子:【例 21】public class Assign public static void main (String args ) int x , y ; /定义 x,y 两个整型变量float z = 1.234f ; /指定变量 z 为 float 型,且赋初值为 1.234double w = 1.234 ; /指定变量 w 为 doubl

8、e 型,且赋初值为 1.234boolean flag = true ; /指定变量 flag 为 boolean 型,且赋初值为 truechar c ; /定义字符型变量 cString str ; /定义字符串变量 strString str1 = “ Hi “ ; /指定变量 str1 为 String 型,且赋初值为 Hic = A ; /给字符型变量 c 赋值Astr = “ bye “ ; /给字符串变量 str 赋值“bye“x = 12 ; /给整型变量 x 赋值为 12y = 300; /给整型变量 y 赋值为 300214 简单数据类型中各类型数据间的优先关系和相互转换1

9、不同类型数据间的优先关系如下:低-高byte,short,char- int - long - float - double2自动类型转换规则整型,实型,字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级;操作数 1 类型 操作数 2 类型 转换后的类型 byte、short、char int int byte、short、char、int long longbyte、short、char、int、long float floatbyte、short、char、int、long、float double double3强制类型转换高级数据要转换成低级

10、数据,需用到强制类型转换,如:int i;byte b=(byte)i; /*把 int 型变量 i 强制转换为 byte 型*/22 运算符和表达式221 运算符对各种类型的数据进行加工的过程成为运算,表示各种不同运算的符号称为运算符,参与运算的数据称为操作数,按操作数的数目来分,可有: 一元运算符:, 二元运算符:, 三元运算符:?:基本的运算符按功能划分,有下面几类:1 算术运算符: +,*,/,%,+,。例如:3+2;a-b;i+;-i;2 关系运算符: ,=,3;I=0; n!=-1;3 布尔逻辑运算符: !, !(flag);flag 4 位运算符: , b=00111001;则有

11、如下结果:a3 =11110011 a3=00010011;a a|b=10111101;a=01100010; ab=10100100; 5 赋值运算符 =,及其扩展赋值运算符如+=,=,*=,/=等。例如:i=3; i+=3; /等效于 i=i+3; 6 条件运算符 ? :例如:result=(sum= =0 ? 1 : num/sum); 7 其它:包括分量运算符 ,下标运算符 ,实例运算符 instanceof,内存分配运算符 new,强制类型转换运算符 (类型),方法调用运算符 () 等。例如:System.out.println(“hello world“);int array1=

12、new int4;222 表达式表达式是由操作数和运算符按一定的语法形式组成的符号序列。一个常量或一个变量名字是最简单的表达式,其值即该常量或变量的值;表达式的值还可以用作其他运算的操作数,形成更复杂的表达式。1表达式的类型表达式的类型由运算以及参与运算的操作数的类型决定,可以是简单类型,也可以是复合类型:布尔型表达式: x整型表达式: num1+num2;2运算符的优先次序表达式的运算按照运算符的优先顺序从高到低进行,同级运算符从左到右进行:优先次序 运算符1 . () 2 + - ! instanceof3 new (type)4 * / % 5 + - 6 = = = 例如,下述条件语句

13、分四步完成:Result=sum=0?1:num/sum;第 1 步:result=sum=0?1:(num/sum)第 2 步:result=(sum=0)?1:(num/sum)第 3 步:result=(sum=0)?1:(num/sum)23 控制语句Java 程序通过控制语句来执行程序流,完成一定的任务。程序流是由若干个语句组成的,语句可以是单一的一条语句,如 c=a+b,也可以是用大括号括起来的一个复合语句。Java 中的控制语句有以下几类: 分支语句:if-else, switch 循环语句:while, do-while, for 与程序转移有关的跳转语句:break, con

14、tinue, return 例外处理语句:try-catch-finally, throw 注释语句:/,/* */, /* */ 231 分支语句分支语句提供了一种控制机制,使得程序的执行可以跳过某些语句不执行,而转去执行特定的语句。1条件语句 if-elseif(boolean-expression)statement1;else statement2;2多分支语句 switchswitch (expression)case value1 : statement1;break;case value2 : statement2;break;case valueN : statemendN;b

15、reak;default : defaultStatement; 表达式 expression 的返回值类型必须是这几种类型之一:int,byte,char,short。 case 子句中的值 valueN 必须是常量,而且所有 case 子句中的值应是不同的。 default 子句是可选的。break 语句用来在执行完一个 case 分支后,使程序跳出 switch 语句,即终止 switch 语句的执行(在一些特殊情况下,多个不同的 case 值要执行一组相同的操作,这时可以不用 break)。232 循环语句循环语句的作用是反复执行一段代码,直到满足终止循环的条件为止。Java 语言中提

16、供的循环语句有: while 语句 do-while 语句 for 语句1while 语句initializationwhile (termination)body;iteration;2do-while 语句initializationdo body;iteration; while (termination);3for 语句for (initialization; termination; iteration)body; for 语句执行时,首先执行初始化操作,然后判断终止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次循环后,重新判断终止条件。 初始化、终止以及迭

17、代部分都可以为空语句(但分号不能省),三者均为空的时候,相当于一个无限循环。 在初始化部分和迭代部分可以使用逗号语句,来进行多个操作。逗号语句是用逗号分隔的语句序列。for( i=0, j=10; ij; i+, j-)第 4 步:result=233 跳转语句 break 语句 continue 语句 返回语句 return1break 语句 在 switch 语中,break 语句用来终止 switch 语句的执行。使程序从 switch 语句后的第一个语句开始执行。 在 Java 中,可以为每个代码块加一个括号,一个代码块通常是用大括号括起来的一段代码。加标号的格式如下:BlockLab

18、el: codeBlock break 语句的第二种使用情况就是跳出它所指定的块,并从紧跟该块的第一条语句处执行。例如:break BlockLabel;break 语句a: /标记代码块 ab: /标记代码块 bc: /标记代码块 cbreak b; /此处的语句块不被执行 /此处的语句块不被执行 /从此处开始执行2continue 语句continue 语句用来结束本次循环,跳过循环体中下面尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环。对于 for 语句,在进行终止条件的判断前,还要先执行迭代语句。它的格式为:continue;也可以用 continue 跳转到括号指明的外层

19、循环中,这时的格式为continue outerLable;例如:outer: for( int i=0; i10; i+ ) /外层循环inner: for( int j=0; j10; j+ ) /内层循环if( ij )continue outer;3返回语句 returnreturn 语句从当前方法中退出,返回到调用该方法的语句处,并从紧跟该语句的下一条语句继续程序的执行。返回语句有两种格式:return expression ;return;return 语句通常用在一个方法体的最后,否则会产生编译错误,除非用在 if-else 语句中234 例外处理语句包括 try,catch,f

20、inally,throw 语24 数组java 语言中,数组是一种最简单的复合数据类型。数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。数组有一维数组和多维数组。241 一维数组1 一维数组的定义type arrayName ;类型(type)可以为 Java 中任意的数据类型,包括简单类型和复合类型。例如:int intArray ;Date dateArray;2一维数组的初始化 静态初始化int intArray=1,2,3,4;String stringArray=“abc“, “How“, “you“; 动态初始化 1)

21、简单类型的数组int intArray; intArray = new int5;2)复合类型的数组String stringArray ;String stringArray = new String3;/*为数组中每个元素开辟引用空间(32 位) */stringArray0= new String(“How“);/为第一个数组元素开辟空间 stringArray1= new String(“are“);/为第二个数组元素开辟空间stringArray2= new String(“you“);/ 为第三个数组元素开辟空间3一维数组元素的引用数组元素的引用方式为:arrayNameindex

22、index 为数组下标,它可以为整型常数或表达式,下标从 0 开始。每个数组都有一个属性 length 指明它的长度,例如:intArray.length 指明数组 intArray 的长度。242 多维数组Java 语言中,多维数组被看作数组的数组。1二维数组的定义type arrayName ;type arrayName;2二维数组的初始化 静态初始化int intArray =1,2,2,3,3,4,5;Java 语言中,由于把二维数组看作是数组的数组,数组空间不是连续分配的,所以不要求二维数组每一维的大小相同。 动态初始化1) 直接为每一维分配空间,格式如下:arrayName =

23、new typearrayLength1arrayLength2;int a = new int23;2) 从最高维开始,分别为每一维分配空间:arrayName = new typearrayLength1 ;arrayName0 = new typearrayLength20;arrayName1 = new typearrayLength21;arrayNamearrayLength1-1 = new typearrayLength2n;3) 例:二维简单数据类型数组的动态初始化如下,int a = new int2 ;a0 = new int3;a1 = new int5;对二维复合数

24、据类型的数组,必须首先为最高维分配引用空间,然后再顺次为低维分配空间。而且,必须为每个数组元素单独分配空间。例如:String s = new String2 ;s0= new String2;/为最高维分配引用空间s1= new String2; /为最高维分配引用空间s00= new String(“Good“);/ 为每个数组元素单独分配空间s01= new String(“Luck“);/ 为每个数组元素单独分配空间s10= new String(“to“);/ 为每个数组元素单独分配空间s11= new String(“You“);/ 为每个数组元素单独分配空间3二维数组元素的引用对

25、二维数组中的每个元素,引用方式为:arrayNameindex1index2例如: num10;4二维数组举例:【例 22】两个矩阵相乘public class MatrixMultiplypublic static void main(String args)int i,j,k;int a=new int 23; /动态初始化一个二维数组int b=1,5,2,8,5,9,10,-3,2,7,-5,-18;/静态初始化一个二维数组int c=new int24; /动态初始化一个二维数组for (i=0;i2;i+)for (j=0; j3 ;j+)aij=(i+1)*(j+2);for (

26、i=0;i2;i+)for (j=0;j4;j+)cij=0;for(k=0;k3;k+)cij+=aik*bkj;System.out.println(“*Matrix C*“);/打印 Matrix C 标记for(i=0;i2;i+)for (j=0;j4;j+)System.out.println(cij+“ “);System.out.println();25 字符串的处理251 字符串的表示Java 语言中,把字符串作为对象来处理,类 String 和 StringBuffer 都可以用来表示一个字符串。(类名都是大写字母打头)1字符串常量字符串常量是用双引号括住的一串字符。“He

27、llo World!“2String 表示字符串常量用 String 表示字符串:String( char chars );String( char chars , int startIndex, int numChars );String( byte ascii , int hiByte );String( byte ascii , int hiByte, int startIndex, int numChars );String 使用示例:String s=new String() ; 生成一个空串下面用不同方法生成字符串“abc“:char chars1=a,b,c;char chars

28、2=a,b,c,d,e;String s1=new String(chars1);String s2=new String(chars2,0,3);byte ascii1=97,98,99;byte ascii2=97,98,99,100,101;String s3=new String(ascii1,0);String s4=new String(ascii2,0,0,3);3用 StringBuffer 表示字符串StringBuffer( ); /*分配 16 个字符的缓冲区*/StringBuffer( int len ); /*分配 len 个字符的缓冲区*/StringBuffer

29、( String s ); /*除了按照 s 的大小分配空间外,再分配 16 个字符的缓冲区*/252 访问字符串1类 String 中提供了 length( )、charAt( )、indexOf( )、lastIndexOf( )、getChars( )、getBytes( )、toCharArray( )等方法。 public int length() 此方法返回字符串的字符个数 public char charAt(int index) 此方法返回字符串中 index 位置上的字符,其中index 值的 范围是 0length-1 public int indexOf(int ch)p

30、ublic lastIndexOf(in ch)返回字符 ch 在字符串中出现的第一个和最后一个的位置 public int indexOf(String str)public int lastIndexOf(String str)返回子串 str 中第一个字符在字符串中出现的第一个和最后一个的位置 public int indexOf(int ch,int fromIndex)public lastIndexOf(in ch ,int fromIndex)返回字符 ch 在字符串中位置 fromIndex 以后出现的第一个和最后一个的位置 public int indexOf(String

31、str,int fromIndex)public int lastIndexOf(String str,int fromIndex)返回子串 str 中的第一个字符在字符串中位置 fromIndex 后出现的第一个和最后一个的位置。 public void getchars(int srcbegin,int end ,char buf,int dstbegin)srcbegin 为要提取的第一个字符在源串中的位置, end 为要提取的最后一个字符在源串中的位置,字符数组 buf存放目的字符串, dstbegin 为提取的字符串在目的串中的起始位置。 public void getBytes(i

32、nt srcBegin, int srcEnd,byte dst, int dstBegin)参数及用法同上,只是串中的字符均用 8 位表示。2类 StringBuffer 提供了 length( )、charAt( )、getChars( )、capacity()等方法。方法 capacity()用来得到字符串缓冲区的容量,它与方法 length()所返回的值通常是不同的。253 修改字符串修改字符串的目的是为了得到新的字符串,类 String 和类 StringBuffer 都提供了相应的方法。有关各个方法的使用,参考 java 2 API。1String 类提供的方法:concat( )

33、replace( )substring( )toLowerCase( )toUpperCase( ) public String contat(String str);用来将当前字符串对象与给定字符串 str 连接起来。 public String replace(char oldChar,char newChar);用来把串中出现的所有特定字符替换成指定字符以生成新串。 public String substring(int beginIndex);public String substring(int beginIndex,int endIndex);用来得到字符串中指定范围内的子串。 p

34、ublic String toLowerCase();把串中所有的字符变成小写。 public String toUpperCase();把串中所有的字符变成大写。2StringBuffer 类提供的方法:append( )insert( )setCharAt( )如果操作后的字符超出已分配的缓冲区,则系统会自动为它分配额外的空间。 public synchronized StringBuffer append(String str);用来在已有字符串末尾添加一个字符串 str。 public synchronized StringBuffer insert(int offset, Strin

35、g str);用来在字符串的索引 offset 位置处插入字符串 str。 public synchronized void setCharAt(int index,char ch);用来设置指定索引 index 位置的字符值。 注意:String 中对字符串的操作不是对源操作串对象本身进行的,而是对新生成的一个源操作串对象的拷贝进行的,其操作的结果不影响源串。相反,StringBuffer 中对字符串的连接操作是对源串本身进行的,操作之后源串的值发生了变化,变成连接后的串。254 其它操作1字符串的比较String 中提供的方法:equals( )和 equalsIgnoreCase( )它

36、们与运算符= =实现的比较是不同的。运算符= =比较两个对象是否引用同一个实例,而 equals( )和 equalsIgnoreCase( )则比较 两个字符串中对应的每个字符值是否相同。2字符串的转化java.lang.Object 中提供了方法 toString( )把对象转化为字符串。3字符串“+“操作运算符+可用来实现字符串的连接:String s = “He is “+age+“ years old.“;其他类型的数据与字符串进行“+“运算时,将自动转换成字符串。具体过程如下:String s=new StringBuffer(“he is“).append(age).append

37、(“years old“).toString();注意:除了对运算符“+“进行了重载外,java 不支持其它运算符的重载。【本讲小结】java 中的数据类型有简单数据类型和复合数据类型两种,其中简单数据类型包括整数类型、浮点类型、字符类型和布尔类型;复合数据类型包含类、接口和数组。表达式是由运算符和操作数组成的符号序列,对一个表达式进行运算时,要按运算符的优先顺序从高向低进行,同级的运算符则按从左到右的方向进行。条件语句、循环语句和跳转语句是 java 中常用的控制语句。数组是最简单的复合数据类型,数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。Java 中,对数组定义时并不为数组元素分配内存,只有初始化后,才为数组中的每一个元素分配空间。已定义的数组必须经过初始化后,才可以引用。数组的初始化分为静态初始化和动态初始化两种,其中对复合数据类型数组动态初始化时,必须经过两步空间分配:首先,为数组开辟每个元素的引用空间;然后,再为每个数组元素开辟空间。Java 中把字符串当作对象来处理, java.lang.String 类提供了一系列操作字符串的方法,使得字符串的生成、访问和修改等操作容易和规范。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报