简单的面试题

1.this和super的区别

        this:

                ①.用于区分成员变量和局部变量二义性,this就是一个对象,this所在方法被哪个对象调用,this就是指哪个对象

                ②.this用于同一个类里面的构造方法之间的相互调用(只能写在构造方法的第一句,而且构造方法的先相互调用,必须要有出口)

        super:

                ①.代表父类对象,在子类的方法里面调用父类的成员(方法、属性)    

                ②.在子类构造方法里面调用父类的构造方法(无论是否显示书写super()都在调用父类的构造方法,super()调用父类的构造方法,必须写在子类构造方法的第一句)  

2.Overload和Override的区别

        Overload:方法重载,在同一个类里面,方法名一致,形参列表(个数,类型,数据)不同

        Override:方法重写,父类方法不能满足子类需求,子类就重写父类的方法

                ①子类的方法签名必须和父类一致

                ②子类方法的修饰符权限大于等于父类方法的修饰符权限,返回值类型必须和父类返回值类型一致或者是其子类

                ③子类对象调用方法优先调用自己的方法,没有再去找父类

3.==和equals

        ==:比较两个对象地址值是否相等

        equals:默认底层还是去比较两个对象地址值是否相等,覆写equals方法,完成对象里面数据的比较

4.抽象类和接口的区别

        ①两者都不能被实例化,但是抽象类有构造器,接口没有构造器

        ②接口中定义方法只能是抽象方法,抽象类中可以有抽象方法,也可以没有

        ③类只能单继承(只能继承一个类),但是接口可以实现多继承(接口继承多个接口)

        ④一个类可以实现多个接口,但只能继承一个类(单继承多实现)

5.String、StringBuffer、StringBuilder的区别

        String和StringBuffer和StringBuilder都可以用来声明字符串

        String是固定不变字符串,而StringBuffer和StringBuilder是可变字符串

      StringBuffer是线程安全的,而StringBuilder是线程不安全的,但是StringBuffer的性能低于StirngBuilder

        StringBuffer、StringBuilder拼接字符串使用的是方法apppend(),效率比String高很多

6.final、finally、finalize

        final:是一个修饰符(类、方法、变量) 不能被继承、重写

        finally:配合cry-catch使用,无论是否报错都要执行finally的内容

        finalize:是Object中定义的一个方法,每个对象都有这个方法,当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此

7.线程中调用run方法和start方法的区别

        run()方法:仅仅只是简单的方法的调用不会开启新线程

        start()方法:开启一个新的线程,当线程分配到CPU资源的时候,jvm底层调用run()方法执行逻辑

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值