admin 管理员组

文章数量: 887021


2024年1月13日发(作者:网页界面设计 ppt)

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〕重载是通过不同的方法参数来区分的,例如不同的参数个数、不同的参数类型、或者不同的参数挨次。不能通过方法的访问权

第 1 页

限、返回值类型、和抛出异样类型类进行重载。2〕掩盖是指子类函数掩盖父类函数,掩盖一个方法,并对其重写。重写需要留意,子类必需与父类中,被重写的方法有相同的函数名、相同的参数、相同的返回值、以及抛出异样也必需保持全都。

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

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

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

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

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

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

6、抽象方法只能声明,不能实现,接口是设计的结果,抽象类是重构的结果。

7、抽象类里可以没有抽象方法。

8、一个类里有抽象方法,那么这个类只能是抽象类。

9、抽象方法需要被实现,因此不能是私有的,也不能是静态的。

10、接口可以继承接口,并可多继承接口,但类只能单根继承。

第 2 页


本文标签: 方法 接口 抽象类 只能