构造最全JAVA面试笔试题Word文件下载.docx

上传人:b****1 文档编号:15311226 上传时间:2022-10-29 格式:DOCX 页数:16 大小:23.52KB
下载 相关 举报
构造最全JAVA面试笔试题Word文件下载.docx_第1页
第1页 / 共16页
构造最全JAVA面试笔试题Word文件下载.docx_第2页
第2页 / 共16页
构造最全JAVA面试笔试题Word文件下载.docx_第3页
第3页 / 共16页
构造最全JAVA面试笔试题Word文件下载.docx_第4页
第4页 / 共16页
构造最全JAVA面试笔试题Word文件下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

构造最全JAVA面试笔试题Word文件下载.docx

《构造最全JAVA面试笔试题Word文件下载.docx》由会员分享,可在线阅读,更多相关《构造最全JAVA面试笔试题Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。

构造最全JAVA面试笔试题Word文件下载.docx

类(Class)是Java代码的基本组织模块,是用以描述一组具有共同属性和行为的对象的基本原型,是对这组对象的概括、归纳与抽象表达。

类是对象的模板,它定义了本类对象所应拥有的状态属性集及操作这组属性的行为方法集。

是对一组有相同数据和相同操作的对象的定义,一个类所包含的方法和数据描述一组对象的共同属性和行为。

类和对象之间的关系是抽象和具体的关系:

类就是一种模板,表达的是一种抽象的概念,它描述了该类对象的共同特征,类是在对象之上的抽象,对象则是类的具体化,是类的实例。

对象是模板的实例化,是个性的产物,是一个具体的个体;

类必须通过对象才能使用,而对象中的属性和行为都必须在类中定义;

类由属性和行为(方法)组成。

3.什么是包?

把一个类放在包里有什么作用?

Java中的包(Package) 

是一种松散的类的集合,是用来组织与管理类与接口的容器。

包的作用主要是把需要协同工作的不同的类组织在一起,使得程序功能清楚、结构分明。

4.作用域public、private、protected以及不写时(default)有什么区别?

当用一个类创建了一个对象之后,该对象可以通过“.”运算符访问自己的变量,并使用类中的方法。

但访问自己的变量和使用类中的方法是有一定限制的。

通过修饰符private、default、protected和public来说明类成员的使用权限。

private(私有的):

类中限定为private的成员只能在这个类中被访问,在类外不可见。

default(无修饰符,缺省的):

如果没有访问控制符,则该类成员可以被该类所在包中的所有其它类访问。

protected(受保护的):

用该关键字修饰的类成员可以被同一类、被该类所在包中的所有其它类或其子类(可以不在同一包中)的实例对象访问。

public:

用public修饰的类成员可以被其他任何类访问,前提是对类成员所在的类有访问权限。

类成员访问控制符与访问能力之间的关系

同一个类同一个包不同包的子类不同包非子类

private*

default**

protected***

public****

5.什么是方法?

方法的结构是怎样的?

设计方法应考虑哪些因素?

方法是Java类的一个组成部分,通过类的方法改变对象的状态。

方法的结构:

[方法修饰符] 

返回值类型 

方法名([形参列表])[throws异常列表] 

{

方法体;

}

设计方法应考虑因素有:

(1) 

方法名是Java中任意的标识符,按照命名的约定,方法名应该是有意义的动词或动词短语,它的第一个字母一般要小写,其他有意义的单词的首字母要大写,其余字母小写。

(2) 

返回值类型可以是任意的Java类型,甚至可以是定义此方法的类。

如果方法没有返回值,则用void表示。

(3) 

形式参数列表是可选的。

如果方法没有形式参数,就用一对小括号“()”表示。

形式参数列表的形式如下:

(类型 

形参名,类型 

形参名,……) 

(4) 

throws异常列表规定了在方法执行中可能导致的异常。

6.什么是方法的覆盖?

与方法的重载有何不同?

方法的覆盖与属性的隐藏有何不同?

子类重新定义父类中已经存在的方法,称为方法的覆盖。

方法重载指一个类中有多个方法享有相同的名字,但是这些方法的参数必须不同,或者是参数的个数不同,或者是参数类型不同。

返回类型不能用来区分重载的方法。

其实方法重载的最主要的作用就是实现同名的构造方法可以接受不同的参数。

参数类型的区分度一定要足够,例如不能是同一简单类型的参数,如int与long。

方法的重载不是子类对父类同名方法的重新定义,而是在一个类中定义了同名的不同方法。

方法覆盖与属性的隐藏不同:

子类重新定义父类已有的域,并不能完全取代它从父类那里继承的同名的域,这个域仍然占用子类的内存空间,在某些情况下会被使用;

而当子类重新定义父类的方法时,从父类那里继承来的方法将被新方法完全取代,不再在子类的内存空间中占一席之地。

7.什么是成员变量、局部变量、类变量和实例变量?

