计算机二级java考试课件(1-9章)_第1页
计算机二级java考试课件(1-9章)_第2页
计算机二级java考试课件(1-9章)_第3页
计算机二级java考试课件(1-9章)_第4页
计算机二级java考试课件(1-9章)_第5页
已阅读5页,还剩607页未读 继续免费阅读

下载本文档

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

文档简介

全国计算机等级考试

二级教程

——Java语言程序设计基本要求1、掌握Java语言的特点,实现机制和体系结构。2、掌握Java语言中面向对象的特性。3、掌握Java语言提供的数据类型和结构。4、掌握Java语言编程的基本技术。5、会编写Java用户界面程序。6、会编写Java简单应用程序。7、会编写Java小应用程序(Applet)。8、了解Java的应用。主要内容第1章Java语言概述第2章简单数据类型第3章运算符和表达式第4章流程控制第5章类、数组和字符串操作第6章异常处理第7章输入输出及文件操作第8章线程与对象串行化第9章编写图形用户界面第10章Applet程序设计第1章Java语言概论大纲要求(1)Java语言的特点及实现机制(2)JDK目录结构(3)Java的API结构(4)开发环境设置(5)Java源程序结构重要考点提示根据对历年真题的分析可知,本章考核内容约占13%,主要包括以下几个方面:(1)Java语言与其他语言(2)JDK目录结构和API结构(3)Java源程序的程序结构(4)JDK工具的使用,如编译器、解释器、调试器等。1.1Java语言的特点及优势Java是一种网络编程语言,与其他编程语言相比,具有以下特点:1.简单易学其基本语法与C++类似,但除去C++中的指针操作、运算符重载、多重继承等难以理解的内容,大大降低了学习的难度。2.利用面向对象技术Java把所有的Java应用和Applet都看作对象,按类进行封装,与其他面向对象程序设计语言相比,Java对面向对象技术的利用更加彻底。3.分布式计算Java类库支持TCP/IP协议,应用程序可以通过URL地址访问网络上的任何对象。4.健壮性(鲁棒性)(1)Java是一种强类型语言;(2)Java不允许使用指针访问内存,更不允许使用指针数组访问内存;(3)有自动收集垃圾功能。5.安全性面向网络、分布式环境的Java语言是目前安全性最佳的编程语言。6.跨平台性Java解释器采用与体系结构无关的字节代码指令技术,只需安装Java运行系统就可以保证Java程序在网络上的任何地方运行。7.可移植性跨平台性保证了软件的可移植性,Java类库具有可移植性,Java本身也具有可移植性。8.解释执行Java语言用字节码进行解释执行,使其连接过程更加简单。9.多线程多线程是Java程序的并发机制,能同步共享数据、处理不同的事件。10.动态性Java类库可以自由的增加新方法或实例。通过接口实现多重继承,使类继承具有更灵活的扩展性,可以随时插入构件和数据库。11.高性能字节码易直接转换成一些特定CPU的机器码。12.Applet的特点Applet是Java的一类特殊应用程序,它嵌入HTML中,实现多媒体的用户界面或复杂的计算。Applet要求在支持Java的浏览器上运行,使得互联网上的信息能够很容易的实现动态性和交互性。1.Java语言与C++相比,其最突出的特点是()。(2007年4月)A)面向对象B)高性能C)跨平台D)有类库C)2.在Java语言中,不允许使用指针体现的Java特性是()。(2006-4)A)可移植性B)解释执行C)健壮性D)安全性3.下列关于Java语言的特点,错误的是()。(2006年9月)A)Java是面向过程的编程语言B)Java支持分布式计算C)Java是跨平台的编程语言D)Java支持多线程4.Applet是能够嵌入()格式文件中,并在浏览器中运行的Java类。A)D)HTML1.2Java语言的实现机制(1)Java虚拟机Java语言的执行模式是半编译和半解释型。Java程序首先由编译器转换为标准字节码,然后由Java虚拟机来解释执行。Java程序的下载和执行步骤:1)程序经编译器得到字节代码;2)浏览器与服务器连接,要求下载字节码文件;3)服务器将字节代码文件传给客户机;4)客户机上的解释器执行字节代码文件;5)在浏览器上显示并交互。浏览器服务器解释器编译器客户端字节代码Java程序12345虚拟机(VM)的执行过程有3个特点:1)多线程2)动态连接3)异常处理(2)垃圾回收机制Java有一个系统级的线程,对内存的使用进行跟踪,使程序员从繁忙的内存管理中解放出来。(3)代码安全机制Java程序的安全性体现在多个层次上,如编译层、解释层、平台层上都有相应的安全检测机制。1.3Java的体系结构(1)Java体系结构Java应用程序和AppletJava基本APIJava标准扩展APIJava基本类Java标准扩展类Java虚拟机移植接口(2)JDK的目录结构bin目录下有编译器、解释器和许多工具。demo目录下有各种演示例子。include目录下是win32子目录,包含本地方法文件。jre目录是Java运行环境的根目录。lib目录下都是库文件。src.zip是源码压缩文件。1.运行Java程序需要的工具软件所在的目录是()。2006.9A)JDK的bin目录B)JDK的demo目录C)JDK的lib目录D)JDK的jre目录A)1.4Java的API结构Java的类库包括核心Java包、Javax扩展包和Org包。(1)Java核心包。java.lang包:封装所有编程应用的基本类,如Object、Class、System、String、Integer、Thread等。Object是所有类的根,它所包含的属性和方法被所有类继承。Class类是由编译器自动生成对象的一个特殊类,它伴随每个类。Class对象包含所属类的所有信息,可以通过Class类的方法来访问这些信息。System类是一个特殊类,它是一个final类,所有的方法都用类变量来调用,即对System类不能实例化,主要提供标准输入/输出和系统环境信息的访问、设置。System.out2.下列关于System类的叙述,错误的是()。2007.9System类是一个final类B)System类不能实例化C)System类中未定义属性D)System类中主要提供系统环境参数的访问。3.任何Java程序都默认引入一个包,这个包的名字称为java.

