Java中常见的区别

1. this和super的区别

thissupper
当前对象的引用父类对象的引用
this(): 调用当前类中其他的构造方法(必须在第一行)super(): 调用父类的构造方法(必须放在第一行)
this.data: 调用当前类中的属性super.data: 访问父类的属性
this.func: 调用当前类中的成员方法super.func: 调用父类的成员方法

2. 抽象类和接口的区别

抽象类(abstract)接口(Interface)
抽象方法 + 普通类抽象方法 + 全局常量
各个访问修饰限定符均可public
抽象类和类之间的关系: extends(继承)接口和类之间的关系: implement(实现)
抽象类主要是用来被继承的接口解决了java中的多继承
一个子类只能继承一个抽象类一个子类可以实现多个接口
一个抽象类可以实现多个接口接口不可以继承抽象类, 但可以使用extends扩展多个接口

抽象类和接口之间相同点:

  1. 抽象类和接口均不可以实例化
  2. 当一个类继承了抽象类或者实现了接口的时候, 都需要重写里面的抽象方法

3. 重写和重载的区别

重写(Override)重载(Overlode)
方法名相同方法名相同
返回值相同返回值不做要求
参数列表相同参数列表不同(参数的个数 / 参数的类型)
前提: 在不同类中, 且具有继承关系前提: 在同一类中

4. String, StringBuilder, StringBuffer的区别

  1. String 的拼接会产生大量的临时对象, StringBuilder 和 StringBuffer 不会
  2. String 的拼接会被优化成为 StringBuilder 或 StringBuffer 的 append() 方法
  3. StringBuilder 或 StringBuffer 之中有的方法是 String 所不具备的, 例如: reverse(逆置)
  4. StringBulider 和 String 一般用于单线程的情况
  5. StringBuffer(线程安全) 一般用于多线程的情况

5. 数组和链表的区别

数组和链表最大的区别就在于数据的访问和数据的增删上

数组链表
支持随机访问不能随机访问
增加或删除元素时会移动大量的元素随时随地进行增加或者删除, 不用移动元素
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值