java考试复习重点资料.docx
- 文档编号:12410448
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:84
- 大小:80.08KB
java考试复习重点资料.docx
《java考试复习重点资料.docx》由会员分享,可在线阅读,更多相关《java考试复习重点资料.docx(84页珍藏版)》请在冰豆网上搜索。
java考试复习重点资料
JAVA考试重点复习
第一章Java概述
1.Java如何实现跨平台?
通过Java虚拟机JVM来实现跨平台,先将Java源程序编译成字节码(后缀为.class的代码),字节码可以在Java虚拟机上运行,不同的平台有不同的Java虚拟机JVM,相同的字节码可以不同的平台上运行。
2.Java开发的三个平台是什么?
J2SE、J2EE和J2ME
3.如何编译与运行java程序?
在Dos命令提示符状态下通过命令行来实现的。
例如:
如果用命令行运行test的话,后面不可以写“.class”,若写成test.class系统会把class当成类名test当成类包,所以在没有类包的情况下不要写成“.class”形式。
第二章Java基础
1.什么是标识符?
如何定义标识符?
标识符是用来标识变量、常量、方法、类、对象等元素的有效字符序列。
Java语言规定标识符由字母、下划线、美元符号和数字等组成,并且第一个字符不能是数字。
对标识符的约定:
(1)变量名、对象名、方法名、报名等标识符全部采用小写字母;如果标识符由多个单词构成,则首字母小写,其后单词的首字母大写,其余字母小写,如getAge。
(2)类名首字母大写。
(3)常量名全部字母大写。
2.关键字的定义?
关键字是由Java语言定义的、具有特殊含义的字符序列。
其首字母不能大写。
如:
this,super,extends,if,class,instanceof
3.Java中数据类型的结构?
float与double定义时的区别:
float型的数要在后面要加f,如34.5f
4.常量与变量的声明方式?
常量:
final[修饰符]类型标识符常量名=(直接)常量
如:
finalpublicdoublePAI=3.14;
变量:
[修饰符]类型标识符变量名[=常量];
如:
publicfloatx=25.4f;
常量与变量的区别:
一旦定义为常量了,其值不能改变,若要改变其值,只能改变声明时的值。
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.length
5.熟练掌握一维数组的声明、初始化和操作
6.字符串的声明与初始化?
常量字符串String字符串直接量
字符串字符串常量
可变字符串StringBuffer
字符串
Strings=“hello”hello会保存在字符串值里
字符串直接量
Strings1=newstring(“hello”);在堆上开辟了一个新的对象空间来存放hello
对象变量
Strings2=“hello”;先看字符串池里面有没有hello,若有则直接将s2指向那个位置
Strings3=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类的三个主要特征是?
三个主要特征:
封装性、继承性和多态性
封装性:
通过类的访问修饰符来实现封装性的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,throws
3.Error和Exception类的区别?
Error是用来处理较少发生的系统内部的错误,程序员对这些错误通常无能为力,只能在发生时由用户按照提示来终止程序的运行。
4.throw和throws语句的区别?
throw是抛出一个异常对象,如:
thrownew×××Exception
throws是某一个方法在声明和定义时,这个方法后面紧跟着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.什么是组件?
什么是容器?
哪些是顶层容器?
哪些是中间容器?
组件是图形用户界面是哪个现实的各种图形基本成分和核心元素。
容器是可以包含其他组件的组件,容器是组件的一种。
顶层容器:
JFrame,JDialog,JApplet(用于布局其他容器与组件的最基本容器)
中间容器:
JPanel,JScrollpane,JTabbedpane,JToolBar
最灵活最常用的中间容器
3.什么是布局管理器?
作用是什么?
说出三种布局管理器及其特点。
布局管理器是用来管理各种组件容器中摆放位置的对象;作用是将组件房子相应的位置,使容器中的组件安排更加合理,减少与系统平台的相关性;BorderLayout(边布局)类:
把容器内的空间划分为东、西、南、北、中五个区域;FlowLayout(流式布局)类:
从左到右排列;GridLayout(网格布局)类:
从左到右从上到下的顺序依次放入各网格中(没个网格只能放一个组件)
4.什么是事件?
Java如何处理用户的操作?
事件:
当用户用键盘或鼠标来进行操作时,操作系统发出的相应的信号。
事件源:
用户在操作过程中所使用的相关组件。
通过事件驱动模型来处理用户操作的。
5.列出常用的时间监听器接口及其方法。
ActionListeneractionperformed()
AdjustmentListeneradjustmentValueChange()
FocusListenerfocusLost()focusGained()
ItemListeneritemStateChange()
KeyListenerkeyPressed()正按下那个键还没有弹起keyTyped()已经按下那个键
MouseListener
JAVA编程复习总结笔记一
1 安装JDK时不要默认安装到C:
\ProgramFiles\java…..,因为’ProgramFiles’中间有空格,会对以后安装的相关软件的运行。
所以,最好默认安装到C:
\jdk…..中。
2 Eclipse也是java写的
3 java最关键两种机制:
垃圾收集和虚拟机
4 SDK:
SoftwareDevelopmentKit JRE:
JavaRuntimeEnvironment
5 Solaris
6 配置path&classpath
1) Path:
windows系统执行命令时要搜索的路径
所以,javac其实是执行了windows下面的一个可执行文件:
C:
\jdk5.0\bin下面的javac.exe命令.windows执行时会到一个叫path的环境变量下去找。
2) Classpath:
java在编译和运行时要找的class所在的路径
.;当前目录下执行,一定要写在最前面。
C:
\testtest目录下执行
7 UltraEdit-32 出现###.java.bak文件,是UltraEdit自动添加的. 高级--配置--文件处理--备份:
选择不备份就可以了
8 本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域.
因此,变量必须先声明(先把这块内存给我分配了),后赋值(填内容),才能使用。
9 内存管理:
Heap:
动态生成内存用的,即new出来的东西
Stack:
局部变量
Datasegment:
静态变量字符串常量
Codesegment:
存放代码
10 java变量的分类:
1) 按被声明的位置
局部变量:
方法或语句块内部声明的
成员变量:
(不是C++的全局变量)方法体外,类体的内部声明的
11 Java采用Unicode编码,Unicode是全球语言统一编码
12 8位表示1个字节,2个字节表示1个字符。
(1个字节最多表示2的8次方个符号,所以用来表示中文,日文一个字节不够用,所以中国有国标码:
GB2312)
13Boolean只能是true和false.
1 Byte:
一个字节 short:
二个字节 int:
四个字节 long:
八个字节
2 八进制要求以0开头,如012
十六进制要求以0X或0x开头,如0x12
3 编程格式:
1) 右大括号对齐
2) 遇到左大括号tab键(或者shift+tab)缩进
3) 程序块之间加空行
4) 并排语句之间加空格
5) 运算符两边加空格
6) 成对编程
7) {前面有空格
4 运算符
/:
除 %:
求余
5 Voidcatchdog(Dogd){
d.scream();
)
6 JDK本身就提供了很多类,比如string
7 引用变量相关知识点:
Java里除了基本类型(四类八种)之外的变量都叫引用类型
Java中的对象是通过引用对其操作的。
引用分配的是两块内存:
String s; 先在内存中占NULL,在stack内存中
S=newstring(“hi”); 完了实际分配内存,s指向了在heap内存中中new出的对象
类的成员变量在不同的对象中有不同的值
但方法只有一份,不占内存,只是一堆代码。
只有在执行的时候才占内存。
8 使用对象(引用).成员变量
使用对象(引用).方法来调对象的方法。
9 构造方法与类同名且没有返回值,而其他的方法必须要有返回值,没有int double的时候必须也要有void.
10 Personjyang=newperson(1,3);的时候,注意类person带了参数,说明不是编译器自动添加的构造函数了,这说明已经重载的构造方法。
如果没有重载的话,应该是personjyang=newperson();
11 约定俗成的命名规则:
1) 类名的首字母大写
2) 变量名和方法名的首字母小写
3) 驼峰标识
1 static
1) static的成员变量只有一份,不像其他的成员变量只要new一个对象就有一份。
2) 在调用static方法时,不会将对象的引用传递给它!
static方法中不能访问非static成员,即静态方法不再是针对某个对象调用,所以不能访问非静态方法。
3) 可以通过对象引用或类名(不需要实例化)访问静态成员。
2 第一句话写package
访问位于同一个包下面的类不需要引入
3 java.lang包含一些java的核心类,如string,math,integer,system和Thread,提供常用功能。
Java.awt包含了构成抽象窗口工具集(abstractwindowtoolkits)的多个类,用来构建GUI。
Java.applet包含applet运行所需的一些类。
J包含执行与网络相关的操作的类。
Java.io
Java.util包含一些实用工具类,如定义系统特性,使用与日期日历相关的函数。
4 jar –cvf xx.jar *.*
5 private 类内部访问,即使是子类继承了也不能用。
default 类内部,同一个包内的其它类也可以访问
protected 类内部。
同一个包可以访问或者不是这个包但是子类也可以
public 任何地方都可以
6 extends 通过继承,子类自动拥有了基类的所有成员变量和方法。
7 java只支持单继承,一个子类只能有一个基类,但一个基类可有派生出多个子类
8 重写:
override
在子类中可以根据需要从基类中继承来的方法进行重写。
重写方法必须和被重写的方法具有相同的方法名称,参数列表和返回类型
重写方法不能使用比被重写方法更严格的访问权限
重载:
一个类中的。
9 Java类中使用super来引用基类成分,
This是当前对象的引用(this.##),super是父类对象的引用(super.##)。
1 继承中构造方法的规则
1) 子类的构造的过程中必须调用其基类的构造方法,即构造子类的时候必须先构造好基类(没有父亲的存在哪有儿子的存在)
2) 子类可以在自己的构造方法中使用super(argment_list)调用基类的构造方法.如果调用super,必须写在子类构造方法的第一行
3) 如果子类没有显示的调用基类构造方法,系统默认调用基类默认的构造方法(此时,如果基类构造方法重载,这时没有写无参数的构造方法,编译器没有默认构造方法,则出错)
2 Object类
1) Java.lang中的类,是所有java类的根基类
2) 类的声明中未使用extends关键字指明其基类,则默认为从objects继承
3) finalize():
类似C++的析构函数,在java中垃圾回收器帮忙自动调用这个方法。
clone():
getClass():
与反射有关,返回一个对象运行时的类
toString():
1) object类中定义有public String toString(),其返回值是String类型,描述当前对象的有关信息。
2) 在进行String与其它类型数据的连接操作时(如:
System.out.println(“info”+Persion)),将自动调用该对象类的toString()方法
3) 可以根据需要在用户自定义类型中重写public String toString()方法。
system.out.println(b);(b是一个new出的对象)
4) 重写要copy!
如果重写成public String ToString(),编译没问题,但运行不行。
equals():
加“s”第三人称。
1) system.out.println(C1==C2) 结果为false
system.out.println(C1.equals(C2));结果为false.这是最原始的equals方法,所以结果换汤不换药,和上面的一样。
因为比较的两个猫的引用,内存地址不等,永远不等。
2) 所以需要重写equals()方法:
publicbooleanequals(Objectobj){
if(objinstanceofCat){ //如果obj属于一只猫
Catc = (Cat)o
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 考试 复习 重点 资料