。4.在Java语言中,有一个类是所有类或接口的父类,这个类的名称是

类是Java编译器自动生成的,它伴随每个类。2005.9C)langObjectClass

(1)Java核心包。

java.awt包。封装抽象窗口工具包,提供构建和管理用户图形界面的功能

java.applet包。为Applet提供执行需要的所有类。

java.io包。提供程序输入/输出文件操作的类。

包。提供程序执行网络通信应用及URL处理的类。

java.rmi包。提供程序远程方法调用所需的类。java.math包。提供程序常用的整数算术以及十进制算术的基本方法类。

java.util包。提供实用程序类和集合类,如日期方法类、集合、数组类。

java.sql包。提供访问和处理标准数据源数据的类。

java.security包。提供网络安全操作类。

11

java.text包。提供所有处理文本、日期、数字以及非自然语言的消息操作类。

12

java.bean包。提供开发编写javabean所需的类。

(2)扩展包Javax

javax.naming包。提供命名服务所需的类和接口。

javax.swing包。提供构建和管理应用程序的图形界面的轻量级的构件。

javax.rmi包。提供远程方法调用的应用程序接口。

javax.transaction包。提供事务处理所需的类。

javax.sound包。提供多媒体声音要求的MIDI输入/输出以及合成操作的基本类。

javax.accessibility包。提供用户界面构件之间相互访问机制的基本类。(3)Org包

Org包是一些有关国际组织的标准。6.在下列Java语言的包中,提供图形界面的包是()。2007.4java.ioB)javax.swingC)D)java.rmi7.Java的核心包中,提供编程应用的基本类的包是()。2006.9A)java.langB)java.utilC)java.appletD)java.rmiB)A)1.5Java源程序结构Java程序包括源代码,由编译器生成的类文件,有归档工具jar生成的.jar文件、对象状态序列化.ser文件。其中源代码的结构如下:(1)package语句。0或多个,用于使文件存入指定包中,这条语句必须置于文件之首。(2)import语句。0或多个。必须在所有类定义之前引入标准类。(3)publicclassDefinition(公共类定义),0或1个,指定应用程序类名,需与源文件名一致。(4)classDefinition,0或多个,类定义。(5)interfaceDefinition,0或多个,接口定义。Java是区分字母大小写的。源文件与程序类(即公共类)名字相同。其扩展名为.java。源文件中最多只能有一个public类,其他类的个数不限。1.5Java源程序结构8.用来导入已定义好的类或包的语句是()。2005.9mainB)importC)publicclassD)class9.下列关于Java对import语句规定的叙述中,错误的是()。2006.9Java程序中的import语句可以有多条Java程序中可以没有import语句Java程序中必须有一条import语句Java程序中的import语句必须引入在所有类定义之前B)C)1.6Java程序编写及运行的过程(1)编写和运行JavaApplication程序的步骤:选用一个文本编辑器,不要用word带格式的编辑器。用编译器javac.exe对Java程序进行编译。用解释器java.exe解释执行所生成的.class文件。(2)编写和运行JavaApplet应用程序的步骤:编写源代码。此程序不含main()方法。编写HTML文件来调用这个小程序。编译过程与JavaApplication应用程序相同。解释命令为“appletviewer

filename.html”1.6Java程序编写及运行的过程(1)Java应用程序(JavaApplication)举例(2)JavaApplet实例1.6Java程序编写及运行的过程(3)JDK工具javac.exe。Java编译器。命令格式:javac[选项]文件名(全名)

选项:-g

输出文件中的行号及局部变量信息,用于调试程序。-o对类文件进行优化编译-nowarn

关闭警告信息,只显示错误信息-verbose显示源代码文件和字节码文件的相关信息。-d<目录>指定生成的类文件的存放位置-路径/目录1.6Java程序编写及运行的过程(3)JDK工具java.exe。Java解释器,执行字节码程序。命令格式:java[选项]类名[程序参数]

