Java语言程序设计复习Word文档格式.docx
- 文档编号:22851594
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:13
- 大小:39.31KB
Java语言程序设计复习Word文档格式.docx
《Java语言程序设计复习Word文档格式.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计复习Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
11.静态方法没有隐含的形参this,所以不能直接访问类中的实例变量成员。
12.没有加访问控制符的类成员具有的访问属性是:
friendly。
13.访问类中的成员有两种情形:
(1)类中的实例方法能够访问类中的所有成员;
静态方法只能访问类中的静态成员;
(2)在类外访问类的实例成员只能通过类对象进行,访问类成员还可以使用“类名.类成员”方式,当然必须注意访问控制权限。
14.定义类时,一般至少定义一个不带形参的构造方法。
15.可以使用this关键字调用本类中的构造方法;
子类构造函数的第一行使用super关键字调用父类的构造方法。
16.Java采用垃圾内存自动回收技术,亦可调用System.gc()回收内存。
若一个类需要释放除内存以外的资源,需要重构方法:
protectedvoidfinallyize()throwsthrowable;
17.方法可以返回对象的引用,通常构造一个匿名对象并返回其地址(引用)。
18.P69,4-2
19.break和continue语句后,可以带行号,有什么作用?
20.异常和错误有什么不同?
21.处理异常的步骤包括:
(1)声明抛出异常:
throws
(2)捕获、处理异常:
try,catch,finally
22.理解自定义异常及使用方法。
23.方法重载的要求是方法名称相同,形参的个数或类型不同;
与重构有什么区别?
24.Java类之间的关系:
(1)hasa?
(2)isa?
25.Instanceof操作符如何使用?
(引用instanceoof类名或接口名;
当引用可以被塑型为右侧的类或接口类型时,其值为true,否则为false)
26.Java继承有什么要求?
(适用于isa关系:
特殊与一般)
27.继承的定义方式?
(extends关键字)
28.Java可以有几个父类?
如果没有定义父类,默认的父类是什么?
29.定义父类时可以实现多个接口吗?
30.如果定义类时实现了接口,但继承的抽象方法有部分没有定义方法体,此时的类应该是抽象类。
抽象类和接口没有实例,即不能定义类对象。
31.访问被隐藏的父类的域成员的方法有两种:
调用从父类继承的方法;
super.域名。
32.方法覆盖也称重构:
保留从父类继承的方法的方法头,重新定义方法的方法体。
这实际上是对父类功能的扩展。
33.方法重载是类方法成员之间或父类与子类同名方法之间的关系,要求形参的个数或类型有差异;
重构是父类方法成员与子类同名方法之间的关系,要求方法头相同。
34.如何定义子类的构造方法?
在子类的构造方法体中,第一行使用super关键字调用父类的构造方法以初始化从父类继承的成员;
如果没有出现super调用,则默认调用父类不带形参的构造方法。
35.==运算符判断引用指向的对象是否同一;
Object类中的equals()方法也用于判断对象的同一性;
String类重构了该方法,判断两个String对象中的字符串是否相同。
可在自定义类时重构该方法,以判断两个对象的属性值是否相等。
36.final类不可以作为父类派生子类;
final方法不能被重构。
37.抽象类中包含抽象方法;
接口成员只有常量和抽象方法两种类型。
38.设计类时,优先考虑组合(hasa),其次才是继承(isa)。
39.包的应用:
包成员访问的限制规则?
40.特殊类:
String与StringBuffer类的区别;
数据类型类对基本数据类型数据的包裹方法?
StringTokenizer类的用法?
(构造方法、hasMoreToken()方法、nextToken()方法);
41.jar文件?
42.接口派生方法?
多重继承的解决方案?
(Java规定只能有一个父类,但可以实现多个接口)
43.塑型?
引用可被塑型成任何父类或父类实现的任何一个接口类型。
44.塑型后的引用访问父类、子类中的相同方法有限制:
对于实例方法,总是从对象创建时所属的类开始,沿着类层次向上查找;
对于类方法(静态方法),总是在引用变量声明时所属的类中查找。
45.早期绑定与动态绑定。
46.利用塑型,一个父类或接口类型的引用变量可以指向不同的父类或子类对象,而利用动态绑定技术可以在运行时根据引用所指向的实际类型执行相应的子类方法。
47.构造方法的执行顺序为:
父类的构造方法、子类的构造方法。
48.内部类的两种类型:
有名内部类,匿名内部类;
定义内部类对象如何进行?
49.面向字符的流Writer与Reader类;
字节流:
InputStream和OutputStream类;
50.标准I/O流有三个:
System.in;
System.out;
System.err;
51.读写文本文件、二进制文件的方法?
File类;
对象序列化方法;
52.如何理解对象数组?
数组中的元素不是对象,而是引用变量,指向对象。
53.基本数据类型数组的排序可使用Arrays.sort(数组名称)方法;
类对象类型如何比较大小?
需要定义比较规则,如可以在定义类时实现Comparable接口,在类中重构方法:
publicintcompareTo(Objectobj);
然后将对象放入集合,使用Collections.sort(集合名称);
从小到大排序。
54.熟悉List接口与Set接口的区别,掌握实现List接口的实用类LinkedList、Vector、Stack、ArrayList的常见用法;
掌握Map接口的实用类HashTable的用法。
55.掌握Iterator类的使用方法;
56.掌握通过继承Thread类和实现Runnable接口创建多线程的方法;
掌握通过共享类对象实现多线程共享数据的方法;
掌握线程同步方法(synchronized语句块和方法);
了解线程间通信的技术(wait、notify方法);
掌握创建后台线程方法;
理解线程的几种基本状态(下表);
掌握线程的优先级分类,线程默认的优先级为5.
57.图形用户界面重点掌握消息处理方法:
(1)消息源注册给事件侦听者;
(2)侦听者监听消息源发出的消息;
(3)侦听者处理消息。
最重要的是掌握侦听者类的定义方法:
(1)实现事件接口;
(2)以适配器类作为父类派生;
(3)通过内部类(有名、匿名)实现。
补充例子;
58.*掌握JDBC访问数据库的步骤:
(1)加载驱动程序;
(2)建立应用程序与数据库的连接;
(3)创建Statement对象;
(4)执行SQL语句;
(5)使用结果集ResultSet;
59.*掌握访问Access数据库的方法;
60.*掌握访问SQLServer数据库的方法。
附录:
JAVA资格认证考试:
SCJP310-055中文考纲
第一部分:
声明、初始化、和作用域。
定义类、内部类、静态类、接口、枚举。
正确使用包语句和导入语句,包括静态导入。
实现或继承一个或多个接口。
定义、继承抽象类。
声明、初始化并使用基本类型、数组、枚举、静态对象、成员变量和局部变量,使用合法的变量标识符。
定义方法和静态方法,使用符合JavaBean命名规范的方法名。
定义并使用可变参数。
正确重写和重载方法并识别方法合法的返回值,包括协变返回。
为类及层次类编写构造函数,知道默认构造函数的行为,实例化类及内部类。
第二部分:
流程控制
正确使用if、switch语句包括参数类型的合法使用。
正确使用所有带标签或不带标签的循环语句包括增强型for,使用break,continue,计算循环计数变量的值。
正确使用断言。
正确使用异常和异常处理语句(try,catch,finally)。
正确定义或重写抛出异常的方法。
知道在程序段的特定点出现的异常对程序的影响,识别其是runtime
exception、checked
exception或error.
知道下列异常在什么情况下会发生:
ArrayIndexOutOfBoundsException,ClassCastException,
IllegalArgumentException,
IllegalStateException,
NullPointerException,
NumberFormatException,
AssertionError,
ExceptionInInitializerError,
StackOverflowError
or
NoClassDefFoundError.
知道上面哪些是由虚拟机抛出的,其他的在什么情况应该被程序抛出。
第三部分:
API内容
正确使用基本的类型包装器及其自动拆/装箱。
区别String、StringBuilder和StringBuffer的不同。
用以下类向给定文件中写或从中读数据:
java.io:
BufferedReader,BufferedWriter,
File,
FileReader,
FileWriter和PrintWriter.
使用以下API序列化或反序列化对象:
DataInputStream,
DataOutputStream,
FileInputStream,
FileOutputStream,
ObjectInputStream,
ObjectOutputStream
and
Serializable.
使用java.text包中的标准API正确格式化或解析特定locale的日期、数字和货币值。
给定需要使用缺省或特定locale的代码段,给出合理的使用。
描述java.util.Locale类的目的和使用。
使用java.util和java.util.regex包中标准的API格式化或解析strings和streams.对于strings,
会使用Pattern和Matcher类及String.split方法。
会使用规则表达式进行模式匹配(限.、*、+、?
、\d、\s、\w、[]、())。
*、+和?
的使用限于贪婪匹配中作为量词,()操作符仅用做分组机制,不用于在匹配中捕获内容。
对于streams,会用Formatter和Scanner类及PrintWriter.format和PrintWriter.printf方法。
识别并使用用于格式化字符串的格式化参数(限%b、%c、%d、%f、%s)。
第四部分:
并行性
能用java.lang.Thread和java.lang.Runnable两种方法定义、实例化和启动新线程。
知道什么情况下线程能存在,知道转换线程状态的方式。
正确使用对象锁保护静态变量和成员变量,正确使用wait,
notify和notifyAll方法及synchronized修饰符。
第五部分:
面向对象原理
能在类中实现紧密封装、高内聚、低耦合并描述其好处。
会写示范多态的代码。
知道什么时候要上溯,知道和对象引用的上溯有关的运行时error。
解释与构造函数、成员变量、静态变量、成员方法、静态方法有关的修饰符在继承机制中的效果。
引用重载或重写的方法,引用超类的或重写的或重载的构造函数。
开发代码实现"
is-a"
和"
has-a"
关系。
第六部分:
集合/泛型
正确选用集合类和接口包括Comparable接口。
区分对hashCode和equals方法重写的正确与否。
知道==和equals方法的不同。
会使用集合的泛型版本,尤其是Set、List和Map接口及implementation类。
知道非泛型版本的集合的不足并会用泛型版本去重构。
在类和接口声明中、成员变量和方法参数中及返回类型中合理使用类型参数。
编写泛型方法和通配型方法,知道其入口的异同。
使用java.util包对list进行以下操作:
排序、二分法查找、转换为array。
使用java.util包对array进行以下操作:
排序、二分法查找、转换为list。
使用java.util.Comparator和java.lang.Comparable接口影响lists和arrays的排序。
知道基本类型包装器和java.lang.String的自然排序的排序效果。
第七部分:
基础内容
正确使用访问控制修饰符、包声明语句、导入语句。
给定一个类和命令行,知道预期的行为。
明确当对象引用或基本类型作为形参传递给方法被赋值或修改后的影响。
给定一段代码,知道什么对象在什么地方能或不能被垃圾收集器合理的收集,明确垃圾收集机制和结束机制的行为。
给定JAR文件内或外的展开的类的全名,为其构造合适的目录结构。
给定一段代码和一个classpath,确定这个classpath是否能使代码正确编译。
正确使用赋值操作符(限=、+=、-=)、算术操作符(限+、-、*、/、%、++、--)、关系操作符(限<
、<
=、>
、>
=、==、!
=)、instanceof操作符、逻辑操作符(限&
、|、^、!
、&
&
、||)、条件操作符(
?
:
)。
编写代码测试两个对象或基本类型是否相等。
题型举例:
例题1:
Choosethethreevalididentifiersfromthoselistedbelow.
A.IDoLikeTheLongNameClass
B.$byte
C.const
D._ok
E.3_case
解答:
A,B,D
点评:
Java中的标示符必须是字母、美元符($)或下划线(_)开头。
关键字与保留字不能作为标示符。
选项C中的const是Java的保留字,所以不能作标示符。
选项E中的3_case以数字开头,违反了Java的规则。
例题2:
Howcanyouforcegarbagecollectionofanobject?
A.Garbagecollectioncannotbeforced
B.CallSystem.gc().
C.CallSystem.gc(),passinginareferencetotheobjecttobegarbagecollected.
D.CallRuntime.gc().
E.Setallreferencestotheobjecttonewvalues(null,forexample).
A
在Java中垃圾收集是不能被强迫立即执行的。
调用System.gc()或Runtime.gc()静态方法不能保证垃圾收集器的立即执行,因为,也许存在着更高优先级的线程。
所以选项B、D不正确。
选项C的错误在于,System.gc()方法是不接受参数的。
选项E中的方法可以使对象在下次垃圾收集器运行时被收集。
例题3:
以下是引用片段:
Consider
the
following
class:
1.
class
Test(int
i)
2.
void
test(int
3.
System.out.println(“I
am
an
int.”);
4.
5.
test(String
s)
6.
a
string.”);
7.
8.
9.
public
static
main(String
args[])
10.
Test
t=new
Test();
11.
char
ch=“y”;
12.
t.test(ch);
13.
14.
Whichofthestatementsbelowistrue?
(Chooseone.)
A.Line5willnotcompile,becausevoidmethodscannotbeoverridden.
B.Line12willnotcompile,becausethereisnoversionoftest()thatrakesacharargument.
C.Thecodewillcompilebutwillthrowanexceptionatline12.
D.Thecodewillcompileandproducethefollowingoutput:
Iamanint.
E.Thecodewillcompileandproducethefollowingoutput:
IamaString.
D
在第12行,16位长的char型变量ch在编译时会自动转化为一个32位长的int型,并在运行时传给voidtest(inti)方法。
例题4:
Whichofthefollowinglinesofcodewillcompilewithouterror?
A.
int
i=0;
if
(i)
System.out.println(“Hi”);
}
B.
boolean
b=true;
b2=true;
if(b==b2)
System.out.println(“So
true”);
C.
i=1;
j=2;
if(i==1||
j==2)
System.out.println(“OK”);
D.
(i==1
|
B,C
选项A错,因为if语句后需要一个boolean类型的表达式。
逻辑操作有^、&
、|和&
、||,但是“&
|”是非法的,所以选项D不正确。
例题5:
Which
two
demonstrate
"
has
a"
relationship?
(Choose
two)
A.
interface
Person
{
public
Employee
extends
Person{
B.
Shape
Rectandle
C.
Colorable
implements
Colorable
{
D.
Species{
Animal{private
Species
species;
E.
Component{
class
Container
Component{
private
Component[]
children;
D,E
点评:
在Java中代码重用有两种可能的方式,即组合(“hasa”关系)和继承(“isa”关系)。
“hasa”关系是通过定义类的属性的方式实现的;
而“isa”关系是通过类继承实现的。
本例中选项A、B、C体现了“isa”关系;
选项D、E体现了“hasa”关系。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言程序设计 复习