在方法外但在类声明内定义的变量叫成员变量,作用域是整个类。

在方法体中定义的变量和方法的参数被称为局部变量。

类的成员变量分为类变量和实例变量,类变量是用关键字static声明的变量。

成员变量在整个类内都有效,局部变量只在定义它的方法内有效。

他们的生存期分别是:

局部变量在定义该变量的方法被调用时被创建,而在该方法退出后被撤销;

实例变量在创建该类的实例时被创建,而其生存期和该类的实例对象的生存期相同;

类变量在该类被加载时被创建,所有该类的实例对象共享该类变量,其生存期是类的生存期。

任何变量在使用前都必须初始化,但是需要指出的是局部变量必须显式初始化,而实例变量不必,原始类型的实例变量在该类的构造方法被调用时为它分配的缺省的值,整型是0,布尔型是false,而浮点型是0.0f,引用类型(类类型)的实例变量的缺省值是null,类变量的规则和实例变量一样,不同的是类变量的初始化是在类被加载时。

8.什么是继承?

什么是父类?

什么是子类?

继承的特性可给面向对象编程带来什么好处?

继承(Inheritance):

继承是指从已有的类中派生出若干个新类,是子类自动共享父类之间数据和方法的机制。

已有类称为基类或父类,新类称为派生类或子类;

子类将自动地获得基类的属性与方法,从而不需再重复定义这些属性与方法;

当然子类还可以修改父类的方法或增加新的方法,从而使自己更适合特殊的需要。

类之间的继承关系是现实世界中遗传关系的直接模拟。

如果没继承性机制,则类对象中数据、方法就会出现大量重复。

继承不仅支持系统的可重用性,而且还促进系统的可扩充性。

继承是子对象可以继承父对象的属性和行为,亦即父对象拥有的属性和行为,其子对象也就拥有了这些属性和行为。

这非常类似大自然中的物种遗传。

9.什么是多态?

面向对象程序设计为什么要引入多态的特性?

多态性:

是指不同类的对象收到相同的消息时,得到不同的结果。

即允许不同类的对象对同一消息作出各自的响应,以统一的风格处理已存在的数据及相关的操作。

多态性语言具有灵活、抽象、行为共享、代码共享的优势,较好地解决了应用程序中方法同名的问题。

多态的特点大大提高了程序的抽象程度和简洁性,更重要的是它最大限度地降低了类和程序模块之间的耦合性,提高了类模块的封闭性,使得它们不需了解对方的具体细节,就可以很好地共同工作。

这对程序的设计、开发和维护都有很大的好处。

10.“子类的域和方法的数目一定大于等于父类的域和方法的数目”,这种说法是否正确?

为什么?

这样说是不对的,因为父类的私有方法不能被继承。

如果父类有N个私有域和方法而只有一个非私有的域或方法时,跟据继承的原则子类只能拥有父类的非私有域和方法。

这时子类的域和方法就要小于父类了。

11.父类对象与子类对象相互转化的条件是什么?

如何实现它们的相互转化?

一个子类对象也可以被合法地视为一个父类的对象,即一个父类对象的引用,其指向的内存单元可能实际上是一个子类的对象。

在这种情况下,可以使用强制类型转换,将父类对象的引用转换成实际的子类对象的引用。

12.以下代码共创建了几个对象:

String 

s1=new 

String(“hello”);

s2=new 

s3=s1;

s4=s2;

13.分析以下代码,编译时出现什么现象:

The 

local 

variable 

myArg 

may 

not 

have 

been 

initialized

public 

class 

Test 

static 

int 

1;

void 

main(String[] 

args) 

myArg;

System.out.println(myArg);

14.对于以下程序,运行“java 

Mystery 

Mighty 

Mouse”,得到的结果:

Mouse 

Changer 

new 

Changer();

c.method(args);

System.out.println(args[0] 

” 

args[1]);

method(String[] 

s) 

temp 

s[0];

s[0] 

s[1];

s[1] 

temp;

15.阅读下列程序,写出输出的结果:

100 

10 

10

Xxx 

private 

i;

x;

Xxx() 

10;

null;

Xxx(int 

i) 

this.i 

Xxx();

print() 

System.out.println(“i 

i);

System.out.println(x);

toString() 

return 

”i 

Test{

Xxx(100);

x.print();

System.out.println(x.x);

16.为了使以下Java应用程序输出11、10、9,应在(**)处插入的语句是:

i[a]=(int)x[a]+1;

如果要求输出10、9、8,则在(**)处插入的语句应是:

i[a]=(int)x[a];

GetIt 

main(String 

args[]) 

double 

x[] 

{10.2, 

9.1, 

8.7};

i[] 

int[3];

for(int 

0;

<

(x.length);

a++) 

(**)

System.out.println(i[a]);

17.阅读下列程序,分析程序的输出结果

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 广告传媒

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1