第1章 Java开发环境和运行环境【Java程序设计】
- 格式:ppt
- 大小:2.85 MB
- 文档页数:25
第1章Java语言概述本章知识目标:❑了解面向对象程序设计的特性。
❑掌握Java应用程序和Applet程序的调试过程。
❑了解Java的开发与运行环境。
❑了解Java语言的特点。
Java语言从1995年问世至今,得到众多厂商的支持,成为软件开发的主流技术。
Java 是面向对象的程序设计语言,拥有跨平台、多线程等众多特性,在网络计算中得到广泛应用。
1.1 面向对象程序设计的特性早期的编程语言如Fortran、C等都是面向过程的语言,面向过程编程的一个明显特点是数据与程序是分开的。
但随着计算机软件的发展,程序越做越大,软件维护也日益困难。
面向对象编程贴近于人类思维方式,面向对象的软件开发将事物均看作对象,对象有两个特征:状态与行为,对象可以通过自身的行为来改变自己的状态。
最新的程序设计语言一般为面向对象的语言,面向对象程序设计具有如下四大特性。
1.封装性(Encapsulation)面向对象的第一个原则是把数据和对该数据的操作都封装在一个类中,类的概念和现实世界中的“事物种类”是一致的。
例如,电视机就是一个类,每台电视机都有尺寸、品牌、频道等属性。
我们可用on/off开关来开启电视,通过更改频道让电视机播放不同的节目。
对象是类的一个实例化结果,对象具有类所描述的所有属性以及方法。
对象是个性化的,在程序设计语言中,每个对象都有自己的存储空间来存储自己的各个属性值,有些属性本身又可能由别的对象构成。
每个对象都属于某个类。
面向对象程序设计就是设计好相关的类,类中有属性和方法。
在统一建模语言UML中使用如图1-1所示的符号来描述对象和类的结构,其中,属性用来描述对象的状态,而方法则用来描述对象的行为。
2.继承性(Inheritance)继承是在类、子类以及对象之间自动地共享属性和方法的机制。
类的上层可以有父类,下层可以有子类,形成一种层次结构,如图1-2所示。
一个类将直接继承其父类的属性和方法,而且继承还具有传递性,因此,它还将间接继承所有祖先类的属性和方法。
Java语言程序设计基础篇(第八版)课件_完整版第一章 Java语言概述Java是一种跨平台的编程语言,可在各种操作系统上运行。
它是一种面向对象的语言,具有高度的可移植性和可扩展性。
本章将介绍Java语言的特点、发展史和应用领域。
同时,还会介绍编写Java程序的开发环境和运行环境。
1.1 Java语言特点Java语言具有以下特点:•简单易学、易于使用•面向对象的设计思想•可移植性强•安全性高•高性能1.2 Java语言的发展史Java最早由Sun Microsystems于1995年发布。
自发布以来,Java已经逐渐成为全球范围内最流行的编程语言之一。
Java的发展历程经历了以下几个版本:•JDK 1.0(1996年)•JDK 1.1(1997年)•J2SE 1.2(1998年)•J2SE 1.3(2000年)•J2SE 1.4(2002年)•J2SE 5.0(2004年)•Java SE 6(2006年)•Java SE 7(2011年)•Java SE 8(2014年)1.3 Java语言的应用领域Java语言的应用范围很广,它可以用于开发各种应用程序,如:•企业级应用软件•移动应用程序•互联网应用程序•游戏开发•操作系统1.4 Java语言的开发环境Java语言的标准开发环境包括以下几个部分:•JDK(Java Development Kit,Java开发工具包)•Eclipse、NetBeans等集成开发环境1.5 Java语言的运行环境Java程序在运行时需要Java虚拟机(JVM)的支持,JVM可以在各种操作系统上运行。
因此,Java程序的可移植性非常强。
同时,JVM还提供了一些优化,可以使Java程序运行得更快。
第二章 Java编程基础2.1 程序结构Java程序的基本结构包括以下几个部分:•包声明•导入语句•类声明2.2 变量和常量Java中的变量有以下几种类型:•整型•浮点型•字符型•布尔型Java中的常量有以下几种类型:•整型常量•浮点型常量•字符型常量•布尔型常量2.3 运算符Java中的运算符包括以下几种类型:•算术运算符•关系运算符•逻辑运算符•位运算符•赋值运算符2.4 流程控制语句Java中的流程控制语句有以下几种类型:•if语句•switch语句•for语句•while语句•do…while语句第三章 Java面向对象编程基础3.1 面向对象编程概述面向对象编程是一种编程范式,它通过封装、继承和多态,使程序结构更清晰、更易于维护。
Java语言程序设计(一)电子版教材 Java4747第1章 java 语言基础本章内容一般掌握 35本章重点应用程序和小应用程序的基础知识程序的开发过程基本数据类型本章难点程序的开发过程了解一种Java程序的开发环境11 Java 语言特点Java 语言最初的应用对象是消费性电子产品即PDA 电子游戏机电视机顶盒之类的产品为了进入消费性电子产品市场SUN 公司专门成立了一个项目开发小组目标是设计嵌在消费性电子产品的小型分布式系统软件能够适用于异构网络多主机体系结构能实现信息安全传递项目小组的最初设想是用C语言完成这个目标由于 C语言的复杂性和不安全性不能胜任这项工作为此项目小组开发一个取名为Oak的语言Oak 语言在消费性电子产品市场上没有获得青睐但在当时Internet 开始流行人们发明了一种网络传输协议这种协议可以在文本中插入图片和声音能使单调的Internet世界变得图文并茂虽然Web页面拥用图文和声音但仍然是静态的不具备交互性要让页面拥有动态画面并能交互需要在Web页面中嵌入一会段程序由于在 Internet上运行的数以千计不同类的计算机这就要求编写这种程序的语言必须具有平台无关性并要求语言必须简练支撑环境要小而安全性却很高Oak语言恰好能够满足这些要求将Oak 语言正式应用于Internet还需要进一步完善还要求有一个支持它的Web浏览器能用于编写浏览器并获得浏览器扶持的新版本Oak语言取名JavaInternet得到Java 语言的支持可以实现真正的交互人们使用浏览器能漫游丰富多彩的Internet世界Java语言是适用于分布式计算环境的面向对象编程语言它虽类似C和C但比C简单忽略了许多为提高计算效率初学者较难掌握的程序语言特性Java语言主要有以下特点1.强类型Java语言是一种强类型语言强类型能约束程序员必须遵守更多的编程规定也能让编译器检测出程序中尽可能多的错误2.编译和解释Java语言是一种高级编程语言用Java语言编写的源程序在计算机上运行需经过编译和解释执行两个严格区分的阶段Java语言的编译程序先将Java源程序翻译成机器无关的字节码 bytecode 不是通常的编译程序将源程序翻译成计算机的机器代码运行时Java的运行系统和链接需要执行的类并作必要的优化后解释执行字节码程序3.自动无用内存回收功能Java语言具有自动无用内存回收功能程序可以按需使用内存但不需要对无用内存显式地撤销分配系统有一个垃圾收集器 garbage collector 自动收集程序不再使用的内存这样能避免显式的撤销分配所引起的安全问题Java语言不再含有任何不安全的语言成分例如没有指针数组元素都要检查下标是否越界4.面向对象面向对象是程序员编写大型程序有效控制程序复杂性的重要手段Java语言在面向对象方面比C更纯它的所有数据类型包括布尔类型整形字符型等都有相应的类程序可完全基于对象编写面向对象语言主要有封装性继承性和多态性三个特点封装就是将实现细节隐藏起来只给出如何使用的信息数据及数据上的操作用类封装对象是类的实例外界使用对象中的数据及可用的操作受到一定的限制继承体现众多的一种层次对象的特性下一层的类可从上一层的类继承定义从上一层类派生的类的对象能继承上一层对象的特性同时可以改变和扩充一些特性以适应其自身的特点多态性的意义主要体现在逻辑上相同的不同层次上的操作使用相同的操作名根据具体对象能自动选择对应的操作Java语言很实用地实现了这三种特性5.与平台无关与平台无关是对程序可移植性最直接最有效的支持Java 语言的设计者在设计时重点考虑了Java程序的可移植性采用多种机制来保证可移植性其中最主要的是定义了一种虚拟机 virtual machine 以及虚拟机使用的java字节码在任何平台上Java源程序被Java编译器编译成虚拟机能够识别的字节码这样只要有Java虚拟机的平台就能解释执行java 字节码程序从而实现 Java与平台无关另外Java语言还采用基于国际标准的数据类1177Java4747型在任何平台上同上种数据类型是一致的例如用int标识32位二进制位 bit 整型数据那么无论在哪一台计算机上Java的int数据都是32位整数相反C语言会随着硬软件平台的改变用int标识的整数位数也可能不全相同Java语言提高可移植性的代价是降低程序的执行效率出于java语言也是一种解释执行的语言Java程序的执行速度与C程序的执行速度有较大的差别不过为了尽量弥补执行效率低的缺陷java的字节码在设计上非常接近现代计算机的机器码这有助于提高解释执行的速度6.安全性Java是在网络环境中使用的编程语言必须考虑安全性问题主要有以下两个方面设计的安全防范Java语言没有指针避免程序因为指针使用不当访问不应该访问的内存空间提供数组元素上标检测机制禁止程序越界访问内存提供内存自动回收机制避免程序遗漏或重复释放内存运行安全检查为了防止字节码程序可能被非法改动解释执行前先对字节码程序作检查防止网络黑客对字节码程序已作了恶意改动达到破坏系统的目的最后浏览器限制下载的小应用程序不允许访问本地文件避免小应用程序破坏本地文件7.分布式计算Java语言支持客户机服务器计算模式Java程序能利用URL对象能访问网络上的对象如同访问本地的文件一样实现数据分布另外Java的客户机服务器模式也可以把计算从服务器分散到客户机端实现操作分布8.多线程线程是比进程更小的一种可并发执行的单位每个进程都有自己独立的内存空间和其他资源当进程切换时需要进行数据和资源的保护与恢复若干协同工作的线程可以共享内存空间和资源线程切换不需要数据的保护与恢复Java的运行环境采用多线程实现可以利用系统的空闲时间执行诸如内存回收等操作Java语言提供语言级多线程支持用Java语言能直接编写多线程程序12 Java应用程序和小应用程序Java程序可以是独立的应用程序和能在浏览器上执行的小应用程序 Applet 两种Java程序都由一个或多个扩展名为class的文件组成都需要java虚拟机 JVM 载入并翻译这两种程序的主要区别是小应用程序只能在与Java兼容的容器中运行可以嵌入在6>HTML网页内在网络上发布当网页被浏览时在浏览器中运行小应程序的运行还要受到严格的安全限制例如它不能访问用计算机上的文件Java应用程序没有这些限制也不支持网页嵌入和下载运行小应用程序和应用程序在代码编写上也有很大差异一个小应用程序必须定义成一个 Applet类的子类应用程序可以是Applet类的子类也可以不是应用程序必须在一个类中定义一个main 方法该方法代表应用程序的入口而小应用程序不必定义main 方法它的执行由Applet类中定义的多个方法控制[例 11] 一个非常简单的应用程序public class Example1_1 这是我的第一个应用程序public static void main String []argsSycomtln 你好欢迎你学习Java语言上述java程序的执行将输出以下字样你好欢迎你学习Java语言一个应用程序由若干个类组成上面这个应用程序只有一个类类的名字是Example1_1public是java语言的关键字表示声明的类Example1_1是公用的class也是关键字用来声明类最外层的一对花括号以及括号内的内容叫做类体public static void main String []args 是类Example1_1的一个方法一个应用程序必须只有一个类含有main 方法这个类是应用程序的主类public static void 是对main 方法的说明应用程序的main 方法必须被说明成public static void表示main 方法的访问权限是公有的它是一个类方法没有结果返回参见第3章String[]args或String args[]声明main 方法的参数是一个字符串数组参见第4章Java 源程序命名受严格的限制Java 源文件的扩展名必须是java如果源文件中有多个类那么只能有一个public类如果源文件中有 public 类那么源文件的名字必须与这个类的名字完全相同例如例11应用程序的源文件名必须是Example1_1java如果源文件没有public类那么源文件的名字只要和某个类的名字相同即可2177Java4747[例12]一个简单的小应用程序用一同颜色显示两行文字欢迎你学习Java语言只要认真学习多上机实习一定能学好Java语言import javaappletimport javaawtpublic class Example1_2 extends Appletpublic void paint Graphics ggsetColor Colorblue 设置显示的颜色为bluegdrawString 欢迎你学Java语言3020gsetColor Colorred 设置显示的颜色为redgdrawString 只要认真学习多上机实习一定能学好Java语言3050一个小应用程序也出若干个类组成其中必须有一个类它继承系统提供的Applet类这个类是小应用程序的主类主类必须是public的源文件名必须与小应用程序的主类名相同上述程序的源文件名必须是Example1_2java小应用程序的结构参见35节在结束这一节之前先讨论一下程序中经常出现的注释注释是程序中的说明文字用于帮助阅读程序它不是语句不会影响程序的执行效率Java语言的注释有三种形式行注释变量r是贺的半径块注释以下程序段是采用冒泡排序对数组元素实现从小到大排序文档注释类 Student是学生类行注释用于简短地说明前面代码的意义或功能注释内容至行末结束不能跨行例如int fontsize 30 标题字体大小块注释是多行注释用于说明下面程序段的算法功能等块注释不可嵌套使用文档注释能被实用程序javadoc接受它能自动生成程序的HTML文档13 Java程序的开发过程Java程序的开发过程如图11所示对于Java应用程序先编写Java源程序源程序经Java 编译器编译后产生码文件最后由Java解释器解释执行字节码文件对于小应用程序先编写源程序然后经Java编译器编译后产生字节码文件最后由Web浏览器解释执行字节码文件以下以使用SUN公司提供的Java JDK java Developers Kit为例并假设Java JDK 安装在d\java目录下则在该目录下还应包含以下几个文件和子目录1 子目录 d\java\bin这个子目录是Java JDK的核心其中最主要的可执行文件有1 javac---编译器2 java---解释器3 jdb---调试器4 appletviewer---java Applet解释器2 子目录d\java\lib这个子目录存储的是函数库编写源程序时使用一个文字编辑器输入源程序文件并保存键入编译命令使用Java编译器编译Java源程序键入解释命令通过解释器解释执行Java应用程序的字节码文件对于小应用程序需通过支持Java的浏览器解释执行字节码文件设输入前面所述Java程序源文件名为Example1_1java保存在D\java目录下Java编译器的使用格式是javac [选项] 源文件例如可用以下命令编译以上输入的Java应用程序javac d\java\Example1_1java编译时可能编译器指定选项java JDK 编译器的选项参见表 1-13177Java4747选项说明-classpath 引用类的路径表-d 编译后类文件存放的目录-g 生成调试信息表-ng 不生成调试信息表-nowarn 关闭编译器警告功能-o 优化类文件-verbose 显示编译过程中的详细信息Java解释器javaexe用来解释执行Java类文件解释器的使用格式为java [选项]类名[参数]其中类名指定的类必须是main 方法的即是一个Java应用程序对于使用开发环境情况来说编辑源程序编译执行和调试直接使用环境提供的工具使开发程序变得非常简单例如使用Eclipse开发环境在eclipse环境下开发Java程序的方法请参见附录F1.4 标识符和关键字如同别的程序语言一样Java语言也有基本符号由基本符号按一定的构词规则构成标识符等基本词汇再由基本词汇和关键字按语言的句法构成Java程序1.字符集Java语言使用Unicode字符集共有65535个字符包括1 数字符 10个 092 英文字母大小写字符各26个 AZ和az3 下划线字符美元符号4 文字字符汉字日文片假名平假名和朝鲜文字等5 其他用于构成特殊符号的字符集2.标识符标识符用于命名程序对象例如类名变量名方法名等Java 语言的标识符可以按以下规则任意命名1 由字母包括英文字母下划线字符美元字符文字字符和数字字符组成2 限定标识符的第一个字符不能是数字符例如下列4个字符串都可以个为标识符Boy_63Girl颜色小伙子而以下4个字符不能作为标识符46AValc2Hello前两是因为首字符不合理后两个含有不允许在标识符中出现的字符除了按上述规则命名的习惯约定一般变量名方法名用小写英文字母开头文字和常数用大写字母命名类名首字母用大写字母包名全部用小写字母命名习惯是一种公共约定Java语言的语法并没有这种限制但是培养良好的编程习惯有利于程序维护和协作开发3.关键字为了表示程序结构定义和修饰等Java 语言引入一组关键字参见附录 A关键字是上些英文单词在语言中关键字已经被赋予特定的意义不能用这些关键字作为标识符命名程序对象在Java语言中关键字的作用有以下多个方面描述程序结构声明类定义类的成员简单数据类型值和变量异常情况处理实例对象的创建和检验流程控制等Java语言中所有关键字均由小写字母组成每个关键字在程序中出现有特定位置和使用方法的要求关键字不可以用做变量方法类或标号的标识符名字15 基本数据类型Java语言是强类型语言每个变量和表达式都有确定的类型在变量赋值时要进行类型兼容性检验数据类型可分4177Java4747为基本数据类型和非基本数据类型两大类基本数据类型也称为原始数据类型是系统预先规定的一些常用类型它们是整数类型浮点数实数类型字符文字类型逻辑类型布尔型非基本数据类型也称为复合数据类型是由基本类型组合的新类型非基本数据类型分为数组字符串类接口本小节只介绍基本数据类型非基本数据类型将在以后章节中分别介绍com 逻辑类型逻辑类型用关键字boolean标识所以也称布尔型逻辑类型只有真和假两个值true 表示真false 表示假以下是逻辑变量定义的例子boolean b boolean boolboolean flg1flg2 美丽一次定义多个变量boolean b1 trueb2 false丑 false定义时可以赋初值逻辑变量用于记录某种条件成立与否也用语句中作条件判断com 字符类型字符类型用关键字 char 标识字符型数据是一个字符内部表示是字符的 Unicode 代码共用 65535 个不同的字符在Java程序中字符常量有普通字符和转义字符常两种用单引号括住一个字符表示一个普通字符常量例如aB国对于被语言用作特定意义的字符或者不能显式显示的字符需用转义字符标记它们例如换行符用\n标记水平制表符用\t标记常用的转义字符的标记方法见表 1-2其中\nnn 是用八进制代码表示的字符\unnnn 是用十六进制代码表示的字符例如\141 表示字母 a\u0061 也表示字母 a以下是字符变量定义的例子char ch char ch1ch2漂亮char ch3 Ach4 家丑假定义时可以赋给初值表1-2转义字符及其含义转义符含义\b 退格 Backspace键\n 换行符光标位置移到下一行首\r 回车符光标位置移到当前行首\t 水平制表符 Tab键\v 竖向退格符\f 走纸换页\\ 反斜杠符\\ 单引号符\ 双引号符\nnn n为8进制数字用八进制数据表示字符的代码\unnnn n为16进制数字用16进制数据表示字符的代码com 整数类型整数是不带小数点和指数的数值数据由于计算机只能表示整数的一个子集表达更大范围内的整数需要更多的二进制位Java语言将整型数据按数值范围大水不同分成四种31 311 基本型用int标识4个字节32位取值范围是-2 2 -1即-214748364821474836477 72 字节型用byte标识1个字节8位取值范围是-2 2 -1即-12812716 163 短整型用short标识2个字节16位取值范围是-2 2 -1即-23768327674 长整型用long标识8个字节64位取值范围是-2 2 -1即-923372036854775808L923372036854775807L每种整数类型处理不同范围的整数值并且都是带符号的整型常量有十进制八进制和十六进制三种写法如下面的示例所示1234 十进制 0777 八进制以数字0开头 0x3ABC 十六进制以 0x开头后随数字符和英文A到F 5333L或5333l 以字母L或l结尾是长整数以下是整型变量定义的实例int Iint x积byte 字节变量一个字节整型变量该变量的名为字节变量5177long zsumint w 12len -1230long big 9876L定义同时可以赋初值com 浮点数类型浮点数类型也称实型浮点数是带小数点或指数的数值数据 Java语言的浮点数有单精度和双精度两种1.单精度型38 38单精度型用float标识占4个字节32位取值-10 10 float型常是的书写的方法是在实数之后加上字母 F或f例如2354f12389987F2.双精度型308 308双精度型用double标识占8个字节64位取值-10 10 double型常是的书写的方法有两种一种是直接写一个实数或在实数后面加上字母D或d例如12354391235439D 1235439d另一种是科学计数法用10的方幂表示用字符e或E表示幂底10 例如12324e40 科学计数法表示值为12324乘10的40次方以下是浮点数类型变量定义的例子float xydouble v 1286u 2431098987Dfloat u 1236f浮点数类型与整数不同当执行运算时如果出现某种不正常的状态浮点数类型不会抛出异常例如如果用0除浮点数类型的变量则计算结果是一个特别的无限值习题1.指出Java语言的主要特点和Java程序的执行过程答主要特点1 强类型2 编译和解释3 自动无用内存回收功能4 面向对象5 与平台无关6 安全性7 分布式计算8 多线程Java 程序的执行过程是解释执行1javac [选项] 源文件编译2.java [选项] 类名[参数] 执行2.说出开发与运行Java程序的主要步骤3.如何区分应用程序和小应用程序4.说出Java源文件的命名规则5.选择一种上机环境参照实例编写一个输出hello world字样的Java程序6. Java语言使用什么字符集共有多少个不同的字符7. Java语言标识符的命名规则是什么8. Java有哪些基本数据类型它们的常量又是如何书写的9.指出下列内容哪些是Java语言的整型常哪些是浮点数类型常量哪些两者都不是1 E-42 A4233 -1E-314 0xABCL5 32E316 0877 0xL8 0039 0x12510 0771111E12 056L13 014 06177Java4747第2章运算和语句本章主要内容次重点 10数据运算语句Java程序实例本章重点算术运算自增和自减运算关系运算和逻辑Java语句以及java程序实例本章难点自增和自减运算位运算和移位运算while 语句dowhile语句for语句和 Java程序实例2.1 数据运算在高级语言中运算由表达式表示表达式由运算符和运算分量组成运算分量可以是常量变量和方法调用Java语言的基本运算可分成以下几类赋值运算算术运算自增和自减运算关系运算逻辑运算条件运算和字符串连接运算等2.1.1 赋值运算在Java语言中符号是赋值运算符不是相等相等运算符是见关系运算符的叙述赋值运算分为两类一是简单赋值运算二是复合赋值运算1.简单赋值运算简单赋值运算的一般形式如下变量表达式赋值运算的执行过程是1 计算赋值运算符的右端的表达式2 当赋值运算符两侧不一致时将表达式值的类型自动转换成变量的类型3 将表达式的值赋值给变量即存储到与变量对应的存储单元中完成一个赋值运算的表达式称为赋值表达式赋值表达式是先计算表达式的值然后将表达式的值赋值给变量例如表达式x x1表示完成表达式x1的计算将计算结果赋值给变量x这里的类型转换是指数值数据的类型自动转换这样的自动转换只能由简单类型向复杂类型转换不能从复杂...的转换成简单的即如下所示的从左到右转换byte- short- int- long- float- double例如以下代码说明int类型能自动转换成double类型int j 3double y 20y jj的值为3y的值为30以下则是不正确的代码double 类型不能自动转换成int 类型j yJava语言约定赋值运算也有值它的值就是赋予变量的值因此赋值运算的结果可以继续赋值例如int jdouble y 20y j 3j的值为3y的值为30赋值运算符结合性自右至左当连续有多上赋值运算时是从右至左逐个赋值2.复合赋值运算在程序中经常遇到在变量现在值的基础上作某种修正的运算例如x x5这类运算的特点是变量既要参与运算又要接受赋值为避免对同一个变量的地址重复计算引入复合赋值运算符常用的复合赋值运算符有-例如x 5等价于x x5x uv等价于x x uv 这里括号不能省略a a- b2等价于a a a a- b2记θ为某个双目运算符复合赋值运算7177Java4747 xθ e的等效表达式为x xθ e当e是一个复杂表达式时等效表达式的括号是必需的 2.1.2算术运算算术运算要求运算分量的类型是数值类型的整数类型和浮点数类型运算时只需一个运算分量的是单目运算需两个运算分量的是双目运算算术运算的运算符是单目算术运算符+取正-取负双目算术运算符+加-减*乘除%求余数说明1 加减乘除和求余数运算都是双目运算符结合性都是从左至右取正和取负是单目运算符结合性是从右至左其优先级高于+-*%等双目运算符2 为除法运算符当除数和被除数均为整数类型数据时则结果也是整数类型数据例如74的结果为13 %为求余数运算符求余数运算所得结果的符号与被除的符号相同例如5%3的结果为2-5%3的结果为-25%-3的结果为2用算术运算符运算分量和括号连接起来符合Java语言语法规则的计算式称为算术表达式例如如果变量x和y已经被正确声明并且已经赋予初值则以下的式子就是一个正确的算术表达式X2y x-5com 自增和自减运算自增运算符和自减运算符--是单目运算符要求运算分量是数值类型的变量其作用是变量的值增1或减1这两个运算符与变量结合有以下四种可能形式i前缀形式表示在引用变量i之前先使i加1以加1后的i 值为运算结果--i前缀形式表示在引用变量i之前先使i减1以减1后的i值为运算结果i后缀形式表示在收用变量i之后才使i加1即以增1前的i 值为运算结果i--后缀形式表示在引用变量i之后才使i减1即以减1前的i值为运算结果例如i 4j ii结果为5j的结果为5i 4j ii结果为5j的结果为4i 4j --ii结果为3j的结果为3i 4j i--i结果为3j的结果为4上述例子说明对变量采用自增或自减用前缀形式或用后缀形式对变量本身来说效果是相同的但表达式的值不相同前缀形式是变量运算之后的新值后缀形式是变量运算之前的值自增自减运算能使程序更为简洁和高效但在使用时需注意++和――运算的运算只能是变量不能是常量或表达式例如4或ij都不是合法的com 关系运算关系运算用来表达两个表达式值的比较运算结果是布尔型有6上关系运算符<小于<=小于等于>大于>=大于等于==等于=不等于关系运算对左右两侧的值进行比较如果比较运算的结果成立则值为true不成立为false上述6个关系运算符的优先级不完全相同<<=>>=的优先级高于===。