选项:-debug

将程序连接到调试器。-ms分配内存初值-mx

分配内存的最大值,默认值为16MB-noverify

不进行字节代码验证。-v每装载一个类,就打印一条消息1.6Java程序编写及运行的过程(3)JDK工具javadoc.exe。Java文档生成器,对Java源文件和包以MML格式产生AP文档。制作源文件类结构的HTML格式文档。命令格式:javadoc[选项]包名或javadoc[选项]文件名

选项:-verbose

显示行为信息。-路径/目录指明包的路径/HTML文件所存目录使用javadoc时,也可以使用参数-d指定生成文档所在的目录,如:

javadoc–dC:\lxtest.java1.6Java程序编写及运行的过程(3)JDK工具Javap.exe。Java类分解器,对.class文件提供字节代码的反汇编并打印。查看源码类中的public方法名字和public成员变量了名字。命令格式:javap[选项]类名

选项:-c

打印出每个类中方法的JVM指令。-l在原来的打印信息上增加私有及保护方法和变量例:javap

java.awt.Button将列出Button中的public方法和public成员变量。1.6Java程序编写及运行的过程(3)JDK工具jdb.exe。Java调试器。命令格式:jdb[解释器选项]类名或jdb[-host主机名]-password选项:!!

重复上一次输入的命令。catch[异常类]

在激活异常时,将自动产生一个断点ignore[异常类]

关闭一条catch命令cont

继续指向行dump[标识]

打印对象的所有域值help?显示所有jdb命令method[类名]

列出此类中的所有方法run[类][参数]

将参数传递给main()方法,并执行它use[源文件路径]

给出jdb调试类所对应的源代码文件的路径1.6Java程序编写及运行的过程(3)JDK工具javaprof.exe。Java剖析工具,提供解释器剖析信息。命令格式:javaprof[选项]选项:-v打印额外信息appletviewer.exe。JavaApplet浏览器。命令格式:appletviewer[-debug]URL选项:-debug表示在jdb中启动

URL指定所嵌入Applet的HTML文件名10.以下叙述中,错误的是()。2007.4A)javac.exe是Java的编译器B)javadoc.exe是Java的文档生成器C)javaprof.exe是Java解释器的剖析工具D)javap.exe是Java的解释器11.JDK中所提供的文档生成器是()。2006.4java.exeB)javap.exeC)javadoc.exeD)javaprof.exe12.在执行Java程序时,将应用程序连接到调试器的选项是()07-4–DB)–debugC)–verbosegcD)-mx

13.在编译Java程序时,用于指定生成class文件位置的选项是().2006-9A)–gB)–dC)-verboseD)-nowarnD)C)B)B)全国计算机等级考试

二级教程

——Java语言程序设计第2章简单数据类型概论大纲要求(1)变量和常量(2)基本数据类型及类型转换(3)Java类库中对简单数据类型的类包装重要考点提示根据对历年真题的分析可知,本章考核内容约占5%,主要包括以下几个方面:(1)Java标识符的命名规则(2)整型变量的3种表示方法(3)转义字符的表示方法及常见转义字符的含义(4)浮点型数据的float和double两种类型(5)数据类型转换(6)各数据类型的表示范围2.1Java标识符的命名规则标识符是用来标识类名、变量名、方法名、类型名、数组名、文件名的有序字符序列。简单地说,标识符就是一个名字。例如:

TestMyIsAClassusername_user$dollarmyNameabflagup12CHANG_LIANG2.1Java标识符的命名规则(1)标识符是以字母、下划线(_)、美元符($)作为首字符的字符串序列,在首字符后面可以跟字母、下划线(_)、美元符($)和数字。(2)标识符区分大小写。Boy与boy是不同的。(3)标识符的字符数目没有限制,但为了便于阅读和记忆,不宜太长。

Java语言使用Unicode字符集,它的字母:’A’--’Z’、’a’—‘z’以及序号大于0xC0的所有符号。有关Unicode字符集的详细信息,可在http://网站上查到。Java中的保留字不允许作为一般标识符应用。常用的保留字有abstract,boolean,break,byte,catch,class,continue,final,new等Java语言中的关键字abstractbooleanbreakbytecasecatchcharclasscontinuedefaultdodoubleelseextendsfalsefinalfinallyfloatforifimplementsimportinstanceof

int

interfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttruetryvoidwhile提示:Java中的常量null,false,true都是小写字母表示,所有数据类型长度的都是固定的,且与平台无关,因此没有sizeof保留字,这也是Java与C语言的不同之处。合法标识符:usernameitUser_sysVar$den$_app非法标识符:2unit#room401roomJava的一般命名规则:(1)_、$不能作为变量名和方法名的开头;(2)变量名、方法名的首字母小写,直至第一个完整的单词结束,其余单词首字母大写;myName(3)接口名、类名单词的第一个字母均大写;IsAClass(4)常量名完全大写。CHANG_LIANG1.下列属于合法Java标识符的是()。2005.9”ABC”B)&5678C)+rriwoD)saler2.下列标识符命名规则中,正确的是()。2006.9类名的首字母小写B)变量和方法名的首字母大写C)接口名的首字母小写D)常量名完全大写3.在Java中,所有数据类型的长度都是固定的,因此没有保留字()。D)D)sizeof

