Java语言程序设计主讲教师:周立波E-mail:zlb2829zlb@163.comQQ:285422560电话:15004634823第一章绪论Java语言的起源与发展Java的技术体系Java语言的特点Java程序的工作机制Java程序的简单开发过程1.1Java语言的起源与发展1991年Sun公司的JamesGosling领导的Green小组为开发嵌入式分布系统开发出的Oak语言(Java的前身)。1995年Oak改名为Java—面世。1996年Sun公司推出第一个Java开发工具包——JDK1.0。1998年12月Sun公司发布了Java2平台以及JDK1.2。Java2平台是Java技术发展的新的里程碑,标志着Java技术发展的新阶段。1999年6月Sun公司重新定义了Java技术的架构,将Java2平台分为三个版本:J2SE、J2EE、J2ME。当前,Java已经成为Internet应用发展的重要支撑技术,并且具有强大的生命力。1.2Java技术体系1.Java2平台标准版(J2SE)J2SE为桌面开发和工作组级的应用与开发提供了可行的解决方案及环境。2.Java2平台企业版(J2EE)J2EE定义了基于组件的多层企业级应用的开发标准,面向企业级和高端服务器的Internet应用开发。它基于J2SE,包括EJB、JavaServletsAPI、JSP等技术,并为企业级应用的开发提供了各种服务、工具3.Java2平台微缩版(J2ME)J2ME是针对嵌入式技术设备的开发工具。1.3什么是Java、Java技术的内涵1、首先,它是一门编程语言2、其次,Java还是一个开发环境3、Java也是一个运行环境1.4Java语言的编程过程windows下c语言编程过程c编译程序执行C源程序(扩展名为.c)Windows可执行文件(.exe)Windows操作系统Java语言编程过程Java编译程序执行执行执行Java源程序(扩展名为.java)Java字节码文件(扩展名为.class)JVM虚拟机Windows下的Java字节码解释程序Linux下的Java字节码解释程序能直接解释Java字节码的CPUWindows操作系统Linux操作系统JVM虚拟机Windows下的Java字节码解释程序Linux下的Java字节码解释程序能直接解释Java字节码的CPU1.5Java语言的特点Java是一种简单、面向对象、分布式、解释性、健壮、安全、体系结构中立、可移植性强、高性能、多线程和动态的编程语言。1、简单性2、面向对象面向对象编程语言的三个基本特征:封装性、多态性、继承性.3、分布式特征(1)数据分布应用系统所操作的数据可以分散存储在不同的网络节点上,通过Java的URL类,Java程序可以访问网络上的各类信息资源.(2)操作分布应用系统的计算可以由不同的网络节点完成,Java通过嵌在将计算从服务器分布至客户机。4、半编译、半解释特征5、健壮性(可靠性)Java提供自动垃圾回收器来进行内存管理,通过一场处理机制提示可能出现而未被处理的异常。6、安全性Java引入了多级安全措施,其采用的主要安全机制:·内存分配及布局由Java运行系统规定·运行系统执行基于数字签名技术的代码认证、字节码验证与代码访问权限控制的安全控制模型7、可移植性“一次编译,到处运行”8、多线程1.6JDK的下载、安装与使用1、JDK的下载SUN公司网址:、JDK的安装3、JDK的操作命令javac—Java语言的编译器。基本语法:javac[选项]源文件名java—Java语言的解释器,解释运行Java字节码基本语法:Java[选项]class[命令行参数]javadoc—JavaAPI文档生成器4、系统环境变量的设置系统环境变量就是在操作系统中定义的变量,可供操作系统上的所有应用程序使用。(1)查看系统的环境变量在windows环境下查看环境变量。在命令行窗口查看环境变量:set命令(2)设置系统的环境变量path变量的作用:设置供操作系统去寻找和执行应用程序的路径。环境变量path可以存放多个路径,路径之间用分号(;)格开。查看使用的JDK版本的命令:java–version1.7Java程序的开发1、第一个应用程序(1)编写源程序publicclassHellowWorld{publicstaticvoidmain(Stringargs[]){System.out.println(“hellowWorld”);}}(2)程序的编译与运行编译:javacHellowWorld.java解释执行:javaHellowWorld2、由第一个程序学到的-一些基本概念(1)类的概念类是对某一类事物的一种抽象定义,我们也可以把类理解为新的数据类型。类的定义格式:[ClassModifier]classclassname[extendsSuperClass][implementsInterface]主类:一个程序只能定义一个主类。也就是仅有一个访问控制级为public的类。主类名需与此类所在的源文件的文件名相同。main()方法是程序的入口。(2)对象的概念类是对象的模板,对象是类的实例。创建一个对象使用new关键字,格式为:类名对象名=new构造函数调用对象的属性:对象名.属性名调用对象的方法:对象名.方法()第二章Java语言基础2.1标识符与数据类型2.1.1Java基本语法1、语句与语句块在Java中以“;”作为语句的分隔符。在一对大括号{…}内的语句集合称为语句块。2、Java中的注释//:单行注释/*…….*/:多行注释/**…….*/:文档注释2.1.2标识符在Java中,采用标识符对变量和方法进行命名。用标识符进行命名的规则:不犯错误的方法:永远用字母开头,尽量不使用特殊字符。2.1.3关键字2.1.4基本数据类型Java语言共定义了4类共8种基本数据类型。整数类型(byte,short,int,long)浮点型(float,double)字符型(char)布尔型(boolean)整数型数值型浮点型基本数据类型字符型(char)布尔型(boolean)数据类型类(class)引用数据类型接口(interface)数组1、逻辑型——booleanboolean型数据有两种取值:true/false.注与其他高级程序不同,Java中的布尔值和数字之间不能来回转换。2、文字型——char,String·charchar类型是16位的unicode(国标码)字符,用‘’标注。常用的转义字符:\’:单引号字符\”:双引号字符\\:反斜杠\r:回车\n:换行\f:退格3、整数类型Java提供了4种整数类型:byte,short,int,longbyte:8位;short:16位;int:32位;long:64位注1’Java中所有的整数类型都是有符号的整数类型,没有无符号的类型。2’整型常量可以分为十进制、八进制、十六进制。八进制数必须以0开头,十六进制数必须以0x或0X开头,长整型数必须以L或l结尾。4、浮点型Float型:32位;Double型:64位注:小数常量的默认值为Double型,所以Float类型后面一定要加上f.2.2变量2.2.1变量的概念2.2.2Java的变量类型注(1)与其他编程语言不同,Java的基本类型在任何操作系统中具有相同的大小和属性,这也是Java跨平台的一个特性表现。(2)基本类型变量的大小写是敏感的。(3)注意变量的取值范围。2.2.3基本数据类型之间的转换1.强制类型转换(隐式类型转换)实现自动类型转换,需要同时满足两个条件:一、两种类型彼此兼容;二、目标类型的取值范围要大于源类型。2.强制类型转换(显式类型转换)若不满足自动类型转换的两个条件,则需要进行强制类型转换。通用的格式为:目标类型变量=(目标类型)值强制类型转换会造成数据的丢失。2.2.4表达式的数据类型自动提升示例:classTest{publicstaticvoidmain(Stringargs[]){byteb=5;b=b-2;System.out.println(b);}}自动类型提升规则:byteshortintlongfloatdouble2.3Java中的运算符算术运算符、赋值运算符、比较运算符、逻辑运算符、移位运算符1、算术运算符+,-,*,/,%,++,--注(1)“+”具备字符串相加的功能。(2)++a与a++的区别。(3)对负数取模时,可以把模数符号忽略不计。(4)整数相除的时候,只保留整数部分而舍弃小数部分。2、赋值运算符=,+=,-=,*=,/=,%=3、逻辑运算符&、|、^、!、&&(短路与)、||(短路或)注:”&”与”&&”的区别在于,如果使用&连接,&两边的表达式都会参与计算,如果使用&&连接,当&&的左边为false,则不会计算其右边的表达式。“|”与“||”的区别同上。4、位运算符常用的位运算符:&,\,^,,,位运算符的使用格式:value(或)num左移()是将左边操作数value在内存中的二进制数据左移num位,右边移空的位数补0。有符号数据用“”移位时,最高位是0,左边移空的高位就填入0,最高位是1,就填入1;对于“”,不管移位的整数的最高位是0还是1,左边移空的高位都填入0。移位能位我们实现除以或乘以2的n次方的效果。一个数左移n位,就等于这个数乘以2的n次方,右移n位,就等于除以2的n次方。举例说明:2.4程序流控制Java提供了4类程序流控制语句:·循环语句:包括while、dowhile、for语句·分支语句:包括if和switch语句·跳转语句:包括break、continue、return·异常处理语句,包括try-catch-finally语句和throw语句。1、if条件语句if语句的格式:格式1:if(条件语句){执行语句块}格式2:if(条件语句){执行语句块1}else{执行语句块2}格式3:if(条件语句1){执行语句块1}elseif(条件语句2){执行语句块2}……………elseif(条件语句块n){执行语句块n}else{执行语句块n+1}2、switch语句switch语句的基本格式:switch(整型表达式){casec1:语句组1;break;………casecn:语句组k;break;default:语句组;break;}3、for循环语句for循环语句的一般格式:for(初始化表达式;终止条件表达式;迭代表达式){循环体}例子:倒*三角、正*三角4、while循环语句while语句的一般格式:[初始化部分]while(条件表达式){循环体;[迭代表达式]}5、do-while循环语句do-while语句的一般格式:[初始化部分]do{循环体;[迭代表达式;]}while{条件表达式}7跳转控制语句Java语言支持3种类型的跳转控制语句:break、continue和return。使用这些语句,可把控制转移到程序的其他部分。本节将对它们作具体介绍。break语句continue语句return语句break语句1.break格式:break;2.break的功能:第一,在switch语句中,它被用来终止一个语句序列;第二,在循环体中能被用来退出一个循环;continue1.continue语句格式:continue;2.continue语句的功能:在while和dowhile循环中,continue语句跳过当前循环的其余语句,执行下一次循环。Continue语句的用法publicstaticvoidmain(Stringargs[]){intsum=0,i,j;for(i=1;i=10;i++)//计算1+3+5+7+9。{if(i%2==0)continue;sum=sum+i;}System.out.pri