(4)1、String,StringBuffer,StringBuilder区别 2、接口和抽象类的区别

1、String,StringBuffer,StringBuilder区别

String 跟其他两个类的区别是:

String是final类型,每次声明都是一个不可变的对象,
每次操作都会产生一个新的String对象,然后将指针指向这个String

StringBuilder和StringBuffer都是在原对象上进行操作
StringBuilder线程不安全但效率高(优先使用)
StringBuffer线程安全,效率低。
开发中使用顺序:StringBuilder>StringBuffer>String
另外一个重要问题StringBuffer或StringBuilder的扩容原理

2、接口和抽象类的区别

JDK1.8之前:

语法
抽象类:方法可以有抽象的,也可以有非抽象, 有构造器
接口:方法都是抽象,属性都是常量,默认有public static final修饰

设计
抽象类:同一类事物的抽取,比如针对Dao层操作的封装,如,BaseDao,BaseServiceImpl

接口:通常更像是一种标准的制定,定制系统之间对接的标准

例子:
1,单体项目,分层开发,interface作为各层之间的纽带,在controller中注入IUserService,在Service注入IUserDao
2,分布式项目,面向服务的开发,抽取服务service,这个时候,就会产生服务的提供者和服务的消费者两个角色
这两个角色之间的纽带,依然是接口

JDK1.8之后:
接口里面可以有实现的方法,注意要在方法的声明上加上default或者static

最后区分几个概念:

多继承,多重继承,多实现
多重继承:A->B->C(爷孙三代的关系)
多实现:Person implements IRunable,IEatable(符合多项国际化标准)
多继承:接口可以多继承,类只支持单继承

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值