注释是程序中的说明性文字,是程序的非执行部分。在程序中加注释的目的是为了使程序更加易读易理解,有助于修改程序以及他人阅读。Java语言中使用如下三种方式给程序加注释:(1)//注释内容。表示从“//”开头直到此行末尾均作为注释。例如:

//commentline

(2)/*注释内容*/。表示从“/*”开头,直到“*/”结束均作为注释,可占多行。例如:

/*commentononeormoreline*/(3)/**注释内容*/。表示从“/**”开头,直到“*/”结束均作为注释,可占多行。例如:

/**documentingcommenthavingmanyline*/publicclass

HelloWorld{

publicstaticvoid

main(String

args[]){

System.out.println(“HelloWorld!”);

/*在屏幕上输出HelloWorld!*/}}2.2常量与变量变量:定义:变量是在程序的运行过程中其值可以被改变的量。变量有变量名、变量类型、变量属性、变量初值组成。变量名是合法的标识符。变量类型有两大类:基本类型和复合类型。变量属性是描述变量的作用域,按作用域分类有局部变量、类变量、方法参数和异常处理参数。变量初值是该变量的默认值。2.2常量与变量Java中的变量遵循先声明后使用的原则。声明的作用有两点:一是确定该变量的标识符(即名称),以便系统为它指定存储地址和识别它,这便是“按名访问”原则;二是为该变量指定数据类型,以便系统为它分配足够的存储单元。2.2常量与变量常量:定义:是指在程序的整个运行过程中其值始终保持不变的量。

Java语言用final

关键字来定义常量。常量与变量一样也有各种类型。2.2常量与变量常量和变量举例:inta1,b1,c1;//a1,b1,c1变量为整数型intd1,d2=10;//d1,d2变量为整数型,d2的初值为10charch1,ch5;//ch1,ch5变量为字符型final

floatPI=3.1416;

//PI常量为浮点型,值为3.1416

Java语言的数据类型数据类型简单数据类型复合数据类型数值类型字符类型(char)布尔类型(boolean)类(class)接口(inerface)数组整数类型(byte,int,long,short)浮点数类型(float,double)提示:Java语言没有无符号整数类型、指针类型、结构类型、联合类型、枚举类型,这使得Java编程简单易学。2.3简单数据类型——整型数据1.整型常量整数型常量有3种表示形式:

(1)十进制整数。如:56,-24,0。

(2)八进制整数。以零开头的数是八进制整数。如:017,0,0123。

(3)十六进制整数。以0x开头的数是十六进制整数。如:0x17,ox0,0xf,0xD。十六进制整数可以包含数字0~9、字母a~f或A~F。整型常量在计算机中默认值占32位,分byte,short,int和long4类,分别占8,16,32,64位,对于long类型整型常量书写表示时,要在数字后面加l或L。2.3简单数据类型——整型数据2.整型变量

Java语言提供了byte,short,int,long4类型的整型变量。类型存储需求取值范围byte1字节(8位)-128~127short2字节(16位)-32768~32767int4字节(32位)-2147483648~2147483647long8字节(64位)-9223372036854775808~92233720368547758072.3简单数据类型——整型数据2.整型变量

Java语言提供了4个整型常值变量。符号常量名含义十进制值Integer.MIN_VALUEInteger.MAX_VALUELong.MIN_VALUELong.MAX_VALUE最小整数最大整数最小长整数最大长整数-21474836482147483647-92233720368547758089223372036854775807提示:int类型是最常用的整数类型,long类型用于大型计算。整型变量的默认值为0.2.3简单数据类型——整型数据整型变量举例:

bytea,d,h;

//定义a,d,h为字节型变量shortss,ff;

//定义ss和ff为short型的变量int

i,x,y;

//定义i,x,y为int型变量longu1,u2;

//定义u1,u2为long型的变量2.4简单数据类型——浮点型数据浮点型数据属于实型数据,分float和double两种。浮点型数据有数字和小数组成,必须有小数点,小数位数越多,表示越精确。1.实型常量十进制书写格式:如0.256、1.83、256.0等;科学计算格式:

256e3或256E3.

