java简介和基本语法.pptx
目录第一章Java简介第二章Java基本语法第三章Java面向对象思想()第四章Java异常处理第五章JavaAPI()第六章JavaIO第七章Java项目实践第1页/共81页第一章 JavaJava简介Java语言的发展历程Java的三大版本Java虚拟机原理及Java跨平台的原理Java语言的特点Java开发环境的搭建及其设置Java程序先睹为快第2页/共81页1.1 Java1.1 Java语言的发展历程90年12月,SUN公司的一个开发小组从事家用电器方面的小型研究项目。最初方案是用C+开发。开发人员James Gosling(吉姆斯高斯林 Java之父)对C+实现这一任务感到失望,决定自己编写了一种更好的语言来实现这一项目.最初,这种语言命名为OAK,后来改名为Java。Java最初为用于家用电器而开发,Java的小型、安全、可移植性等特点,使其适用于WEB。Java产生的时候,正是万维网日益流行的时候。95年8月,Netscape公司的浏览器率先支持Java。随后,Microsoft的Internet Explorer浏览器也支持Java。这样,随着万维网的日益普及,Java得到了广泛的使用。(广泛地应用于Internet网络程序设计。)第3页/共81页1.1 Java1.1 Java语言的发展历程1995.8Java语言诞生。1996JDK1.0发布,10个最主要操作系统供应商申明将在其产品中支持Java技术1997JDK1.1发布。1998JDK1.1下载量超过200万次,JDK1.2(称Java2)发布。1999Java被分成J2SE、J2EE和J2ME,JSP/Servlet技术诞生。2000JDK1.3发布,JDK1.4发布。2001Nokia公司宣布到2003年将出售1亿部支持Java的手机,J2EE1.3发布。2002J2EE1.4发布,自此Java的计算能力有了大幅度提升.J2EESDK的下载量达到200万次.20035.5亿台桌面机上运行Java程序,75%的开发人员将Java作为首要开发工具2004J2SE1.5发布,这是Java语言的发展史上的又一里程碑事件。为了表示这个版本的重要性,J2SE1.5更名为J2SE5.0。2005JavaOne大会召开,Sun公司公开JavaSE6。此时,Java的各种版本被更名,取消其中的数字2:J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME第4页/共81页1.2 Java1.2 Java的三大版本J2SE(Java2StandardEdition)标准版,定位在客户端,主要用于桌面应用软件的编程J2ME(Java2MicroEdition)微型版,主要应用于嵌入式系统开发,如手机和PDA的编程J2EE(Java2EnterpriseEdition)企业版,定义在服务器端,主要用于分布式网络程序开发,如电子商务网站和ERP系统2005JavaOne大会召开,Sun公司公开JavaSE6。此时,Java的各种版本被更名,取消其中的数字“2”:J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME。第5页/共81页1.3 Java1.3 Java虚拟机及跨平台的原理JVM:Java虚拟机(JavaVirtualMachine),运行Java字节码的假想的计算机Java虚拟机是Java最核心技术,也是跨平台的基础。JVM有自己的堆栈、“CPU”等定义,是用软件模拟出一台假想的计算机,Sun公司制定了它的技术规范。第6页/共81页1.3 Java1.3 Java虚拟机及跨平台的原理Java以前的高级语言例如C/C+语言高级语言程序(.c.c)机器语言程序(.exe)(.exe)编译器的编译 不同种类的计不同种类的计算机有不同的算机有不同的机器语言机器语言第7页/共81页1.3 Java1.3 Java虚拟机及跨平台的原理机器语言决定代码移植的可行性,为一种计算机编写的代码不能在另一种计算机上运行Software for IBM MachineSun SolarisSoftware for Solarisx86Software for x86 MachineIBM第8页/共81页1.3 Java1.3 Java虚拟机及跨平台的原理通过“编译器”将Java源程序编译成Java 字节码文件(.class)(字节码文件采用结构中立的中间文件格式)通过“解释器”将Java字节码文件解释为对应机器语言,并运行第9页/共81页1.3 Java1.3 Java虚拟机及跨平台的原理两种过程比较Java跨平台原理“一次编译一次编译 到处运行到处运行”第10页/共81页1.4 Java1.4 Java语言的特点Java是跨平台的Java是简单的Java是安全的Java是完全面向对象的Java是健壮的第11页/共81页1.4 Java1.4 Java语言的特点Java是跨平台的Java程序的跨平台主要是指字节码文件可以在任何具有Java虚拟机的计算机或者电子设备上运行,Java虚拟机中的Java解释器负责将字节码文件解释成为特定的机器码进行运行。第12页/共81页1.4 Java1.4 Java语言的特点Java是简单的不再有#include和#define等预处理功能不再有struct,union及typedef不再有函数、不再有指针、不再有多重继承不再有goto不再有操作符重载(OperatiorOverloading)不再有全局变量取消自动类型转换,要求强制转换不再有手动内存管理第13页/共81页1.4 Java1.4 Java语言的特点Java是安全的Java取消了强大但又危险的指针。由于指针可进行移动运算,指针可随便指向一个内存区域,而不管这个区域是否可用,这样做是危险的,因为原来这个内存地址可能存储着重要数据或者是其他程序运行所占用的,并且使用指针也容易数组越界。Java提供了自动内存管理机制,由垃圾回收器在后台自动回收,Java在字节码的传输过程中使用了公开密钥加密机制(PKC)。而在运行环境提供了四级安全性保障机制:-字节码校验器-类装载器-运行时内存布局-文件访问限制第14页/共81页1.4 Java1.4 Java语言的特点Java是完全面向对象的Java和C+都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继承,多态)。由于C+为了照顾大量C语言使用者而兼容了C,使得自身仅仅成为了带类的C语言,多少影响了其面向对象的彻底性!Java则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了c+的固有缺陷。第15页/共81页1.4 Java1.4 Java语言的特点Java是健壮的 Java的强制类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。第16页/共81页1.5 Java1.5 Java开发环境的搭建及其设置JavaJava开发环境 JDK(Java Development Kit)Java开发工具包 Java编辑器(记事本,EditPlus,Eclipse)JDK帮助文档(两种格式:html和chm)第17页/共81页1.5 Java1.5 Java开发环境的搭建及其设置安装JDKJavabin的目录下包含义下主要文件:Javac:Java编译器,负责将.Java源文件编译成Java字节码.class文件。Java:Java解释器,负责解释Java字节码文件,并运行该文件。Javalib子目录Java标准类库。rt.jar是核心设置环境变量 通过“我的电脑”-“属性”-“高级”-“环境变量”1、pathc:Javabin2、classpathc:myJava第18页/共81页JDK各文件夹作用 一:bin:JDK中所包含的开发工具的可执行文件,PATH环境变量应该包含一个指向此目录的项。书中是这样说的:一些命令行工具,包括Java编译器的启动命令。二:lib:开发工具使用的文件。里面有个tool.jar,它包括支持JDK的工具和实用程序的非核心类。里面还有个dt.jar,它是BeanInfo文件的DesignTime归档,BeanInfo文件用来告诉交互开发环境IDE如何显示Java组件以及如何让开发人员根据应用程序自定义它们。三:jre:java程序运行环境的根目录,JAVA要想运行少了它可不行。JavaRuntimeEnvironment,一看英文大概就知道什么东西了。里面一边包括两个文件:bin和lib。bin:平台所用工具和库存的可执行文件和DDL文件,lib:java运行环境的代码库,属性设置和资源文件的默认安装路径。四:Demo:一些演示的例子,学习时还是不错的东东。五:include:本地的方法文件。编写JNI等程序需要的C头文件。六:src.zip:部分JDK的源码的压缩文件七:sample:也是一些示例程序第19页/共81页1.5 Java1.5 Java开发环境的搭建及其设置C:Javabinlibclasses.zipJavacJavaappletviewer用户类文件所在目录myJava当前目录第20页/共81页1.5 Java1.5 Java开发环境的搭建及其设置环境变量path的作用设置供操作系统去寻找和执行应用程序的路径,例如c:jdkbinJava.exe如果操作系统在当前目录下没有找到我们想要执行的程序和命令时,操作系统就会按照path环境变量指定的目录依次去查找,以最先找到的为准。classpath的作用让JVM按照classpath指定的目录去寻找要装载并执行的class类文件可用点号(.)来默认指定当前目录,例:c:setclasspath=c:myJava;.我们用到的包和类主要在X:Javajdk1.5.0_08jrelibrt.jar,JVM会自动找到这个jar包,所以我们在使用这个jar包中的类时,无需再使用classpath类指定。第21页/共81页1.5 Java1.5 Java开发环境的搭建及其设置Eclipse的安装Java集成开发环境(IDE),也支持c+开源项目,后来居上,IBM功不可没Eclipse:日食若进行J2EE开发,还要加MyEclipse插件MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。Eclipse是绿色安装软件,直接解压即可。现在直接安装集成Eclipse的MyEclipse即可。第22页/共81页1.5 Java1.5 Java开发环境的搭建及其设置JDK帮助文档SUN公司为JDK工具包提供了一整套文档资料,我们习惯上称之为JDK文档。JDK文档中提供了Java中的各种技术的详细资料,以及JDK中提供的各种类的帮助说明。JDK文档是Java语言的完整说明,大多数书籍中的类的介绍都要参照它来完成,它是编程者经常查阅的资料。两种格式:html和chm第23页/共81页1.6 Java1.6 Java程序先睹为快/*一个简单的Application程序;*/public class Testpublicstaticvoidmain(Stringargs)System.out.println(“HelloWorld!”);第24页/共81页1.6 Java1.6 Java程序先睹为快定义类时的注意点:1、一个Java类必须有一个class修饰符。2、publicstaticvoidmain(Stringargs)方法是该类被JVM解释器执行的入口。写法是固定的。3、System.out.println(“”)是标准的输出语句,可将信息显示在控制台上。4、如果类定义时加了publicpublic修饰符则类名必须和文件名一致。否则类名和文件名可以随意。5、一个文件中可以有多个classclass类定义,但最多只能有一个public classpublic class类。第25页/共81页1.6 Java1.6 Java程序先睹为快用Javac编译源文件c:JavacTest.Java生成className.class。用Java运行编译后的字节码文件c:JavaclassName编译时必须加上扩展名.java。运行的是类而非class文件,所以类名后不能加扩展名.class第26页/共81页1.6 Java1.6 Java程序先睹为快/*一个稍微不简单的Application程序;*/classStudent/定义学生类intid=123;/定义学生idStringname=“lee”;/定义学生姓名Publicvoidshow()/输出id和姓名System.out.println(“id=“+id+”,name=“+name);public class Testpublicstaticvoidmain(Stringargs)Studentst=newStudent();/创建学生对象st.show();/调用show()方法第27页/共81页1.6 Java1.6 Java程序先睹为快单行注释:从/开始到本行结束的内容都是注释,多行注释:在/*和*/之间的所有内容都是注释,文档注释:在注释方面Java提供一种C/C+所不具有的文档注释方式。其核心思想是当程序员编完程序以后,可以通过JDK提供的Javadoc命令,生成所编程序的API文档,而该文档中的内容主要就是从文档注释中提取的。该API文档以HTML文件的形式出现,与Java帮助文档的风格与形式完全一致。凡是在/*和*/之间的内容都是文档注释。例如下面的DocTest.Java文件:/*这是一个文档注释的例子,主要介绍下面这个类*/publicclassDocTest/*变量注释,下面这个变量主要是充当整数计数*/publicinti;/*方法注释,下面这个方法的主要功能是计数*/publicvoidcount()第28页/共81页作业1、用Java程序输出我一定能学好Java2、分别解释J2ME、J2SE、J2EE。3、什么是JVM?什么是JDK?第29页/共81页第二章 Java语言基础2.1 Java程序的基本语法格式2.2 常量和变量2.3 运算符2.4 流程控制语句2.5 数组第30页/共81页2.1.1 2.1.1 标识符由字母、0到9的数字、下划线或美元符组成由字母、下划线或美元符开头不能与关键字名或布尔值(true和false)同名标识符字母区分大小写正确的:name,Name,user_name,$name,_name,publicName;错误的:9username,username,public常量、变量常量、变量、方法、方法、类类和和包包的名称的名称第31页/共81页2.1.2 2.1.2 关键字abstractdoimplementprivatethisbooleandoubleimportprotectedthrowbreakelseinstanceof publicthrowsbyteextendintreturntransientcasefalseinterfaceshorttruecatchfinallongstatictrycharfianllynativestrictfpvoidclassfloatnewsupervolatilecontinuefornullswitchwhiledefaultif packageassert synchronized思考:Class是关键字吗?第32页/共81页2.2.1常量整型常量 十进制:1,12十六进制:0 x01,0X12,0 xAF八进制:01,012,028长整型:23L,7l(小数)浮点数常量float(32bit):3.4f,45.9F,2e3fdouble(64bit):3.4,3.4d,2e3Dfloat型的值,必须在数字后加f或F在程序执行期间其值不能发生变化的数据,常量是固定的第33页/共81页2.2.1 常量布尔常量true和false字符常量(16bit)a8nu0027r表示接受键盘输入,相当于按下了回车键;n是换行;t是制表符,相当于tab键;b是退格键,相当于BackSpace;字符串常量“HelloWorld!”“1234”“WelcomenXXX”“a”null常量null常量只有一个值,用null表示,表示对象的引用为空第34页/共81页2.2.1 常量符号常量用final关键字标识如:finalintNUM=10;finaldoublePI=3.14;intx=newintNUM;intr=2;intlength=PI*r*2;第35页/共81页2.2.2变量定义特性名称:标识符,代表这块内存中的数据。类型:根据所存储的数据类型的不同,有各种不同类型的变量。初始值:为其赋值或者是保留缺省值,变量在使用前必须先初始化。作用域:在不同程序块中的可用性及生命周期privateinta=15;在程序执行期间可根据需要经常变化的值。第36页/共81页2.2.3 变量类型基本数据类型引用数据类型数值型字符型(char)(char)布尔型(booleanboolean)整数类型(bytebyte,short,int,long),short,int,long)浮点类型(float,double)(float,double)类(class)(class)接口(interface)(interface)数组第37页/共81页2.2.4 基本数据类型的取值范围基本类型基本类型大小大小 类型取值类型取值 boolean1字节8位true,falsebyte1字节8位有符号整数-128 +127 char2字节16位Unicode字符 Unicode 0 Unicode 216-1 short2字节16位有符号整数-32768(-215)+32767(+215-1)int4字节32位有符号整数-2147483648(-231)+2147483647(231-1)long8字节64位有符号整数-263 +263-1float4字节32位浮点数1.4E-45 3.4E+38,-1.4E-45 -3.4E+38 double8字节64位浮点数4.9E-324 1.7E+308,-4.9E-324 -1.7E+308 Char类型占两个字节,采用Unicode码,而不是ASCII码。byte类型是整数类型的一种。所有类型长度固定,不随系统而不同。第38页/共81页2.2.5基本数据类型之间的转换在赋值或运算时,要求数据类型相同,否则要进行类型转换转换方式:自动转换强制转换除boolean类型外,所有的原始数据类型因为各自的精度不同,赋值时都要考虑这个问题第39页/共81页2.2.5基本数据类型之间的转换运算时的转换整型,浮点型,字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级。5+3.6+A;操作数1类型 操作数2类型 转换后的类型 byte、short、char int int byte、short、char、int long long byte、short、char、int、long float float byte、short、char、int、long、float double double 第40页/共81页2.2.5基本数据类型之间的转换赋值时的转换自动类型转换(左右)byte b=1;int x=b;/b的值自动转换成int型10001byteint低-高byte short,charint longfloat double第41页/共81页2.2.5基本数据类型之间的转换强制类型转换(左inta=(int)(5+3.6+A);floatf=3+3.6*4;doublef=3+3.6*4;总结=右侧:所有变量先转换为字节数最多的数据类型,再计算=两侧:左侧宽度右侧宽度自动转换左侧宽度 a=a*(b+2);a=a*b+2;x=y=z=3;第46页/共81页2.3.4 2.3.4 关系运算符v关系表达式将返回一个布关系表达式将返回一个布尔结果。尔结果。true/false运算符含义示例=等于a=b!=不等于a!=b大于ab小于a=大于或等于a=b=小于或等于ay&x+=y-;boolean b=xy&x+=y-;x=3x=3,y=5y=5,b=falseb=false。boolean b=xy&x+=y-;boolean b=xy&x+=y-;x=4x=4,y=4y=4,b=falseb=false。“|”和“|”的区别与“&”和“&”的区别类似。第49页/共81页2.3.6 2.3.6 位运算符位运算符是对操作数以二进制比特位为单位进行操作和运算,操作数和结果都是整型数。运算符含义示例 按位非(NOT)b=a&按位与(AND)c=a&b|按位或(OR)c=a|b 按位异或(相同为0相异为1)c=a b 右移;左边空位补最高位即符号位 b=a 2 左移;右边空位以补0b=a、=、=、=和!=5.逻辑运算符,如&、|、&、|6.条件运算符和赋值运算符,如?:、=、*=、/=、+=和-=第52页/共81页2.4.1 2.4.1 流程控制结构流程控制语句是用来控制程序中各语句执行顺序的语句,可以把单个语句组合成能完成一定功能的小逻辑模块。其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:顺序结构、分支结构和循环结构,如下图所示:顺序 分支 循环第53页/共81页2.4.2 2.4.2 流程控制语句选择if-else(双分支)Switch(多分支)循环while do-while for跳转跳转breakcontinuereturn第54页/共81页2.4.32.4.3 if-else 选择语句if-else 结构的语法为:if(条件)语句1;else 语句2;if(条件条件)语句组;语句组;else 语句组;语句组;ifif和和elseelse块中块中只有一条语句只有一条语句 ifif和和elseelse块中有多条语块中有多条语句句 if(条件条件1)语句语句1;else if (条件2)语句2;else if (条件m)语句 m;else 语句语句n;条件结果必须是布尔值条件结果必须是布尔值第55页/共81页2.4.32.4.3 if-else 选择语句if(i10)returni*100;elsereturni*10;以上代码片断等效于:returni10?i*100:i*10;if(i10)i=i*100;returni;elsei=i*10;returni;第56页/共81页2.4.4 switch 选择语句 switch(表达式)case 常量值 1:语句(组);break;case 常量值 2:语句(组);break;case 常量值 N:语句(组);break;default:语句(组);表达式必须为表达式必须为bytebyte,shortshort,intint或或charchar类型类型 v常量值必须是与表达式常量值必须是与表达式类型兼容的特定的一个常类型兼容的特定的一个常量量v不允许有重复的不允许有重复的casecase值值 vdefaultdefault子句子句为可选为可选第57页/共81页2.4.4 switch 选择语句switch举例inti=3;switch(i)default:System.out.println(default);case0:System.out.println(zero);case1:System.out.println(one);break;case2:System.out.println(two);第58页/共81页2.4.5 选择结构举例publicclassIfElsepublicstaticvoidmain(Stringargs)intscore=59;if(score60)System.out.println(你此次考试没及格,你得加油哦);elseif(score70)System.out.println(恭喜你,考试及格了);elseif(score80)System.out.println(你的成绩中等);elseif(score=90)System.out.println(你的成绩还不错啊);elseSystem.out.println(你的成绩非常好);第59页/共81页2.4.5 选择结构举例classSwitchCasepublicstaticvoidmain(Stringargs)intscore=88;switch(score/10)case0:case1:case2:case3:case4:case5:System.out.println(你考试没及格);break;case6:System.out.println(恭喜你,你终于有一次及格了);break;case7:System.out.println(你的成绩在班上中等);break;case8:System.out.println(你的成绩在班上很好);break;default:System.out.println(你考的真的太好了!);第60页/共81页while 循环 while(条件)语句组;2.4.5 while循环语句1+2+3+100=?int i=1;int sum=0;while(i=100)sum+=i;i+;System.out.println(“sum=”+sum);v“当型”循环,先判断条件再执行,可能一次也不执行第61页/共81页2.4.6 do-while循环语句do-while循环do 语句组语句组;while(条件条件);1+2+3+100=?int i=1;int sum=0;dosum+=i;i+;while(i=100)System.out.println(“sum=”+sum);v“直到型”循环,先执行再判断条件,也就是说,至少可以执行一次v 在while(条件)后面的分号不要忘第62页/共81页2.4.7 for循环语句for 循环for(变量初始化;循环条件表达式;递增或递减变量的值)语句组;for(i=1,sum=0;i=100;i+);sum+=i;System.out.println(“sum=”+sum);v“初始化”和“循环条件表达式”部分可以使用逗号来执行多个操作v如果三个部分都为空语句(分号不能省),相当于一个无限循环第63页/共81页2.4.7 for循环语句多重循环:打印金字塔classFormorepublicstaticvoidmain(Stringargs)for(inti=0;i8;i+)for(intj=0;j8-i;j+)System.out.print();for(intj=0;j2*i-1;j+)System.out.print(*);System.out.println();第64页/共81页2.4.8 break语句遇到 break 语句时,将跳出当前循环。importJavax.swing.*;classTestBreak1publicstaticvoidmain(Stringarg)StringstrResult;while(true)strResult=JOptionPane.showInputDialog(请输入一个值:);if(strResult.equals(exit)System.out.println(good-by!);break;elseSystem.out.println(strResult);v结束本层循环class TestBreak2public static void main(String args)outer:for(int i=2;i10;i+)inner:for(int j=2;j10)break outer;System.out.println(+i+j);第65页/共81页2.4.9 continue语句遇到continue语句时,将跳到当前循环的开始处。continue语句之后的语句将不再执行for(inti=0;i100;i+)If(i%6!=0)continue;System.out.println(i);v结束本次循环第66页/共81页2.4.10 return返回语句return语句从当前方法退出,返回到调用该方法的语句处,并从该语句的下条语句处继续执行程序。返回语句的两种格式:1、return expression返回一个值给调用该方法的语句。返回值的数据类型必须和方法声明中的返回值类型一致或是精度低于声明的数据类型。2、return当方法声明中用void声明返回类型为空时,应使用这种返回类型,它不返回任何值。第67页/共81页2.5.1 数组定义数组:是有相同类型的、用一个标识符名称封装到一起的一个对象序列或基本数据类型数据序列。数组是一种最简单的复合数据类型。数组可以是一维的也可以是多维的。第68页/共81页2.5.2 一维数组举例classArrayTestpublicstaticvoidmain(Stringargs)/*先声明,再赋值*/intx=newint5;for(inti=0;ix.length;i+)xi=i*10;for(inti=0;ix.length;i+)System.out.println(x+i+=+xi);/*声明的同时就赋值*/inty=12,45,2,900,476;System.out.println(数组y的长度:+y.length);/*用5个随机数填充一个int型数组a*/Random r=new Random();int z=new int5;/*一维数组的解析*/for(int i=0;iz.length;i+)int temp=r.nextInt();zi=temp;System.out.println(“z+i+=+zi);第69页/共81页2.5.2 一维数组定义(声明)+分配内存空间intx;/intx;x=newint10;等价于方法一:intx=newint10;方法二:intx=newint10;第70页/共81页2.5.2 一维数组int x;X=new int100此时还未给数此时还未给数组的元素分配组的元素分配内存内存数组下标0 开始,默认值为0第71页/共81页2.5.2 一维数组方法一:intx=newint10;方法二:intx=newint10;说明:x只是代表数组的代号或名子,它是特殊变量,用于存储地址;x的存储空间在栈内存中分配/intx10声明的时候不能指定长度newint10:用new为具有十个元素的整型数组在堆内存中分配存储空间第72页/共81页2.5.2 一维数组赋值intx;x=newint10;for(inti=0;ix.length;i+)xi=i;初始化intx=newint41,2,3,4;/不允许指定值intx=1,2,3,4;第73页/共81页2.5.2 一维数组使用时要注意的问题空指针异常(NullPointException)示例:inta=null;a0=1;System.out.println(a0);越界异常(ArrayIndexOutBoundsException)示例:inta=newint1,2,3,4,5;System.out.println(a5);第74页/共81页2.5.2 一维数组数组的排序和复制classArrayTestpublicstaticvoidmain(Stringargs)inta=newint31,26,93,44,65;Arrays.sort(a);for(inti=0;ia.length;i+)System.out.println(ai);intb=newint11,22,33,44,55;intc=newint5;System.arraycopy(b,0,c,2,3);for(inti=0;ic.length;i+)System.out.println(ci);第75页/共81页2.5.3 二维数组多维数组(数组的数组)Java没有真正的多维数组,只有数组的数组二维数组的定义typearrayName;typearrayName;intxx=newint33;intxx=3,2,7,1,5,6;第76页/共81页2.5.3 二维数组静态初始化intintArray=3,2,7,1,5,6;Java语言中,由于把二维数组看作是数组的数组,数组空间不是连续分配的,所以不要求二维数组每一维的大小相同。第77页/共81页2.5.3 二维数组动态初始化Intxx=newint3;/指定一个3行n列的数组xx0=newint3;/指定第一行为3列xx1=newint2;/指定第二行为2列第78页/共81页2.5.3 二维数组二维数组举例classTestArraypublicstaticvoidmain(Stringargs)intx=10,20,30,35,45,69;for(inti=0;ix.length;i+)for(intj=0;jxi.length;j+)System.out.println(x+i+j+=+xij);第79页/共81页思考1Java中的标识符是由哪些字符组成的?2Java中有哪些保留字?简单数据类型包含哪几种?各种数据类型变量的定义方法和常量的表示方法及取值范围。3Java中各简单数据类型间的优先次序和自动转换规则是什么?各数据类型间在什么情况下,进行自动转换,在什么情况下使用强制转换?4Java中有哪些运算符?这些运算符的优先关系是怎样的?5Java中有哪些控制语句?你了解每一种控制语句的语法规则吗?6Java中的一维数组和多维数组在数组动态初始化和静态初始化时有何不同?第80页/共81页谢谢您的观看!第81页/共81页