java的容易出错的面试题
1 、java中StringBuffer和String有什么区别阿
其实很简单,就是一个变量和常量的关系
StringBuffer对象的内容可以修改
而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象
比较
StringBuffer str = new StringBuffer("a");
str.append("bc");
String str2 = "a";
str2 = str2 + "bc";
str引用的一直是同一对象
而str2引用的在两句中是完全不同的对象
StringBuffer是可以改变字符串长度的,而String则不可以
若要String改变值,需要改变String变量的引用
2 set、 map、 list的区别
set --其中的值不允许重复,无序的数据结构
list--其中的值允许重复,因为其为有序的数据结构
map--成对的数据结构,健值必须具有唯一性
3 抽象类和接口的区别
1.接口可以多重继承 ,抽象类不可以
2.接口定义方法,不给实现;而抽象类可以实现部分方法
3.接口中基本数据类型的数据成员,都默认为static和final,抽象类则不是
如果事先知道某种东西会成为基础类,
那么第一个选择就是把它变成一个接口。
只有在必须使用方法定义或者成员变量的时候,才应考虑采用抽象类。