要求e/E之前必须有数字,e/E必须是整数。实型常量在计算机中存储分float和double型,如1.33568E2f或1.33568E2F表示float浮点数,在计算机内存储占32位;如1.33568E2D或1.33568E2d或1.33568E2表示double双精度浮点数,在计算机内存储占64位。提示:如数字后没有任何字母,计算机默认为double型。2.实型变量实型变量举例:floatf1,y1;//定义f1,y1变量是单精度float实型doubles1,p1;//定义s1,p1变量是双精度double实型类型存储需求取值范围float4字节-3.40282347E+38F~3.40282347E+38F(7位有效数据)double8字节-1.7976931348623157E+308~1.7976931348623157E+308(15位有效数据)2.实型变量浮点类型特定值的符号常量表示表符号含义Float.MIN_VALUE1.4e-45Float.MAX_VALUE3.40282347E+37Float.NEGATIVE_INFINITY小于-3.40282347E+38Float.POSITIVE_INFINITY大于Float.MAX_VALUE的数Double.MIN_VALUE5e-324Double.MAX_VALUE1.7976931348623157E+308Double.NEGATIVE_INFINITY小于-1.7976931348623157E+308的数Double.POSITIVE_INFINITY大于Double.MAX_VALUE的数NaN无意义的运算结果2.5简单数据类型——布尔型数据布尔型数据只有两个值:true(真)和false(假)。一般用于逻辑判断,在计算机内存占一个字节。默认值为false。布尔型变量举例:

boolean

tt=true;//定义tt变量为布尔型,初值为true.2.6简单数据类型——字符型数据用单引号括起的单个字符。这个字符可以是Unicode字符集中的任何字符。例如:‘s’,‘F’,‘@’,‘*’。用单引号括起的转义字符。用反斜线“\”开头,后面跟一个字母来表示某个特定的控制符,这便是转义字符。字符串常量是用双引号括起的0个或多个字符串序列。字符串中可以包括转义字符。如:“he","two\n","124\n",""。2.6简单数据类型——字符型数据Java语言中转义字符的描述:

\ddd

表示1-3位的八进制数据(ddd)所代表的字符。

\uxxxx

表示1-4位的十六进制数据(xxxx)所代表的字符。

\’表示单撇号字符

\”表示双撇号字符

\\表示反斜杠字符

\r表示回车

\n表示换行

\b表示退格

\f表示走纸换页

\t表示横向跳格提示:Unicode字符集比ASCII字符集更丰富,它们是16位无符号数据,如“\141”和”\u0061”都表示字符常量’a’.2.6简单数据类型——字符型数据字符变量:char类型的值可转换成int类型,但int类型转换成char型必须强制转换。类型存储需求范围char2字节0-65535intwq,t=5;charrt,s=‘2’;wq=t+s;//wq=55rt=(char)wq;//rt=72.7各类数据之间的转换Java语言的各种数据之间转换有两种:自动转换和强制转换。(1)自动转换只能将位数少的数据类型向位数多的数据类型转换。自动转换的优先级次序如下:

byte,short,char—>int—>long—>float—>double(2)将较长的数据类型转换成较短的数据类型时,只能使用强制转换,通常用赋值语句来实现,在要施加强制转换的变量名前用“()”括上所要强制转换的类型符。例如:shorts;byteb=(byte)s;2.7各类数据之间的转换不同类型数据之间的转换规则:操作数1类型操作数2类型转换后类型byte或shortintintbyte或short或intlonglongbyte或short或int或longfloatfloatbyte或short或int或long或floatdoubledoublecharintint2.7各类数据之间的转换例2.1自动类型转换importjava.io.*;publicclassAutTypeTransition{publicstaticvoidmain(Stringargs[]) { chara='h'; byteb=6;

inti=100; longl=567L; floatf=8.99f; doubled=4.7788;

int

aa=a+i; longll=l-aa; floatff=b*f; doubledd=ff/aa+d;

System.out.println("aa="+aa);

System.out.println("ll="+ll);

System.out.println("ff="+ff);

System.out.println("dd="+dd); }}‘0’-’9’ASCII码48-57‘a’-‘z’ASCII码97-122‘A’-‘Z’ASCII码65-90

int

aa=a+i; longll=l-aa; floatff=b*f; doubledd=ff/aa+d;

System.out.println("aa="+aa);

System.out.println("ll="+ll);

System.out.println("ff="+ff);

System.out.println("dd="+dd); }}‘0’-’9’ASCII码48-57‘a’-‘z’ASCII码97-122‘A’-‘Z’ASCII码65-90运行结果:aa=204ll=363ff=53.94dd=5.0432117474555972.8Java类库中对简单类型数据的类包装在Java语言中,简单数据类型是类包装在类库中的。Boolean,Character,Byte,Double,Float,Integer,Long,Short类都声明为final属性,不能被其他子类继承,利用这些类,可用变量值作为参数来创建对象,并使用它们。例如:Integerint1=newInteger(66);

inta1=Value();4.下列布尔型变量的定义中,正确且规范的是()。2007.9A)BOOLEANcanceled=false;B)booleancanceled=false;C)BooleanCANCELED=false;D)booleancanceled=FALSE;5.下列叙述中,正确的是()。2005.9A)声明变量时必须指定一个数据类型;B)Java认为变量number和Number相同;C)Java中唯一的注释方式是”//”;D)源文件中的public类可以有0或多个。B)A)6.下列代表十六进制整数的是()。2005.9A)0123B)1900C)fa00D)0xa27.在Java中,转义字符\n表示()。2007.48.在Java中,3.14159D表示的是()数。2006.9D)换行双精度浮点全国计算机等级考试

