JAVA面试题

来源:互联网 发布:驱动加密软件 编辑:程序博客网 时间:2024/06/05 06:27

java面试题

1.一个.java源程序中可以有多个类,但只能有一个public类,并且public的类名必须和文件名一致。

2.面向对象的三大特性:继承、封装、多态。

3.什么叫多态:不同类的对象对同一消息作出响应。即同一消息可以根据发送对象的不同作出多种不同的行为方式。多态的三个必要条件:要有继承、要有重写,父类引用指向子类对象。

4.overload(重载)和override(重写)的区别:
override:如果在子类中定义的某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。
例子:
class TestClass {
public void test(){
System.out.println(“这是TestClass的test方法”);
}
}

public class Overriding extends TestClass {

public static void main(String[] args) {    new Overriding().test();}@Overridepublic void test() {    System.out.println("这是Overriding的test方法,重写了TestClass中的方法");}

}
overloading:同一个类中可以具有多个名称相同的方法,但具有不同的参数和定义,调用方法是通过传入参数的不同调用不同的方法。不能以返回值区分重载方法,而只能以“参数类型”和“类名”来区分。

5.java中的八种基本类型:
byte:-128~127
char: 0—65535
short: -32768—32767(-2^16~2^16-1)
int:-2147483648—2147483647(-2^31~2^31-1)
float:3.4e^-038 ~3.4e^038
long: -2^63~2^63-1
double: 1.7e^-308 ~1.7e^308
boolean:true flase

6.抽象和接口的区别:
abstract抽象类:不能创建实例类,在抽象类中定义的抽象方法必须在具体的(Concrete)子类中实现,不能有抽象构造方法和抽象静态方法,子类必须实现父类的所有抽象方法,不然必须的定义成abstract类。
interface接口:接口的所有方法必须是抽象的,接口中的方法定义默认为 public abstract 类型,接口中的成员变量默认为public static final。
interface接口和abstract抽象的语法区别:
1).抽象类可以有构造方法,接口不能有构造方法。
2).抽象类中可以有普通成员变量,接口中没有普通成员变量(变量默认为public static final)
3).抽象类中可以包含非抽象的普通方法,接口中的所有方法必须是抽象的,不能有非抽象的方法
4).抽象类中的抽象方法可以是public和protected,单接口中的抽象方法只能是public类型的,默认为public abstract类型。
5).抽象类中可以包含静态方法,接口中不能有静态方法
6).抽象课和接口中都可以包含静态成员变量,但抽象类中的成员变量的访问类型可以任意,但接口中定义的成员变量只能是public static final类型,并且默认为这个类型
7).一个类可以实现多个接口,但只能继承一个抽象类。

7.Collection和Collections的区别:
Collection是集合类的上级接口,继承于它的接口主要有Set和List
Collections是针对集合类的一个帮助类,他提供一系列的静态方法实现对各种集合的搜索丶排序丶线程安全化等操作。

8.单例工厂模式:
懒汉式:
public class Singleton{
private static Singleton instance;
private Singleton(){}
public static Singleton getInstance(){
if( instance==null){
instance=new Singleton();
}
return instance;
}
}

饿汉式
public class Singleton{
private static Singleton instance;
private Singleton(){}

public static Singleton getInstance(){
return instance;
}
}

1 0