java基础知识(4)---面试宝典

8、String 和StringBuffer,StringBuilder的区别
String是有不可变性的(因为String的底层是通过char[]来存放数据的。而数组就具有不可变性),如果String中的内容一旦发生变化必将开辟新的空间。
由于String的不可变性造成当对String中的内容进行连续改变,效率低下。
正因为这个问题Java提供了String的工具类:StringBuilder,StringBuffer
二者中所保存的字符串信息都是可变的(二者底层都是通过链表结构来存放数据的),即改变StringBuilder,StringBuffer中的内容不会开辟新的空间
这样,当对里边内容进行连续改变时,效率会比较高。
StringBuilder和StringBuffer的区别是,StringBuilder是线程不同步的(即线程不安全),StringBuffer是线程同步的(即线程安全)。

9、数组有没有length()这个方法? String有没有length()这个方法?容器类通过什么方法得到容器中数据的个数?
数组没有length()这个方法,有length的属性。String有length()这个方法。
容器类通过size方法得到容器的当前容量(容器中当前数据的个数)

10、抽象方法、抽象类、接口的特点
抽象方法,由abstract修饰的方法称为抽象方法,抽象方法不能有方法体(注:连{}都没有),抽象方法需要被子类或者实现类去继承并实现
抽象类,由abstract class修饰的类称为抽象类,抽象类可以包含抽象方法(不是必须包含),抽象类不能直接创建对象(不能直接new 自己),抽象类需要子类去继承它并实现抽象类中的抽象方法。抽象类型变量可以引用它的子类实例(多态)。
接口,由interface声明接口。接口中所有的实例方法都是public abstract的(公共的抽象的),接口可以包含pubic static的方法。接口中所有的属性都是public static final的。接口需要类去实现,并在该类中实现接口中的抽象方法。类与接口的关系是多实现。接口类型变量可以引用它的实现类的实例。

11、String是最基本的数据类型吗? String有子类吗
1、String是引用数据类型所以String不是基本数据类型;
2、基本数据类型包括byte、short、int、long、float、double、boolean和char。
String由于是由final修饰的所有String不能有子类,因为由final修饰的类不能被继承。

12、抽象方法可以由private修饰吗?可以被final修饰吗?可以被static修饰吗?抽象类可以由final修饰吗
抽象法方法不能被private修饰,因为由private修饰的方法可视范围只是在本类中,而抽象方法需要在子类中实现(如果private修饰子类看不到)。
抽象方法不能被final修饰,因为由final修饰的方法不能被子类重写,而抽象方法恰恰需要子类去重写。所以抽象方法不能被final修饰
抽象方法不能被static修饰,因为由static修饰的方法可以通过类直接被调用,而能被调用方法一定有方法体(即static修饰的方法一定有方法体)。因为抽象方法没有方法体所以不能由static修饰
抽象类不能由final修饰,因为由final修饰的类不能被继承(即不能有子类),而抽象类恰恰需要被子类继承,所以final不能修饰抽象类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值