二级教程

——Java语言程序设计第3章Java语言概论大纲要求(1)运算符(2)表达式运算(3)表达式语句重要考点提示根据对历年真题的分析可知,本章考核内容约占7%,主要包括以下几个方面:(1)运算符的分类及相互之间的优先级关系(2)操作数的类型转换(3)表达式结果的处理3.1运算符运算:对各种类型的数据进行加工的过程。运算符:表示各种运算的符号。操作数:参与运算的数据。按运算符所涉及的操作数的数目划分:(1)一元运算符:++,--,+,-。如++a(2)二元运算符:+,-,>。如a+b;

a>b;(3)三元运算符:?:。如a>b?1:0;按运算符的功能划分:(1)算术运算符:+,-,*,/,%,++,--例如:

3+2a-bi++--I(2)关系运算符:>,<,>=,<=,==,!=,例如:

count>3i==0n!=1(3)布尔逻辑运算符:!,&&,||,例如:

flag=true!(flag)flag&&false

按运算符的功能划分:(4)位运算符:>>,<<,>>>,&,|,^,~,例如:

a=10011101;

b=00111001;有如下结果:

a<<3=11101000;a>>3=11110011;a>>>3=00010011;a&b=0001101;a|b=10111101;~a=01100010;a^b=10100100;按运算符的功能划分:(5)赋值运算符=及扩展+=,-=,*=,/=等例如:

i=3;i+=3等效于i=i+3;(6)条件运算符:?:,例如:

result=(sum==0?1:num/sum);(7)其他运算符其他运算符符号功能()表达式加括号优先运算符(参数表)方法参数传递,多个参数时用逗号分割(类型)强制转换类型.分量运算符,用于对象属性或方法的引用[]下标运算符,应用于数组instanceof对象运算符,用于测试一个对象是否是一个指定类的实例new对象实例化运算符,实例化一个对象,即为对象分配内存+字符串合并运算符,如“Hello”+“Java!”等于“HelloJava!”3.2表达式表达式是由操作数和运算符按一定的语法形式组成的符号序列。表达式的类型是指表达式运算结束后的结果的类型。例如:

1.x,y,z都是布尔型变量,则表达式

x&&y||z

就是布尔表达式。

2.num1,num2都是整型变量,则表达式

num1+num2

就是整型表达式。3.3算术运算符和算术表达式算术表达式由操作数和算术运算符组成。在算术表达式中,操作数只能是整型或浮点型数据。(1)一元算术运算符(1)一元加(+)和一元减(-)表示针对某个操作数的符号,其结果为此操作数的正值或负值。一元运算符++op正值--op负值++++op,op++加1----op,op--减1(2)增量运算符(++)将操作数加1,减量运算符(--)将操作数减1.++x,--x表示在使用x之前,先使x的值加(减)1。

x++,x--表示在使用x之后,使x的值加(减)1。注意:粗略的看,++x和x++的作用相当于x=x+1。但++x和x++的不同之处在于,++x是先执行x=x+1再使用x的值,而x++是先使用x的值再执行x=x+1。如果x的原值是5,则:对于y=++x;y的值是6。对于y=x++;y的值是5,然后x的值变为6。例3.1一元算术运算符的使用publicclass

OperationsAndExpression{

voidsingleArithmaticOperator(){

floati=2.0f,j=10.0f;

intm=20,n=10;

System.out.println((++i)*(j--));

System.out.println("i="+i+",j="+j);

System.out.println((i++)*(j--));

System.out.println("i="+i+",j="+j);

System.out.println((--m)*(n++));

System.out.println("m="+m+",n="+n);

System.out.println((m--)*(n++));

System.out.println("m="+m+",n="+n);}

运行结果:30.0i=3.0,j=9.027.0i=4.0,j=8.0190m=19,n=11209M=18,n=12

publicstaticvoidmain(Stringargs[]){

OperationsAndExpression

OperAndExp=newOperationsAndExpression();

OperAndExp.singleArithmaticOperator();}}(2)二元算术运算符二元算术运算符有两个操作数,由两个操作数加一个二元算术运算符可构成一个算术表达式。二元算术运算符共有5个。类别运算符用法描述二元运算符+op1+op2加-op1–op2减*op1*op2乘/op1/op2除%op1%op2取模(求余)(2)二元算术运算符二元算术运算符适用于所有数值型数据类型,包括整型和浮点型。如果操作数全为整型,只要其中有一个是long型,表达式结果也为long型。两个操作数全是byte或short型,表达式结果是int型。两个操作数是浮点型,只要其中一个为double型,表达式结果为double型,否则为float型。例3.2二元算术运算符的使用publicclass

