Java基础面试题笔记(2)

1.ArrayList,Vector,LinkedList的区别


                                       ArrayList

                                          Vector

                                    LinkedList

实现原理

数组

数组

双向链表

线程安全

优点

1.数组实现优于遍历
2.非线程安全,效率较高

1.数组实现优于遍历
2.线程安全

1.节点的增删无需对象的重建
2.空间利用毫无浪费

缺点

1.非线程安全
2.数组中未使用元素照成了空间的浪费
3.扩容可能引起对象的重建
4.增删有可能引起数组元素的移动

1.数组中未使用的元素造成空间的浪费
2.扩容可能引起对象的重建
3.线程安全,效率相对低
4.增删有可能引起数组元素的移动

1.遍历效率较低
2.非线程安全

扩容

0.5倍增量

1倍增量

按需增删

使用场景

1.无线程的要求。
2.遍历较多,增删较少

1.有线程安全的要求
2.遍历场景较多,增删场景较少

增删场景较多的时候



2.int与Integer的区别

 

int

Integer

类型

基本类型

复合类型

默认值

0

null

存储

栈(局部变量)
堆(成员变量,有待进一步确认)

堆上(只能通过new创建)

方法

基本类型无方法

速度

快(栈上 的操作相对快)

泛型支持

否(java中的泛型不支持,C++中的模板支持)

支持

容器类支持

否(直接使用通常会进行装箱操作)

支持

存在意义

1.历史原因(顺延C/C++中存在)
2.方便快速(无需new)

基本类型int的包装类
提供了对泛型,容器类的支持



3.RuntimeException与普通异常,error的区别

Checked Exception:在编译时就能够被Java编译器所检测到的。

UncheckedException:则是编译时,java编译器不能检查到。

 

RuntimeException

普通Exception

Error

受控异常

产生原因

开发者的编程错误

由于外界环境所限,
本身潜在的一些问题

Java运行时的系统错误,资源耗尽,是一种严重的,
程序无法修复的问题

例子

NullPointerException
ArrayOutOfIndexException
ClassCastException
ArithmeticException
UnsupportedOperationException

ClassNotFoundException
IOException
FileNotFoundException

VirtualMachineError
StackOverflowError
OutOfMemoryError



4.final,finalize,finally的区别

(1) final:

  • 方法:方法不可Override
  • 类:不可被继承
  • 基本类型量:常量,值不可变
  • 符合类型量:引用不可变,即引用的值不可变
  1. final Object o1 = new Object();  
  2. o1 = new Object();  

  3. (2) finally:
  4. Java异常处理机制的一部分,在异常发生时,用来提供一个必要的清理的机会。

  5. (3)finalize:
  6. Object类的方法
  7. 意义:Java技术允许使用finalize()方法在垃圾回收器将对象回收之前,做一些必要的清理操作。
  8. 调用前提:这个对象确定没有被引用到。
  9. 工作原理:垃圾收集器准备好释放对象占用的空间。首先调用其finalize方法。下一次垃圾收集过程中,真正回收内存。
  10. 不确定性:finalize的执行时间是不缺定的。
  • 一个对象引用另一个对象,并不能保证finalize的方法按照特定的执行顺序。

5.sleep方法和wait方法的区别

 

wait

sleep

所属类

Object

Thread

意义

让线程挂起

让线程休眠指定的时间

释放锁

否(这个跟锁本来就没有关系)

恢复 

1.有参:wait指定时间
2.无参:等待其他线程notify

1.根据参数长度自动恢复。
2.异常打断

使用限制

wait,notify必须持有当前对象锁的情况下调用

无特别

抛出异常

静态方法



  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值