Java初学者习题20道
1.Java
源文件中最多只能有一个()类,其他类的个数不限。
public
类
,
而且这个类的类名要和文件名一致
.
2.
面向对象程序设计的特征(封装性)(继承)(多态性)
3.
接口是由(抽象方法)和(常量)组成的特殊类
4.
用
static
修饰的方法是(静态方法,或类方法)
5.
在产生异常的方法声明中声明会产生的异常,向更高一级方法抛出异常的关键字是:
throws
6.
子类通过(
super
)关键字调用父类的构造方法。
7.Java
的标准输出流是(
System.out
)。
8.
实现继承的关键字(
extends
)。
9.JVM
是(
Java
虚拟机
--java virtual machine
)
JDK
是(
java
开发工具包
--Java Developer's Kit
)
appletviewer
是
(
小应用程序阅览器
)
。
10.
用户不能直接调用构造方法,只能通过(
new
)关键字自动调用。
11.
在
Java
中,由
Java
编译器自动导入,而无需在程序中用
import
导入的包是(
java.lang.*
)
12.
在
Java
中,能实现多重继承效果的方式是(实现多个接口)
13.
创建包的语句应该放在程序的位置为(非注释的第一行)。
14.
用(
abstract
)关键字修饰的类只能被继承,不能生成其对象。
15.
通过调用
Thread
类的(
start
)方法来启动一个线程。
16.
定义包的关键字(
package
)
17.Java
不支持多重继承,但可通过(接口
interface
)实现多继承。
18.Java
源程序经编译生成的字节码文件的扩展名为(
class
)
19.Java
的核心包中,提供编程应用的基本类的包是(自己查一下)
20.
每个
Java
应用程序可以包括许多方法,但必须有且只能有一个(
main
)方法。
21.
当实现
Runnable
接口时,要实现的方法是(
public void run()
)
22.
使用(
throw
)关键字可以明确地抛出一个异常
1
、作用域
public,private,protected,
以及不写时的区别
答:区别如下:
作用域
当前类
同一
package
子孙类
其他
package
public
√
√
√
√
protected
√
√
√
×
friendly
√
√
×
×
private
√
×
×
×
不写时默认为
friendly
2
、
Java
设置了几种类成员的访问权限?各表示什么含义?
public
:公有的,说明该类成员可被所有类的对象使用
protectd
:保护的,说明给类成员能被同一类中的其他成员、或其子类成员、或同一包中的其他类访问,不能被其他包中的非子类访问。
无:默认的。说明该类成员能被同一类中的其他成员、或同一包中的其他类访问,不能被其他包的类访问。
Private
:私有的,说明该类成员只能被同一类中的其他成员访问,不能被其他类的成员访问,也不能被子类成员访问。
3
、简述
java
中用来进行异常捕获的语句。
在
java
中使用
try-catch-finally
语句捕获异常。
try
块多异常代码进行检测。
catch
()方法用来捕获所发生的异常,并进行处理。
finally
块为程序提供一个统一的出口。
4
、
error
和
exception
有什么区别
答:
error
表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况,
exception
表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
5
、接口是否可继承接口
?
抽象类是否可实现
(implements)
接口
?
抽象类是否可继承实体类
(concrete class)
答:接口可以继承接口。抽象类可以实现
(implements)
接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数
面向对象的特征有哪些方面
答:主要有以下四方面:
1.
抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
2.
继承:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
3.
封装:
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
4.
多态性:
多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
7
、简要介绍
java
中如何实现多重继承机制。
java
中支持单继承,使用关键字
extends
可以继承另外一个类。
被继承的类叫父类,继承的类叫子类。子类可以继承父类的成员方法和成员变量。
为了实现多重继承,
java
采用了接口机制,通过
implements
可以实现多个接口
8
、简述封装的概念及封装的目的
的封装性包括两层含义:一、将数据和对数据的操作组合起来构成类,
二是既要提供与外部联系的俄方系,又要尽可能隐藏类的实现细节。
目的是隐藏类内部实现细节,提高代码的重用性。
覆盖和重载
覆盖:覆盖一个方法并对其重写,以求达到不同的做用!覆盖要注意一下几点:
1
)
覆盖的方法标识必须要和被覆盖的方法标志完全匹配!
2
)
覆盖方法的返回值必须和被覆盖方法的返回值一致!
3
)
覆盖方法所抛得异常必须和被覆盖方法所抛得异常一致或者是其子类!
4
)
被覆盖的方法不能为
private
,否则其子类只是定义了一个方法,并没有对其覆盖!
重写:定义一些名称相同的方法,通过传入参数的不同来区分这些方法,再调用时,会根据不同的参数样式来选择合适的方法执行!重载要注意一下几点:
1
)在使用重载时只能通过不同的参数样式,如:不同参数类型、不同参数个数、不同参数顺序!
2
)不能通过访问权限、返回类型、抛出异常来进行重载!
3
)方法的异常类型和数目不会对重载构成影响!
4
)对于继承来说,如果父类方法访问权限为
private
,那么就不能再子类对其重载,如果定义的话也只是定义一个新方法,而不会达到重载的效果
java中的常用包
1
)
java.applet
:包含一些用于创建
Java
小应用程序的类。
2
)
java.awt
:包含一些用于编写与平台无关的图形界面
(GUI)
应用程序的类。
3
)
java.io
:包含一些用作输入输出
(I/O)
处理的类。
4
)
java.lang
:包含一些
Java
语言的基本类与核心类,如
String
、
Math
、
Integer
、
System
和
Runtime
,提供常用的功能,这个包中的所有类是被隐式导入的。
5
)
java.net
:包含用于建立网络连接的类,与
java.io
同时使用完成与网络有关的读写。
6
)
java.util
:包含一些实用工具类和数据结构类
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,final分别代表什么意义?在try块中可以抛出异常吗?
Java
通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口
在
Java
中,每个异常都是一个对象,它是
Throwable
类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,
调用这个对象的方法可以捕获到这个异常并进行处理。
Java
的异常处理是通过
5
个关键词来实现的:
try
、
catch
、
throw
、
throws
和
finally
。
一般情况下是用
try
来执行一段程序,如果出现异常,系统会抛出(
throws
)一个异常,
这时候你可以通过它的类型来捕捉(
catch
)它,或最后(
finally
)由缺省处理器来处理。
用
try
来指定一块预防所有“异常”的程序。紧跟在
try
程序后面,应包含一个
catch
子句来指定你想要捕捉的“异常”的类型。
throw
语句用来明确地抛出一个“异常”。
throws
用来标明一个成员函数可能抛出的各种“异常”
Finally
为确保一段代码不管发生什么“异常”都被执行一段代码。可以在一个成员函数调用的外面写一个
try
语句,
在这个成员函数内部写另一个
try
语句保护其他代码。每当遇到一个
try
语句,“异常”的框架就放到堆栈上面,直到所有的
try
语句都完成。如果下一级的
try
语句没有对某种“异常”进行处理,堆栈就会展开,直到遇到有处理这种“异常”的
try
语句。
排序都有哪几种方法?请列举。用JAVA实现一个快速排序。
排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)
快速排序的伪代码。
/ /
使用快速排序方法对
a[ 0 :n- 1 ]
排序,从
a[ 0 :n- 1 ]
中选择一个元素作为
m i d d l e
,该元素为支点,把余下的元素分割为两段
left
和
r i g h t
,使得
l e f t
中的元素都小于等于支点,而
right
中的元素都大于等于支点,递归地使用快速排序方法对
left
进行排序,递归地使用快速排序方法对
right
进行排序,所得结果为
l e f t + m i d d l e + r i g h t
。