1JAVA考试重点复习第一章Java概述1.Java如何实现跨平台?通过Java虚拟机JVM来实现跨平台,先将Java源程序编译成字节码(后缀为.class的代码),字节码可以在Java虚拟机上运行,不同的平台有不同的Java虚拟机JVM,相同的字节码可以不同的平台上运行。2.Java开发的三个平台是什么?J2SE、J2EE和J2ME3.如何编译与运行java程序?在Dos命令提示符状态下通过命令行来实现的。例如:如果用命令行运行test的话,后面不可以写“.class”,若写成test.class系统会把class当成类名test当成类包,所以在没有类包的情况下不要写成“.class”形式。第二章Java基础1.什么是标识符?如何定义标识符?标识符是用来标识变量、常量、方法、类、对象等元素的有效字符序列。Java语言规定标识符由字母、下划线、美元符号和数字等组成,并且第一个字符不能是数字。对标识符的约定:(1)变量名、对象名、方法名、报名等标识符全部采用小写字母;如果标识符由多个单词构成,则首字母小写,其后单词的首字母大写,其余字母小写,如getAge。(2)类名首字母大写。(3)常量名全部字母大写。2.关键字的定义?关键字是由Java语言定义的、具有特殊含义的字符序列。其首字母不能大写。如:this,super,extends,if,class,instanceof3.Java中数据类型的结构?float与double定义时的区别:float型的数要在后面要加f,如34.5f4.常量与变量的声明方式?常量:final[修饰符]类型标识符常量名=(直接)常量如:finalpublicdoublePAI=3.14;变量:[修饰符]类型标识符变量名[=常量];如:publicfloatx=25.4f;常量与变量的区别:一旦定义为常量了,其值不能改变,若要改变其值,只能改变声明时Outputtest.javaccjavactest.classjavaJava数据类型类型lel类型布尔(boolean)数值类型短整数(short)字节(byte)字符(char)长整数(long)整数(int)双精度浮点数(double)单精度浮点数(float)定点类型浮点类型基本数据类型引用数据类型类接口数组2的值。5.Java的运算符和表达式?单目运算符:++、--、-双目运算符:+、-、*、/、%逻辑运算符:&、|、!、^、&&、||区别:逻辑与:&逻辑或:|短路与:&&(只要一个为F,一定为F)短路或:||(只要一个为T,则一定为T)6.关于注释的正确写法?“//…………”单行注释“/*…………*/”多行注释第三、四、五章1.Java的三种基本控制结构?顺序,选择和循环if,switch,while,for,continue与break区别2.数组的定义?举例定义一个基本数据类型的数组和一个引用数据类型的数组。数组是一组同类型的数据的集合,除了基本数据类型还包括引用数据类型,那么引用数据类型数组是如何声明、初始化和使用的。例:基本数据类型数组的声明,初始化int[]c=newint[5];(5表示数组的单元长度是5)c[0]=-5;或int[]c={1,2,3};c[2]=3;引用数据类型数组的声明初始化例:String[]s=newString[3];(3表示有3个单元)S[0]=newString(“ab”);或String[]s1={“1”,“2”,“3”};或String[]s1=newString(“1”);String[]s2=newString(“2”);String[]s3=newString(“3”);3.如何声明数组,初始化数组以及使用数组?4.如何获得数组单元的长度?intlen=s.length5.熟练掌握一维数组的声明、初始化和操作6.字符串的声明与初始化?常量字符串String字符串直接量字符串字符串常量可变字符串StringBuffer字符串Strings=“hello”hello会保存在字符串值里字符串直接量Strings1=newstring(“hello”);在堆上开辟了一个新的对象空间来存放hello对象变量Strings2=“hello”;先看字符串池里面有没有hello,若有则直接将s2指向那个位置3Strings3=newstring(“hello”);只要有new出现就一定会开辟一个新的空间。7.字符串直接量与字符串常量的区别:存储位置不一样,字符串直接量放在字符串值里,字符串常量放在堆上。8.常量字符串类与可变字符串类分别是什么?9.常量字符串的基本操作方法有哪些?5+5+“Hello”=?“10Hello”“Hello”+5+5=?“Hello55”“==”与“equals”的区别:比较对象是否相等的方法是“==”和“equals”,在采用“equals”进行比较时不会出现问题,“==”比较引用变量的值,“equals”(对象:内存里整块存储的东西,对象变量Strings1s1即为对象变量)比较的是对象里的内容,故比较时应该比较对象里面所包含的内容而不是对象变量。第六、七、八章1.什么是类?类的成员组成?接口是否为类的成员?类就是将我们自然界中的事物的属性特点和行为特点抽象封装到类当中,反映这类事物的特点和功能。类的成员包括域变量和成员方法,对于域变量和成员方法都可以用static来修饰,static修饰的域变量称为类变量,static修饰的方法称为类方法,没有被static修饰的域变量和成员方法称为实例变量(可以在程序中直接调用)和实例方法。接口不是类的成员,是一种特殊的类,不用class,而用interface。2.关于类的正确表述?必须依照类的写法,如何定义3.什么是静态域变量和实例域变量,静态方法和实例方法?静态域变量称为类变量,静态方法也称为类方法,因为它们可以通过“类名.”来调用。4.什么是对象?如何创建对象?什么是对象变量?如何对对象进行初始化?对象是类的一个实例。new在创建对象的作用:(1)通过new在堆上开辟一个对象空间,将类当中的域变量跟成员方法复制到对象空间当中;(2)通过new来调用构造方法来初始化对象;(3)将对象空间的首地址赋值给对象变量。对象变量就是指对象的首地址,通过构造方法对对象进行初始化。5.什么是构造方法?构造方法的特点与作用?构造方法:(1)在一个类中方法名与类名相同的方法;(2)构造方法不是通过对象来调用,而是通过new运算符来调用;(3)构造方法是一种特殊的成员方法,它没有返回值。构造方法特点:可以被重载,当没有在类中定义构造方法时,系统会默认提供一个不带参数的构造方法。作用:初始化对象。6.super和this关键字的用法?this用在当前类,当前类的一个默认的对象,可以通过this来调用当前类的属性和成员方法,也可以直接调用当前类的构造方法的重载方法。super用于一个类的子类中,作为父类在子类中的一个默认的对象,通过它来调用父类的成员属性和成员方法,也可以在子类的构造方法里直接调用父类的构造方法。7.final修饰类、变量和方法时各有什么特点?修饰类:这个类不能够被继承。修饰变量:这个变量值不能改变,成为一个常量。修饰方法:这个方法不能被覆盖。8.面向对象编程中,java类的三个主要特征是?4三个主要特征:封装性、继承性和多态性封装性:通过类的访问修饰符来实现封装性的public,protected,缺省,private的访问权限继承性:extends一个类继承了另一个类,那么父类的所有成员属性和成员方法都可以被继承到子类当中,子类也可以创建新的成员属性和成员方法(现有的类创建新的类的特性)super多态性:静态多态性,如:重载函数。动态多态性,如:覆盖函数。重载(overload):一个类中可以定义多个名称相同,但参数变量不同的方法,重载方法与返回类型无关,重载方法常常用于构造方法,用于实现不同功能的初始化工作,重载也称为静态多态性,这是由于该方法被调用时采用静态地址充定位方式。覆盖(override):在子类中对父类的某方法进行了重新定义,但方法的签名特征与父亲完全一致,访问修饰符的访问的限制宽于或至少等于父类的访问权限;主要用于实现同一个方法在不同的类中实现不同的表现形式,覆盖也称为动态多态性,这是由于该方法只有在运行时才能确定所调用的地址(也是多态性)。9.什么是抽象类?什么是抽象方法?抽象类的特点?在类中至少有一个方法是抽象方法,那么这个类就称为抽象类,用abstract来修饰抽象类。抽象方法即没有定义这个方法的主体,给出这个方法的签名特征。特点:抽象类的对象变量是通过它的非抽象的子类来初始化的。如:AnimalT=newTiger()里的方法都是抽象方法,修饰符为public,没有写默认为public抽象类非抽象类10.什么是接口?接口的特点?接口的作用?接口是使用interface关键字来代替class的特殊的类。接口的三种形式:(1)仅有常量接口;(2)常量和抽象方法接口(3)仅有抽象方法接口。作用:(1)可以实现常量接口在多个类当中共享常量;(2)实现共享一组标准操作来实现多个类之间的共享约定;(3)实现多态性。11.接口与抽象类的区别?接口中所有的方法都是抽象方法,不管这个方法是否使用public,abstract修饰,它都是默认的公有的抽象方法,抽象类至少有一个抽象方法,而且还有一个成员方法,接口中不能定义构造方法,抽象类可以定义构造方法。12.什么是包?包的作用?包是java语言提供的组织类和接口的工具,将一组相关的类为接口,组织到一个包中。作用:(1)通过包可以来确定类的唯一标识;(2)通过包可以将相似功能的类和接口组织在一个包中。第九章1.什么是异常?为什么要处理异常?异常是指程序运行过程中出现的非正常现象。由于异常情况总是难免的,良好的应用程序除了具备用户所要求的基本功能外,还应该具备预见并处理可发生的各种异常的功能。2.异常的基本处理方式?常用的异常类有哪些?两种处理方式:(1)一旦捕获异常马上进行处理。try,catch,finally(2)捕获异常并不处理,而是利用方法将异常抛出,throw,throws3.Error和Exception类的区别?Error是用来处理较少发生的系统内部的错误,程序员对这些错误通常无能为力,只能在发生时由用户按照提示来终止程序的运行。4.throw和throws语句的区别?5throw是抛出一个异常对象,如:thrownew×××Exceptionthrows是某一个方法在声明和定义时,这个方法后面紧跟着throws,然后阐明这个方法可能抛出异常,如:throwsnew×××Exception这个异常可以是标准异常类,也可以是自定义的异常类。第十章1.Java输入输出的基本方式?主要是通过输入和输出流实现的,输入流将数据从文件标准输出或其他外部设备输入,输出流将数据保存到文件或传输给相关的设备。2.字符流域字节流的区别是什么?举例说明哪些类处理字符流?哪些处理字节流?如果字节流向字符流进行转换需要用什么类?字节流是以字节为单位的访问文件,字节流具有两个重要的抽象类,“inputstream和outputstream”。字符流是以字符为单位的访问文件,两个重要的抽象类,“Reader和Writer”。桥接类在定义字节流时,由于任何字节流的类都跟着一个stream,字符流的类后缀reader,writer。桥接类:跟着Inputstreamreader和Outputstreamwriter。3.为什么需要使用带有缓冲的输入输出流进行数据的读取与写入?提高运行效率,对字符而言,为BufferReader,对字节而言,BufferInputstream如:BufferReadernew=BufferReader()第十一、十二章1.javaGUI编程需要导入哪些包?.awt*,.Swing*,.event*2.什么是组件?什么是容器?哪些是顶层容器?哪些是中间容器