基础部分面试(二)

1、抽象的方法是否可同时是静态的,是否可同时是本地方法,是否可同时被synchronized修饰? 
答:都不能。抽象方法需要子类重写,而静态的方法是无法被重写的,因此二者是矛盾的。本地方法是由本地代码(如C代码)实现的方法,而抽象方法是没有实现的,也是矛盾的。synchronized和方法的实现细节有关,抽象方法不涉及实现细节,因此也是相互矛盾的。

2、阐述静态变量和实例变量的区别。 
答:静态变量是被static修饰符修饰的变量,也称为类变量,它属于类,不属于类的任何一个对象,一个类不管创建多少个对象,静态变量在内存中有且仅有一个拷贝;实例变量必须依存于某一实例,需要先创建对象然后通过对象才能访问到它。静态变量可以实现让多个对象共享内存。

3、是否可以从一个静态方法内部发出对非静态方法的调用? 

答:不可以,静态方法只能访问静态成员,因为非静态方法的调用要先创建对象,在调用静态方法时可能对象并没有被初始化。

4、如何实现对象克隆? 

答:有两种方式: 

  1). 实现Cloneable接口并重写Object类中的clone()方法; 

  2). 实现Serializable接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆,代码如下。

5、String s = new String("xyz");创建了几个字符串对象? 

答:两个对象,一个是静态区的"xyz",一个是用new创建在堆上的对象。

6、接口是否可继承(extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class)? 

答:接口可以继承接口,而且支持多重继承。抽象类可以实现(implements)接口,抽象类可继承具体类也可以继承抽象类。

7、一个".java"源文件中是否可以包含多个类(不是内部类)?有什么限制? 

答:可以,但一个源文件中最多只能有一个公开类(public class)而且文件名必须和公开类的类名完全保持一致。

8、Anonymous Inner Class(匿名内部类)是否可以继承其它类?是否可以实现接口? 

答:可以继承其他类或实现其他接口,在Swing编程和Android开发中常用此方式来实现事件监听和回调。

9、内部类可以引用它的包含类(外部类)的成员吗?有没有什么限制? 

答:一个内部类对象可以访问创建它的外部类对象的成员,包括私有成员。

10、Java 中的final关键字有哪些用法? 

答:(1)修饰类:表示该类不能被继承;(2)修饰方法:表示方法不能被重写;(3)修饰变量:表示变量只能一次赋值以后值不能被修改(常量)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值