Java高频面试试题

时间:2024-01-05 12:14:08
Java高频面试试题

Java高频面试试题

在平时的学习、工作中,我们都可能会接触到试题,借助试题可以更好地对被考核者的知识才能进行考察测验。你所见过的试题是什么样的呢?下面是小编为大家整理的Java高频面试试题,欢迎大家分享。

一、java中==和equals()的区别

简单来说==适合应用于基本数据类型的比较,而重写后equals()方法适合应用于引用类型的比较。原因在于基本类型变量直接存储的是值本身,而引用类型变量存储的是对象的`引用,当引用相同时,用==比较,自然会是true,当引用不同时,用==比较,则会是false。

equlals方法是object中的方法,对于所有继承于object的类都会有该方法,当使用equals方法是需对此方法进行重写,如果没有对equals方法重写,则比较的是引用类型的,变量所指向的对象的地址,没有重写的equals,和==效果相同,只有重写了equals,比较的才会是所指对象的内容。

二、java中String、StringBuild、StringBuffer的区别

String是不可变类,因此对String进行操作都会产生新的String对象,容易导致效率低下,浪费内存空间。因此,为了应对经常性的字符串操作,引入了StringBuffer、StringBuild这种字符串变量。

StringBufffer和StringBuild最大的区别,就是StringBuffer线程安全,但效率低,而StringBuild线程不安全,但效率高,且此两者只能通过构造函数的方式初始化。而String可以通过构造函数和字面量复制两种方式。

三、java中重载(overload、重写(override)的区别

1、重载是通过不同的方法参数来区分的,例如不同的参数个数、不同的参数类型、或者不同的参数顺序。不能通过方法的访问权限、返回值类型、和抛出异常类型类进行重载。

2、覆盖是指子类函数覆盖父类函数,覆盖一个方法,并对其重写。重写需要注意,子类必须与父类中,被重写的方法有相同的函数名、相同的参数、相同的返回值、以及抛出异常也必须保持一致。

四、java中接口和抽象类的区别

1、抽象类和接口都不能直接实例化

2、抽象类要被子类继承(extends),接口要被类实现(implements)

3、接口只能做方法的声明,且所有方法访问权限必须是public,抽象类中可以做方法声明,也可以做方法的实现。

4、接口中定义的变量只能是公共的静态常量,抽象类中的变量可以是普通变量。

5、抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类的抽象方法,那么该子类只能是抽象类。同理如果在实现接口的时候,如果不能实现接口方法,那么该类也只能为抽象类。

五、我们能否重载main()方法?

可以,我们可以重载main()方法。一个Java类可以有任意数量的main()方法。

为了运行java类,类的main()方法应该有例如“public static void main(String[] args)”的声明。如果你对此声明做任何修改,编译也是可以成功的。但是,运行不了Java程序。你会得到运行时错误,因为找不到main方法。

《Java高频面试试题.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式