OperationsAndExpression{

voiddoubleArithmaticOperator(){

System.out.println(9/2); System.out.println(5/2.0); bytex=3,y=4; longr=80L;

System.out.println(r/y);

System.out.println(x*y); floatz=12.5f,w=5.5f;

System.out.println(z+w);

System.out.println(z-x); }

运行结果:42.5201218.09.5publicstaticvoidmain(Stringargs[]){

OperatorsAndExpressions

OperAndExp=new

OperatorsAndExpressions();OperAndExp.doubleArithmaticOperator();}}

例3.3取模运算符在整数和浮点数中的使用publicclassOperatorsAndExpressions3{

voidresidual(){

inti=10,j=3; floatm=213.5f,n=4.0f;

System.out.println(i%j);

System.out.println(m%n); }

publicstaticvoidmain(Stringargs[]){ OperatorsAndExpressions3OperAndExp=newOperatorsAndExpressions3();

OperAndExp.residual(); }} 运行结果:11.5(2)二元算术运算符Java对“+”进行了扩展,使它能够进行字符串的连接。如”abc”+”de”得到字符串”abcde”“+”能够将字符串和其他类型的数据进行连接,其结果是字符串。如“abc”+3得到字符串“abc3”3.0+“abc”得到字符串“3.0abc”如果“+”运算符的第一个操作数是字符串,则Java系统会自动将后续的操作数类型转换为字符串类型,然后再进行连接;“abc”+3+4+5结果是“abc345”如果“+”运算符的第一个操作数不是字符串,则运算结果由后续的操作数决定。如

3+4+5+“abc”结果是“12abc”,而不是“345abc”;例3.4“+”运算符在字符串中的使用

intx=3,y=4,z=5; Strings="xyz=";

System.out.println(x+y+z);

System.out.println(s+x+y+z);

System.out.println(x+y+z+s); System.out.println("abc"+3); System.out.println(3.0+"abc");运行结果:12xyz=34512xyz=abc33.0abc(3)算术运算符的优先级在稍微复杂一些的算术表达式中,算术运算符的优先级的次序排列为:

1)++和--的级别最高;

2)*和/及%次之;

3)+和-级别最低另外,通过括号可以明显地改变运算的顺序。例3.5算术运算符的优先级

inta=10,b=4,c=20,d=6;

System.out.println(a+b*c+d);

System.out.println(a+c%b);

System.out.println(a++*b+c*--d);运行结果:9610140精题1阅读下面的程序

Publicstaticvoidmain(Stringargs[]){System.out.println(34+56-6);System.out.println(26*2-3);System.out.println(3*4/2);System.out.println(5/2);}程序的运行结果是()。2007.9A)B)C)D)844962902562.584231226849142.5A)精题2阅读下面的程序

publicclassIncrement{publicstaticvoidmain(Stringargs[]){

intc=5;

System.out.println(c);

System.out.println(c++);

System.out.println(c);}}程序的运行结果是()。2006.9A)B)C)D)566556677666B)精题3下列关于算术运算符的说法中,不正确的一个是()A)一元加运算符只是表示某个操作数的符号,运算结果为该操作数的正值。B)增量运算表达式作为其他表达式的操作数时,++运算符在操作数的左边和右边,整个表达式的运算结果是不同的。C)增量运算表达式作为其他表达式的操作数时,++运算符在操作数的左边和右边,整个表达式的运算结果是相同的。D)二元算术运算表达式应该有两个操作数。C)精题4下列对于二元算术表达式的说法正确的一个是()A)若两个操作数都是float型,则表达式的结果为float型。B)若两个操作数都是float型,则表达式的结果为double型。C)若一个操作数是float型,另一个是int型,则表达式结果为int型。D)若一个操作数是float型,另一个是double型,则表达式结果为float型。A)3.4关系运算符和关系表达式关系运算符用来比较两个操作数的关系。关系运算符的运算结果是boolean型。当运算符对应的关系成立时,运算结果是true,否则是false。不能用0或1来代替false或true。结果为数值型的变量或表达式可以通过关系运算符形成关系表达式,例如,4>8,(x+y)>80.关系运算符运算符用法返回true的情况>op1>op2op1大于op2>=op1>=op2op1大于或等于op2<op1<op2op1小于op2<=op1<=op2op1小于或等于op2==op1==op2op1与op2相同!=op1!=op2op1与op2不等3.4关系运算符和关系表达式例如:表达式15>18的值为false表达式15<18的值为true表达式15>=18的值为false表达式15<=18的值为true表达式15==18的值为false表达式15!=18的值为true例3.6用于基本类型数据和复合类型数据的“==”运算符publicclassOperatorsAndExpressions{voidequalsMethod(){

//基本数据类型之间的比较

inti=10,j=15;

System.out.println(i==j);

//复合数据类型的数据之间的比较

Strings1=newString("Howareyou"); Strings2=newString("Howareyou"); System.out.println(s1==s2);}publicstaticvoidmain(Stringargs[]){

OperatorsAndExpressions

OperAndExp=new

OperatorsAndExpressions();

OperAndExp.equalsMethod(); } }对于复合数据类型数据的“==“运算,其比较的目标是两个操作数是否是同一个对象。要比较两个对象的值是否相同,则用equals()方法。equals()方法在在Java的根类Object中其功能跟“==“运算符一样,是比较两个操作数是否是一个对象。equals()方法在自己定义的类中,功能也是跟“==”运算符一样,除非自己定义的类中重写了equals()方法。Java类库中许多子类都重写了equals()方法,使其功能变为比较两个操作数的内容是否一样。如String。Object类equals()的功能是比较两个对象是否是一个对象自己定义的类(没有重写equals())自己定义的类(重写了equals()方法)String等类equals()的功能是比较两个对象是否是同一个对象equals()的功能是比较两个对象的值是否相等例

