1、 Java开发环境 Java语言基础 控制结构 了解JAVA开发环境 掌握J2SDK的安装和环境变量的设置方法 理解path和classpath的作用 学会创建第一个java应用程序并成功运行 初步掌握编写java程序的注意事项Java源程序源程序(.java文件文件)Java编译器编译器Java Bytecode(.class文件文件)RuntimeInterpreterBytecode 载入器载入器字节码校验器字节码校验器JITHardwareJava平台的概念 平台:为程序提供运行环境的硬件和操作系统的总称 Java平台:纯软件的,为Java提供统一的运行环境Java平台的组成结构 Ja
2、va虚拟机(JVM)Java应用程序接口(Java API)Java类库 Java平台的组成结构平台的组成结构 Java虚拟机:解释并运行Java二进制码 Java API:由许多软件包组成,这些软件包可以实现很多功能,包括图形界面功能 Java应用程序接口的主要内容应用程序接口的主要内容 从http:/网站上免费下载J2SDK(Java2 Software Development Kit),并利用命令行方式操作javac(编译器);java(解释器)Java集成开发环境(IDE)有:NetBeans、Eclipse等 J2SDK的安装(演示)安装安装SDK后产生如下目录结构:后产生如下目录结
3、构:bin目录:Java开发工具,包括Java编译器、解释器等demo目录:一些实例程序lib目录:Java开发类库jre目录:Java运行环境,包括Java虚拟机、运行类库等 javac.exe-Java编译器,用来将java程序编译成Bytecode。java.exe-Java解释器,执行已经转换成Bytecode的 Java应用程序。jdb.exe-Java调试器,用来调试Java程序。javap.exe-反编译(将.class文件还原为.java)。javadoc.exe-文档生成器,创建HTML文件。appletviwer.exe-Applet解释器,用来解释已经转换成Bytecod
4、e的Java小应用程序。设置环境变量设置环境变量在在Windows 2000和和Window XP系统下,系统下,可以选择可以选择【控制面板控制面板】|【系统系统】|【高级高级】|【环境变量环境变量】。在出现的环境变量窗口中。在出现的环境变量窗口中包含包含【用户变量用户变量】和和【系统变量系统变量】,在系,在系统变量框中选择统变量框中选择【path】,单击,单击【编辑编辑】按钮,在弹出的按钮,在弹出的【编辑系统变量编辑系统变量】窗口的窗口的【变量值变量值】框最后加上框最后加上 ;C:JDK安装路径安装路径bin;什么是环境变量 查看环境变量的两种方式 如何设置系统环境变量 path环境变量的作
5、用%path%的意义 如何解决使用java命令中的问题 实际操作讲解classpath的作用 Java解释器是如何处理当前目录的 如何解决当前目录的问题 配置classpath的几个注意事项 1.用记事本编写源程序:用记事本编写源程序:源程序:/*文件名:FirstApp.java*功 能:显示天天好心情!*编写:张三*编写时间:2004.06.03*修改:李四*修改时间:2004.08.15*/public class FirstApp public static void main(String args)/显示天天好心情!System.out.println(天天好心情!);类的名称指明
6、类为公共的类程序的入口程序中的语句命令行参数 英文字母的大小写问题英文字母的大小写问题 Java语言区分大小写,录入时必须严格按这语言区分大小写,录入时必须严格按这里给出的大小写里给出的大小写 特别容易弄错的是特别容易弄错的是“System.out.println”,只有只有System是大写,是大写,out和和println都是小写都是小写 例子对比:例子对比:“FirstApp”和和“firstapp”“System.out.println”,“system.out.println”和和“System.Out.Println”中文标点符号问题 中文的分号和英文的分号很相似,但中文的分号后面
7、有空白,英文的分号后面没有 中文的右引号特别容易在输入中文字符串时出现,往往是在输入中文后随手输入了引号的缘故 例子对比:中文的分号“;”和英文的分号“;”中文右引号,如:天天好心情!”1.1.JavaJava中的基本程序单位是中的基本程序单位是类类,每一个程序中应该每一个程序中应该有一个有一个公共类公共类2.2.public class public class FirstAppFirstApp就是声明了一个公共类就是声明了一个公共类3.3.其中其中FirstAppFirstApp是类的名称是类的名称,是由用户指定的是由用户指定的4.公共类的名称必须与文件名一致公共类的名称必须与文件名一致5
8、.5.每一个每一个JavaJava应用程序必须定义一个应用程序必须定义一个mainmain方法方法 public static void main(String args)public static void main(String args)6.如果在一个如果在一个javajava程序文件中定义了多个类程序文件中定义了多个类,则则只能有一个只能有一个publicpublic的的,mainmain方法方法必须在必须在publicpublic的类里面的类里面 2.保存源程序保存源程序 选定一个目录,如选定一个目录,如C:Java来保存文件来保存文件 在在“文件名文件名”一栏敲入一栏敲入“Firs
9、tApp.java”,“保存类型保存类型”一栏选一栏选“所有文件所有文件”需要注意的问题需要注意的问题 不要忘记了文件保存在什么位置不要忘记了文件保存在什么位置 文件类型要选文件类型要选“所有文件所有文件”,并敲入扩展名,否则,并敲入扩展名,否则可能保存为以可能保存为以txt为后缀的文本文件为后缀的文本文件 3.编译源程序编译源程序 选选“程序程序”“附件附件”“命令提示符命令提示符”:闪烁的光标闪烁的光标 ,表示在这里输入命令。光标,表示在这里输入命令。光标前的前的 为当前路径。为当前路径。敲入:敲入:cd Java,进入,进入 目录下目录下 敲入:敲入:dir,显示该目录下的所有文件,显示
10、该目录下的所有文件其中其中“FirstApp.java”就是保存的就是保存的Java源文件源文件 敲入:敲入:javac FirstApp.java 几秒钟后,如果提示符几秒钟后,如果提示符 重新出现,重新出现,没有提示任何信息,说明编译成功了。没有提示任何信息,说明编译成功了。编译成功之后,将产生一个字节码文件编译成功之后,将产生一个字节码文件FirstApp.class,它的文件名与类名相同,相,它的文件名与类名相同,相当于其它语言程序的可执行文件当于其它语言程序的可执行文件 再次敲入再次敲入dir命令,可以看到多了一个文件:命令,可以看到多了一个文件:字节码文件:以字节码文件:以.cla
11、ss作为文件后缀作为文件后缀 4.执行执行Java程序程序 敲入命令:敲入命令:java FirstApp 运行结果显示如下:运行结果显示如下:祝贺你,你的第一个程序运行成功了!祝贺你,你的第一个程序运行成功了!在在Java中可以编写两类程序:中可以编写两类程序:应用程序(Applications)和Java Applet(小应用程序)。Java Applet是一种可以嵌入到HTML文档(即Web页)中的Java程序。当浏览器装入一个含有applet的Web页时,applet下载到该浏览器中,并开始执行。Applet可以在Internet中传输并在兼容Java的Web浏览器中运行。import
12、 java.awt.*;import java.applet.*;public class HelloWorldApplet extends Applet public void paint(Graphics g)super.paint(g);g.drawString(“Hello World!”,30,30);该程序的功能是:在坐标(该程序的功能是:在坐标(30,30)处输出字符串)处输出字符串“Hello World!”。在这个程序中,没有实现在这个程序中,没有实现main()方法,这是方法,这是Applet与与Application(应用(应用程序)的区别之一。为了运行该程序,首先也应将
13、其保存到一个名为程序)的区别之一。为了运行该程序,首先也应将其保存到一个名为HelloWorldApplet.java的文件中,然后对其进行编译:的文件中,然后对其进行编译:D:Jjavaworkjavac HelloWorldApplet.java这样将得到字节码文件这样将得到字节码文件HelloWorldApplet.class。由于。由于Applet中没有中没有main()方法作为方法作为Java解释器的入口,我们必须编写解释器的入口,我们必须编写HTML文件,然后将文件,然后将Applet嵌嵌入其中,接着使用入其中,接着使用appletviewer来运行,或在支持来运行,或在支持Jav
14、a的浏览器上运行。的浏览器上运行。该HTML文件如下。My Applet 其中,使用标记来启动HelloWorldApplet,code属性指明字节码所在的文件,width和height属性指明applet所占区域范围。最后,我们将此HTML文件存入AppletExp.html,然后运行:C:JavaBookappletviewer AppExp.html此时,将弹出一个Applet浏览窗口,在其中指定区域显示“Hello World!”。IDE(Integrated Development Environment)集成开发环境如:NetBeans、Eclipse、JCreator 等1、搭建
15、好Java环境2、复习本章、预习下章 Java开发环境 Java语言基础 控制结构 标识符与关键字、分隔符 基本数据类型、变量和常量 操作运算符及表达式 Java的输入输出 java代码的位置 java是严格区分大小写的 java是一种自由格式的语言 代码分为结构定义语句和功能执行语句功能执行语句的最后必须用分号结束 在编写应用程序时,程序员对程序中的各个元素(变量、常量、对象、类、属性、方法)加以命名时使用的命名记号称为标识符(identifer)。JAVA标识符的命名规则:标识符的命名规则:以英文以英文字母字母,下划线下划线_,或者美元符号或者美元符号$开头(即不能以数字开头(即不能以数字
16、开头);开头);由以上三种字符与数字由以上三种字符与数字0到到9的组合;的组合;标识符各字符之间不能有空格标识符各字符之间不能有空格;最大长度最大长度65535;区分大小写,如区分大小写,如_Student和和_student是两个不同的标示是两个不同的标示符。符。判断下列标识符是否合法判断下列标识符是否合法 3d、$1000、Letter#、x0y、while、pri*i 良好的编程习惯良好的编程习惯 在定义标识符时,应该能反映它表示的变量、对象、类的意义;如:studentName或student_name 习惯上,表示类、接口名的标识符用大写字母开头,表示变量、方法名的标识符用小写字母开
17、头,表示常量名的标示符全部用大写字母;标示符最好不用$。Java系统使用(保留)的关键字(Keyword)很多,它们有明确的含义,不能另做它用。关键字也叫保留字。程序员在编写JAVA程序时,使用的标识符一定不能包含如下页图所示的关键字。abstractdoimplementprivatethisbooleandoubleimportprotectedthrowbreakelseinstanceof publicthrowsbyteextendintreturntransientcasefalseinterfaceshorttruecatchfinallongstatictrycharfianl
18、lynativestrictfpvoidclassfloatnewsupervolatilecontinuefornullswitchwhiledefaultif package synchronizedenum 1、注释、注释在java语言中,可以采用三种注释方式:单行注释,形式为:/注释内容多行注释,形式为:/*注释内容*/文档注释,形式为:/*注释内容*/,这是java所特有的一种注释,是为支持javadoc而设计的。2、空白符、空白符包括空格符、回车符、制表符 3、普通分隔符、普通分隔符 具有明确的语法含义,要按照语法规定去使用。大括号():用于定义类体、方法体、复合语句分号(;):添
19、加在功能语句之后逗号(,):用于分隔变量声明时的各个变量和方法的各个参数等冒号(:):用于标号和语句之间 数据类型是程序设计语言中的基本概念,它包括两部分,取值范围(不同类型的数据在计算机中所占用的内存空间大小不同)和在这些值上所允许的操作,定义一个类型就限定了这两部分。数据类型基本数据类型引用数据类型数值型字符型(char)布尔型(boolean)整数类型(byte,short,int,long)浮点类型(float,double)类(class)接口(interface)数组类型类型内存内存(bit)(bit)取值范围取值范围运算运算整整 型型 bytebyte8 8-128-127-32
20、768-32767-32768-32767-231231-1-263263-1+,-,+,-,*,/,/,%,+,-,%,+,-,+=,+=,shortshort1616intint3232longlong6464浮点型浮点型 floatfloat32 32 doubledouble6464布尔型布尔型 booleanboolean 8 8&,&,|,!,|,!,字符型字符型 charchar1616任意字符任意字符+(连接)(连接)-3.4E38-3.4E38-1.7E308-1.7E308true或false 在在JavaJava语言中语言中,变量按下列方式定义变量按下列方式定义变量之间用
21、逗变量之间用逗号号,隔开隔开语句的最后是语句的最后是一个分号一个分号;1.1.变量的类型变量的类型 变量名称;变量名称;2.2.变量的类型变量的类型 变量名称变量名称1,1,变量名称变量名称2,2,;3.3.变量的类型变量的类型 变量名称变量名称 变量的值;变量的值;变量定义的例子变量定义的例子int number;int number;int number1,number2=5,number3;int number1,number2=5,number3;float pi;float pi;float PI=3.1416f;float PI=3.1416f;声明了一个声明了一个3232位的整位
22、的整型变量型变量numbernumber声明了一个声明了一个单精度单精度的浮点型变的浮点型变量量,并且给它赋了值并且给它赋了值注意注意:给给floatfloat型的变型的变量赋值时量赋值时,值的后面要值的后面要写一个写一个f f或者或者F F 更多变量定义的例子更多变量定义的例子long number;long number;long cont=1357924680L;long cont=1357924680L;声明了一个声明了一个6464位的长整位的长整型变量型变量numbernumber声明了一个声明了一个长整型长整型变量变量,并且给并且给它赋了值它赋了值注意注意:给给longlong型的
23、变型的变量赋值时量赋值时,值的后面值的后面要写一个要写一个l l 或者或者L L 更多变量定义的例子更多变量定义的例子double db;double db;double max=1357924680d;double max=1357924680d;声明了一个声明了一个双精度双精度的浮的浮点型变量点型变量dbdb声明了一个声明了一个双精度双精度的浮点型变的浮点型变量量,并且给它赋了值并且给它赋了值注意注意:给给doubledouble型的变量赋值时型的变量赋值时,值的后面值的后面可以写一个可以写一个d d 或者或者D,D,也可以什么都不写也可以什么都不写 更多变量定义的例子更多变量定义的例子b
24、oolean tf;boolean tf;tf=false;tf=false;声明了一个声明了一个布尔型布尔型变量变量tftf给给tftf赋了赋了值值注意注意:booleanboolean型的变量只有型的变量只有truetrue和和falsefalse这两个值这两个值 更多变量定义的例子更多变量定义的例子char c;char c;c=A;c=A;声明了声明了一个一个字符型字符型变量变量c c给给字符型字符型变量变量c c赋值赋值AA注意注意:给给charchar型的变量赋值时型的变量赋值时,值要用值要用单引号单引号括起来括起来更多变量定义的例子更多变量定义的例子对于整型数而言对于整型数而言,
25、除了可以给它赋值一个除了可以给它赋值一个1010进制的数进制的数,还可以使用还可以使用8 8进制和进制和1616进制的数进制的数声明一个声明一个短整型短整型变量变量,并且给它赋个并且给它赋个8 8进制进制的值的值:07:07声明一个声明一个整型整型变量变量,并且给它赋个并且给它赋个1616进制进制的值的值:2B:2B8 8进制的数以进制的数以0 0开开头头,16,16进制数以进制数以0 x0 x或或0X0X开头开头short st=07;short st=07;int n=0X2B;int n=0X2B;还有一种数据类型叫字符串还有一种数据类型叫字符串,String,String声明了一个字符
26、串声明了一个字符串s1s1声明了一个字符串声明了一个字符串s2,s2,并且并且给它赋了值给它赋了值String s1;String s1;String s2=“Hello World!”;String s2=“Hello World!”;字符串不属于基本数据类型字符串不属于基本数据类型,但在声明或者定义一个字符但在声明或者定义一个字符串的时候串的时候,可以象声明一个基本数据类型的变量那样做。可以象声明一个基本数据类型的变量那样做。没有声明变量就使用是错误的,重复定义变量也是错误的。变量在赋值后才能使用。变量的作用域:指变量的有效作用范围。一个变量的作用域是从它的声明处开始,到它所在的程序块(b
27、lock)结束。程序块是指由界定符号“”确定的程序段。例如一个类体,一个方法体。class examplestatic int n1=9;public static void display()int n2=200;n1=n1+n2;System.out.println(n1=+n1);System.out.println(n2=+n2);public static void main(String args)int n3;n3=n1+2;System.out.println(n1=+n1);System.out.println(n3=+n3);System.out.println();dis
28、play();常量(constant)是指在程序运行中其值一直保持不变且不能被改变的量。常量初始化之后就不能再改变它的值常量使用final关键字来定义如:final float PI=3.1415926f;final byte MAX=127;final boolean sex=true;final char a=a;final string s=“您好啊!”;(字符串常量)所有的基本数据类型都可定义常量 常用的转义字符常量r表示接受键盘输入,相当于按下了回车键;n是换行;t是制表符,相当于table键;b是退格键,相当于Back Space;是单引号,而“是双引号;是一个斜杠“”。类型的转换
29、通常是在一个运算式中参加运算的各个变量的类型不一致,或者要给某种类型的变量赋一个不同类型的值时发生 类型转换分为类型转换分为:自动转换自动转换(隐式隐式)和和强制转换强制转换(显式显式/casting)自动转换:两种类型是兼容的;目的数据类型的取值范围比来源数据类型的取值范围要大。double byteshort int longchar float 强制转换强制转换:目的数据类型的取值范围比来源数据类型的取值范围要小。如当需要将int型的值赋给一个byte型的变量时该怎么办?当把一个浮点值赋给整数类型时,将发生一种不同的类型转换:截断。大家都知道整数没有小数部分。这样,当把浮点值赋给整数类型
30、时,它的小数部分将会被舍去。例如,如果将值1.23赋给一个整数,其结果只是1,0.23被舍弃。当然,如果浮点值太大而不能适合目标整数类型,那么它的值将会因为对目标类型值域取模而减少。慎用强制类型转换。除了赋值方式,类型变换还可以在表达式中进行。在表除了赋值方式,类型变换还可以在表达式中进行。在表达式中,对中间值的精确要求有时超过任何一个操作数达式中,对中间值的精确要求有时超过任何一个操作数的范围。例如,考察下面的表达式。的范围。例如,考察下面的表达式。byte a=40;byte b=50;byte c=100;int d=a*b/c;中间项结果中间项结果a*b很容易超过它的任何一个很容易超过
31、它的任何一个byte型操作数型操作数的范围。为处理这种问题,当分析表达式时,的范围。为处理这种问题,当分析表达式时,Java自动自动提升各个提升各个byte型或型或short型的操作数到型的操作数到int型。这意味着型。这意味着子表达式子表达式a*b使用整数而不是字节型来执行。这样,尽管使用整数而不是字节型来执行。这样,尽管变量变量a和和b都被指定为都被指定为byte型,型,50*40中间表达式的结果中间表达式的结果2000是合法的。是合法的。自动类型提升有好处,但它也会引起令人疑惑的编译错误。自动类型提升有好处,但它也会引起令人疑惑的编译错误。例如,下面这个看起来正确的程序却会引起一些问题。
32、例如,下面这个看起来正确的程序却会引起一些问题。byte b=50;b=b*2;/Error!Cannot assign an int to a byte!该程序试图将一个完全合法的该程序试图将一个完全合法的byte型的值型的值50*2再存储给一个再存储给一个byte型的变型的变量。但是,当表达式求值的时候,操作数被自动地提升为量。但是,当表达式求值的时候,操作数被自动地提升为int型,计算结型,计算结果也被提升为果也被提升为int型。这样,表达式的结果现在是型。这样,表达式的结果现在是int型,不强制转换它型,不强制转换它就不能被赋为就不能被赋为byte型。型。在理解了上述溢出后果的情况下,
33、就知道应该使用一个显式的强制类型转在理解了上述溢出后果的情况下,就知道应该使用一个显式的强制类型转换。换。byte b=50;b=(byte)(b*2);这样将产生正确的结果这样将产生正确的结果100。除了将除了将byte型和型和shorts型提升到型提升到int型以外,型以外,Java语言还规定了若干适用于表达式的类语言还规定了若干适用于表达式的类型提升规则。首先,如前面所描述的,型提升规则。首先,如前面所描述的,所所有的有的byte型和型和short型的值被提升到型的值被提升到 int型。型。其次,如果一个操作数是其次,如果一个操作数是long型,整个表型,整个表达式将被提升到达式将被提升
34、到long型;如果一个操作数型;如果一个操作数是是float型,整个表达式将被提升到型,整个表达式将被提升到float型;型;如果有一个操作数是如果有一个操作数是double型,计算结果型,计算结果就是就是double型。型。例如,下面的程序显示了在表达式中的每个值是如何例如,下面的程序显示了在表达式中的每个值是如何被提升的,以匹配各自双目运算符的第二个参数。被提升的,以匹配各自双目运算符的第二个参数。class Promote public static void main(String args)byte b=42;char c=a;short s=1024;int i=50000;flo
35、at f=5.67f;double d=.1234;double result=(f*b)+(i/c)-(d*s);System.out.println(f*b)+(i/c)+-+(d*s);System.out.println(result=+result);前面在讲变量的定义时我们已经多次使用了赋值语句前面在讲变量的定义时我们已经多次使用了赋值语句,它的一般格式如下它的一般格式如下1.1.被赋值的变量被赋值的变量 =数值数值;2.2.被赋值的变量被赋值的变量 =用来赋值的变量用来赋值的变量;3.3.被赋值的变量被赋值的变量 =表达式表达式;=称为赋值运算符称为赋值运算符float f=1.
36、234F;float f=1.234F;float alf=f;float alf=f;String s=“Hello”+“Java”;String s=“Hello”+“Java”;更多的赋值语句更多的赋值语句除了前面用到的除了前面用到的算术表达式算术表达式以外以外,还有还有逻辑表达逻辑表达式式boolean b=32;boolean b=32;在这个赋值语句里在这个赋值语句里,最终最终b b的值是什么呢的值是什么呢?答案:答案:falsefalse 在Java语言中,运算符可以划分为四大类:算术运算符、关系运算符、位运算符以及逻辑运算符。此外还定义了一些附加运算符,用于某些特殊情况的处理。
37、“+”除字符串相加功能外,还能把非字符串转换成字符串,如:“x”+123;的结果是“x123”。x+123的结果是什么呢?如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论了。对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。int x=3510;x=x/1000*1000;实际运行结果是3000,想想为什么?思考题1:某个培训中心要为新到的学员安排房间,假设共有x个学员,每个房间可以住6人,让你用一个公式来计算他们要住的房间数?答案:(x+5)/6。这种算法还可用在查看留言板的分页显示上:其中x是总共的留言数,6是每
38、页显示的留言数,结果就是总共有多少页。思考题2:假设你要让x的值在0至9之间循环变化,请写出相应的程序代码。答案:int x=0;while(true)x=(x+1)%10;加运算符可以用来连接两个字符串加运算符可以用来连接两个字符串例如,例如,”abc”+123abc”+123的运行结果是字符串的运行结果是字符串abc123abc123“abc”+(1+2)abc”+(1+2)的运行结果是什么?的运行结果是什么?abc3 两个整数相除的结果取其整数部分两个整数相除的结果取其整数部分例如,例如,3/23/2的结果是的结果是1 1,而不是,而不是1.51.5 1/2 1/2的结果是的结果是0 0
39、8/158/15*1515的结果是多少?的结果是多少?0 JavaJava语言既可以对整数取模,也可以对小语言既可以对整数取模,也可以对小数取模数取模如:如:20%7=620%7=6,16.2%5=1.216.2%5=1.2 可以对可以对charchar类型的数据进行运算,因为其可类型的数据进行运算,因为其可以自动转换为整型或浮点型以自动转换为整型或浮点型如:如:a/3=32a/3=32;a%5=2a%5=2 单目运算符单目运算符 正值正值(+)(+),负值,负值(-)(-)如:如:+5+5,-5-5 加加1(+)1(+),减,减1(-)1(-)运算符的操作数必须是变量,不能是常量或运算符的操
40、作数必须是变量,不能是常量或带有运算符的表达式,可以把运算符放在操带有运算符的表达式,可以把运算符放在操作数的前面或后面作数的前面或后面如:如:+a+a和和a+a+-a和和a-说明:说明:+a+a先对先对a a增增1 1,然后用增,然后用增1 1后的值进行计算后的值进行计算 a+a+先用先用a a的值参加计算,然后对的值参加计算,然后对a a增增1 1例例:int a=5,b=8,c,d;int a=5,b=8,c,d;c=(a+)c=(a+)*b;b;/c=40,a=6/c=40,a=6 d=(+a)d=(+a)*b b /d=48,a=6/d=48,a=6同样同样:-a-a先对先对a a减
41、减1 1,然后用减,然后用减1 1后的值进行计算后的值进行计算 a-a-先用先用a a的值参加计算,然后对的值参加计算,然后对a a减减1 1例例:int a=5,b=8,c,d;int a=5,b=8,c,d;c=(a-)c=(a-)*b;b;/c=40 ,a=4/c=40 ,a=4 d=(-a)d=(-a)*b b /d=32 ,a=4/d=32 ,a=4注1:在JAVA里可以把赋值语句连在一起,如:x=y=z=5;在这个语句中,所有三个变量都得到同样的值5。注2:x+=3等效于x=x+3,等于*=,-=,/=依此类推。注1:比较运算符的结果都是boolean型,也就是要么是true,要么
42、是false。注2:比较运算符“=”不能误写成“=”,切记!切记!5注1:逻辑运算符用于对boolean型结果的表达式进行运算,运算的结果都是boolean型。注2:“&”和“&”的区别在于,如果使用前者连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用后者连接,当“&”的左边为false,则将不会计算其右边的表达式。“|”和“|”的区别与“&”和“&”的区别类似。public class TestAnd public static void main(String args)int x=0;int y=3;if(x!=0&y=y/x)System.out.println(y=+
43、y);上面例子中,由于while语句的判断条件中的第一个布尔表达式是不成立的,程序就不会判断第二个布尔表达式的值,这就是“短路”。如果两个表达式之间用“&”来连接,如果正好碰到上面所示的特殊情况,程序运行时就会出错 1、a,b,c三条边能否组成三角形的条件a+bc&a+cb&b+ca 2、判断year是否是闰年的条件1)能被4整除,但不能被100整除;2)能被4整除,又能被400整除。(year%4=0&year%100!=0)|(year%400=0)条件运算符也称三目运算符,其格式为:Expression?statement1:statement2;它的作用是根据第一个运算符(放在?前面,
44、必须为布尔类型数据)的真假值,来决定整个表达式的结果值是第二个运算量(放在?后面:前面)或者是第三个运算量(放在:后面)。如:int x,y=10,z=43;x=yz?y:z;运行后 x=43.即当yz时,x=y;否则x=z.我们可以使用括号改变运算赋的优先级,分析int a=2;int b=a+3*a;语句的执行过程 与int a=2;int b=(a+3)*a;语句的执行过程的区别。对于int a=2;int b=a+3*a+;这样的语句,b最终等于多少呢?试验得到的结果是8。对于int a=2;int b=(a+)+3*a;这样的语句,b最终等于多少呢?试验得到的结果是11。与其去思考其
45、中的原因,我们还不如将上面的第二句改为几条语句来实现我们想要的结果。不要在一行中编写太复杂的表达式,也就是不要在一行中进行太多的运算 在一行中进行太多的运算并不能为你带来什么好处,相反只能带来坏处,它并不比改成几条语句的运行速度快,它除可读行差外,还极容易出错。对于优先级顺序,不用刻意去记,有个印象就行。如果你实在弄不清这些运算先后关系的话,就用括号或是分成多条语句来完成你想要的功能,因为括号的优先级是最高的,这也是软件编码规范的一个要求。JAVA没有提供专用的输入/输出命令或语句,它的输入/输出是靠系统提供的输入/输出类的方法实现的。输出 System.out.println():该方法可以
46、有0或1个参数 System.out.print():该方法必须有1个参数 参数类型可以是char、byte、int、boolean、float、double、String和Object(对象)类型,这些类型的数据在转换成相应的字符串后输出。System.in.read()用于从键盘上输入一个字符,按照int数据处理,若转换为字符型就是字符本身,若转换为整型,它是字符的扩展ASCII码值(0255)。注意:进行输入时要引入java.io包,并且使用异常处理机制。实例:bytein.java使用字符串缓冲BufferedReaderimport java.io.*;class stringinp
47、ublic static void main(String args)throws IOExceptionString s;System.out.println(please input a string:);BufferedReader br=new BufferedReader(new InputStreamReader(System.in);/创建字符串缓冲区对象br,用于接收输入的字符串s=br.readLine();/调用读入字符串的方法System.out.println(“the string you input is+s);图形界面下的输入/输出方法JOptionPane.sh
48、owInputDialog(“提示信息”);JOptionPane.showInputDialog(“提示信息”,初值);JOptionPane.showMessageDialog(框架,输出内容);JOptionPane.showMessageDialog(框架,输出内容,标题,信息类型);Java开发环境 Java语言基础 控制结构 语句和块 分支(选择)结构if、ifelse、switch 循环结构while、for、dowhile 跳转语句break、continue、return 程序中的语句可以分为两种类型:简单语句和流程控制语句。Java中常用的有下面几类语句:声明语句,如:ch
49、ar a=A;表达式语句,如:i+;System.out.println(“Hello”)分支语句,如:ifelse、switch循环语句,如:while、dowhile、for跳转语句,如:break、continue异常语句,如:try-catch-finally空语句,如:;块是用一对块是用一对“”将零个或多个语句括起来,就构成一个块(也称复合将零个或多个语句括起来,就构成一个块(也称复合语句)。语句)。程序中的类体及方法体也都是块。程序中的类体及方法体也都是块。class UseBlockpublic static void main(String args)int a=5;a+=8;
50、int b=6;b=b+a;System.out.println(a+b);System.out.println(a+b);结合前面所学知识(变量的作用域),上面的程序有错误吗?if单选结构if(布尔表达式)语句块;可以是一条或多条语句,在只有一条语 句的情况下,可以不用“”如:学生的成绩studentGrade=60分,则输出“成绩及格了”if(studentGrade=60)System.out.println(“成绩及格了”);实例:求两个数的最大值。(使用单分支结构)int n1=45326,n2=54321,max;max=n1;if(n2=n1)max=n2;System.out.