Java相关基础知识

时间:2022-06-13 19:40:24

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 的区别 ?