1.面向对象的特征有哪些?
抽象、继承、封装、多态
2.String是基本的数据类型吗?
不是。
解析:基本类型有八类 基本类型对应的封装类
基本数据类型 | 默认值 |
boolean | false |
char | [] |
byte | 0 |
short | 0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
引用类型 | 默认值 |
Boolean | |
Character | |
Byte | |
Short | |
Integer | |
Long | |
Float | |
Double |
3.int 和 Integer 有什么区别?
int 是Java的原始数据类型。Integer 是Java为int提供的封装类。
int的默认值为0。Integer的默认值是null。
Integer类拥有一些属性、构造函数和一些方法。
解析:为什么使用Integer,因为Java语言是面向对象的,对象可以封装很多属性。
4.String 和 StringBuffer的区别?
1)String的创建
直接String s= "hello"时,JVM先根据内容查找对象,如果没有找到,则在heap上创建新对象。否则使用已经存在的对象。
若使用 String s = new String("hello"); JVM 直接在heap上创建新的对象,所以在heap上会出现内容相同而地址不同的对象。这个过程创建了两个对象,一个对象是“hello”,然后再用“hello”创建一个s引用的对象。
StringBuffer对象的创建
StringBuffer s = new StringBuffer(“a”); JVM 直接在heap 上创建新的对象。这个过程产生了两个对象,“a”本身与经过new创建出来的。
2)String 的比较
“==” 是比较地址,“equals” 是比较内容。
StringBuffer 的比较
StringBuffer类中没有重新定义equals() 这个方法,equals()方法就来自Object类,而Object类中的equals( ) 方法是用来比较地址的。
5.运行时异常与一般异常有何异同?
解析:
异常情形:是指阻止当前方法或作用域继续执行的问题。
异常处理程序:将程序从错误状态中恢复,以使程序能要么换一种方式运行,要么继续运行下去。异常处理陈故乡紧跟在try块之后,以关键字catch表示。
6. 说出ArrayList,Vector, LinkedList的存储性能和特性
ArrayList:如果要进行大量的随机访问,就使用ArrayList。
LinkedList:如果要经常从表中间插入或删除元素,则应该使用LinkedList。
ArrayList 和 Vector 都是使用数组方式存储数据。Vector由于使用了synchronizd 方法(线程安全),通常性能上比ArrayList差。
7.HashMap、TreeMap与LinkedHashMap的区别?
HashMap:用来快速访问。
TreeMap:保持“键”始终处于排序状态,所以没有HashMap快。
LinkedHashMap:保持元素插入的顺序,但也是通过散列提供了快速访问能力。
8.HashSet、TreeSet 与 LinkedHashSet 的区别?
HashSet:提供最快的查询速度。使用的散列函数。
TreeSet:保持元素处于排序状态。将元素存储在红-黑树数据结构中。
LinkedHashSet:以插入顺序保存元素。
9.Collection 与 Collections 的区别 ?