关于JavaSE的一些面试题

1.jdk1.8前后,接口有什么不同?

答:jdk1.8之前,接口只能定义抽象方法和静态常量,

jdk1.8之后接口不进能定义抽象方法和静态常量,还可以定义默认方法和静态方法,默认方法使用default关键字来修饰。

2.接口和抽象类有什么不同?

答:1.定义方式不同,接口使用interface关键字来定义,抽象类使用abstract关键字来定义

2.实现方式不同,一个类可以实现多个接口,但是只能继承一个抽象类

3.构造方法不同,接口不能定义构造方法,抽象类可以定义构造方法

4.成员变量不同,接口中的属性默认为常量被public static final修饰,抽象类可以包含各种类型的字段。

5.成员方法不同,接口中的方法都是抽象方法,而抽象类什么方法都可以定义

6.多继承,接口可以多继承,抽象类单继承

7.定义接口和抽象类目的不同

        接口主要用于定义规范和实现多态,而抽象类主要用于封装共同的属性和行为,作为父类供继承。

3.==和equals的区别

答:1.==是关系运算符,equals是一个实例方法

        2.==既可以比较基本类型的变量,也可以比较引用类型的变量,而equals只能比较引用类型的变量

        3.==比较基本类型的变量比较的是数值,比较引用类型的变量比较的是地址,如果不重写equals方法则默认调用object类的equals方法,该类的equals方法实质是就是用==比较两个对象的地址。

4.hashcode和equals方法的默认实现是什么?

答:1.hashcode和equals都是Object类的实例方法

        2.hashcode方法,底层是使用c/c++实现的,用于获取内存地址,基于内存地址生成int类型的哈希值

        3.equals方法,是使用==来比较两个对象的地址值是否相等

5.重载和重写的区别?

答:1.定义不同,重载是在一个类中,定义多个方法名相同,形参列表不同的方法,形参列表不同表现在,形参的个数、顺序、参数类型。重写是子类重现实现父类中已有的方法,方法名和形参列表必须相同。

        2.特点不同,重载方法可以具有多个不同的参数类型、,重写方法的修饰符的只能和父类相同或者更宽,并且被private修饰方法不能被重写,返回值类型如果是基本类型需要保持一致,如果是引用类型则即可以与父类保持一致也可以是父类的子类,如果父类方法声明了异常,子类可以声明也不声明,如果要声明则该异常应与父类保持一致或者是父类异常的子类。

        3.目的不同,重载是为了方便调用者调用,而重写是为了实现多态。

6.Java中的数据类型都有哪些?

答:Java中的数据类型分为两大类,一类是基本数据类型,一类是引用数据类型

基本数据类型分为四类八种

4类为字符型、整形、浮点型、布尔型

8种为char、byte、short、int、long、float、double、boolean

引用数据类型有数组、类、接口、枚举、注解

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值