专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 Java互联网面试题,经典必问问答

Java互联网面试题,经典必问问答

更新时间:2020-07-20 15:31:07 来源:动力节点 浏览1747次

1、java中==和equals()的区别???

答:

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

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

2、java中String、StringBuild、StringBuffer的区别???

答:

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

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

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

答:

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

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

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

答:

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

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

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

4)、接口中定义的变量只能是公共的静态

常量,抽象类中的变量可以是普通变量。

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

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

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

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

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

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

5、java中this和super的区别???

答:

1)、this三大作用

1、普通的直接引用(指向当前对象的指针)

2、形参与成员名字重名(用this区分)

3、引用构造函数

2)、super三大作用

1、普通的直接引用(指向当前对象的父类)

2、子类中的成员变量或者方法和父类成员变量和方法重名。

3、引用构造函数

super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句)

this(参数):调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句)

super:它引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类与派生类中有相同成员定义时如:super.变量名super.成员函数据名(实参)\

this:它代表当前对象名(在程序中易产生二义性之处,应使用this来指明当前对象;如果函数的形参与类中的成员数据同名,这时需用this来指明成员变量名)

调用super()必须写在子类构造方法的第一行,否则编译不通过。每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。

super()和this()类似,区别是,super()从子类中调用父类的构造方法,this()在同一类内调用其它方法。

super()和this()均需放在构造方法内第一行。尽管可以用this调用一个构造器,但却不能调用两个。

this和super不能同时出现在一个构造函数里面,因为this必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。

this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块。

从本质上讲,this是一个指向本对象的指针,然而super是一个Java关键字。

Java互联网面试题,经典必问问答

以上就是动力节点java培训机构的小编针对“Java互联网面试题,经典必问问答”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>