- 相关推荐
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高频面试试题】相关文章:
java面试自我介绍11-23
java面试自我介绍15篇10-25
mba面试题目09-27
java实习报告09-05
Java实习报告02-01
java自我介绍07-07
(精华)java实习报告05-16
JAVA工程求职信10-12
Java实习报告总结范文11-29
最新招聘社区工作者面试题及答案09-08