3.7

符publicclassOperatorsAndExpressions{voidequalsMethod2(){

Strings1=newString("Hello"); Strings2=newString("Hello"); System.out.println(s1==s2); System.out.println(s1.equals(s2));

classMyValue{

inti; }

MyValuev1=newMyValue();

MyValuev2=newMyValue(); v1.i=v2.i=2009; System.out.println(v1.equals(v2)); }publicstaticvoidmain(Stringargs[]){}……}1.下列关于equals()方法和==运算符的说法,不正确的是()。equals()方法可以用来比较复合数据类型的数值是否相等。==运算符可以用来比较简单数据类型的数据值是否相等。==运算符和equals()方法的功能一样,可以相互替换。==运算符和equals()方法的功能不完全一样,不可以相互替换。C)练习classA{intb=0;}publicclassex65{ publicstaticvoidmain(Stringargs[]){ ex65t=newex65();

t.method(); } voidmethod(){ AA1=newA(); AA2=newA(); A1.b=A2.b=12;

booleanb=A1.equals(A2);

System.out.println(b); } }运行结果为()。A)trueB)falseC)1D)0B)3.5布尔逻辑运算符和布尔逻辑表达式布尔逻辑表达式有关系表达式和布尔运算符组成。,实现对关系表达式的值进行布尔逻辑运算,运算结果也是布尔型。逻辑运算符运算符用法含义结合方向&&||!op1&&op2op1||op2!op1逻辑与逻辑或逻辑非左到右左到右右到左&&、||是二元运算符,!为一元运算符。&&,||运算采用“短路”的方式计算。先计算出左侧表达式的值。(1)运算符&&左边的表达式值若为false,则不用计算右边的表达式的值,整个表达式的值为false。(2)运算符||左边的表达式值若为true,则不用计算右边的表达式的值,整个表达式的值为true。关系运算符和布尔逻辑运算符的优先级关系!优先级最高其次是>、>=、<、<=再次是==和!=然后&&优先级最低的是||使用括号可以改变优先级次序例3.10intx=10,y=8;booleanb=true;System.out.println(x>0&&x<y||b);System.out.println(x<y||!b);System.out.println(x==10&&y!=8);精题1.阅读下面的程序:

booleana=false;

booleanb=true;

booleanc=(a&&b)&&(!b);程序运行的结果是()。A)c=falseB)c=true2.表达式(12==0)&&(1/0<1)的值为()。3.表达式(3!=0)||(3.0/0.0<=2.0)的值为()。A)falsetrue4.布尔逻辑表达式!((true&&false)||false)的值为()。true3.6位运算符和位运算表达式位运算表达式由操作数和位运算符组成,实现对整数类型的二进制进行位运算。运算符表达式含义~~op按位取反&op1&op2按位与|op1|op2按位或^op1^op2按位异或>>op1>>op2op1按位右移op2位<<op1<<op2op1按位左移op2位>>>op1>>>op2op1添零右移op2位1.按位取反:~

例如:10111010取反后变为010001012.按位与:&

(1)按位与可以用来屏蔽特定的位(2)可以用来取某个数中某些指定的位例如:inttheBit=i&16;

//16的二进制为100003.按位或:|

(1)按位或可以用来置某些特定的位为1例如:将整型变量i的第4位和第5位置1,可用语句

intsetBit=i|24;//24的二进制为110004.按位异或:^

两个相应位相同则为0,否则为1.(1)可以使某个整型数的特定位的值翻转。例如:对整型变量i的第4位翻转

intrevert=i^8;//8的二进制为1000(2)可以不用临时变量完成两个值的交换

例如:inta=15,b=24;//a(00001111),b(00011000)

a=a^b;//a(00010111),a=23

b=b^a;//b(00001111),b=15

a=a^b;//a(00011000),a=245.不同长度的数据进行位逻辑运算例如:x|y

其中x为long型,y为int型(char)则系统首先会将y的左侧32位(48位)填满。(1)若y为正数,则左侧填满0;(2)若y为负数,则左侧填满1;

位逻辑运算表达式返回两个操作数中数据长度较长的数据类型。

6.补码的概念在Java

温馨提示

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

评论

0/150

提交评论