1.ArrayList,Vector,LinkedList的区别
|
ArrayList |
Vector |
LinkedList | |
|
实现原理 |
数组 |
数组 |
双向链表 |
|
线程安全 |
否 |
是 |
否 |
|
优点 |
1.数组实现优于遍历 |
1.数组实现优于遍历 |
1.节点的增删无需对象的重建 |
|
缺点 |
1.非线程安全 |
1.数组中未使用的元素造成空间的浪费 |
1.遍历效率较低 |
|
扩容 |
0.5倍增量 |
1倍增量 |
按需增删 |
|
使用场景 |
1.无线程的要求。 |
1.有线程安全的要求 |
增删场景较多的时候 |
2.int与Integer的区别
|
|
int |
Integer |
|
类型 |
基本类型 |
复合类型 |
|
默认值 |
0 |
null |
|
存储 |
栈(局部变量) |
堆上(只能通过new创建) |
|
方法 |
基本类型无方法 |
有 |
|
速度 |
快(栈上 的操作相对快) |
慢 |
|
泛型支持 |
否(java中的泛型不支持,C++中的模板支持) |
支持 |
|
容器类支持 |
否(直接使用通常会进行装箱操作) |
支持 |
|
存在意义 |
1.历史原因(顺延C/C++中存在) |
基本类型int的包装类 |
3.RuntimeException与普通异常,error的区别
Checked Exception:在编译时就能够被Java编译器所检测到的。
UncheckedException:则是编译时,java编译器不能检查到。
|
|
RuntimeException |
普通Exception |
Error |
|
受控异常 |
否 |
是 |
否 |
|
产生原因 |
开发者的编程错误 |
由于外界环境所限, |
Java运行时的系统错误,资源耗尽,是一种严重的, |
|
例子 |
NullPointerException |
ClassNotFoundException |
VirtualMachineError |
4.final,finalize,finally的区别
(1) final:
- 方法:方法不可Override
- 类:不可被继承
- 基本类型量:常量,值不可变
- 符合类型量:引用不可变,即引用的值不可变
- final Object o1 = new Object();
- o1 = new Object();
- (2) finally:
- Java异常处理机制的一部分,在异常发生时,用来提供一个必要的清理的机会。
- (3)finalize:
- Object类的方法
- 意义:Java技术允许使用finalize()方法在垃圾回收器将对象回收之前,做一些必要的清理操作。
- 调用前提:这个对象确定没有被引用到。
- 工作原理:垃圾收集器准备好释放对象占用的空间。首先调用其finalize方法。下一次垃圾收集过程中,真正回收内存。
- 不确定性:finalize的执行时间是不缺定的。
- 一个对象引用另一个对象,并不能保证finalize的方法按照特定的执行顺序。
|
|
wait |
sleep |
|
所属类 |
Object |
Thread |
|
意义 |
让线程挂起 |
让线程休眠指定的时间 |
|
释放锁 |
是 |
否(这个跟锁本来就没有关系) |
|
恢复 |
1.有参:wait指定时间 |
1.根据参数长度自动恢复。 |
|
使用限制 |
wait,notify必须持有当前对象锁的情况下调用 |
无特别 |
|
抛出异常 |
否 |
是 |
|
静态方法 |
否 |
是 |
本文详细解析了Java中ArrayList、Vector、LinkedList的区别,int与Integer的不同之处,RuntimeException与其他异常的对比,以及sleep方法和wait方法的特性。这些知识点对于理解Java集合框架和异常处理机制至关重要。
860

被折叠的 条评论
为什么被折叠?



