Java面试题--2

Java面试题库

Final,Finally,finalize

final用于声明属性、方法和类,分别表示属性不可变,方法不可覆盖,类不可继承
finally是异常处理语句结构的一部分,表示总是执行,不管是否有异常总是被执行,除非虚拟机停止才不执行
finalize是Object类的一个方法,在垃圾收集器执行的时候回调用被回收对象的此方法可以实现资源回收,例如关闭文件等,JVM不保证此方法总被调用。

Hashtable与HashMap的区别

Hashmap允许空键值,所以非线程安全,效率高。在多个线程访问时必须提供外同步。
Hashtable不允许键值,所以线程安全,但是效率低。

线程和进程的区别

线程是指在程序执行过程中,能够执行程序代码的基本执行单位,每个程序至少都有一个线程,也就是程序本身。
进程是程序的基本执行实体,是线程的容器。
区别:
1、隶属关系:线程是进程中的一部分,一个进程中可以包含若干个线程。进程可以申请和拥有系统资源,一个是动态的概念,一个是活动的实体。
2、地址空间和其他资源:进程间相互独立,同一进程的各线程间共享。
3、进程间通信:线程间可以直接读写进程数据段来进行通话,需要进程同步和互斥手段的辅助,以保证数据的一致性。
4、调度和切换:线程上下文切换比进程上下文切换要快的多。

实现多线程的几种方式

实现Runnable接口
继承Thread类
使用Callable和Future创建线程

List、Set、Collection、Collections

List和Set都是借楼,他们都继承于接口Collection,List是有序的可重复的集合,而Set是无序的不可重复的集合。Collection是集合的顶层接口,Collections是一个封装了众多关于集合操作的静态方法的工具类,因为构造方法是私有的,所有不能实例化。
List接口实现类有ArrayList,LinkedList,Vector。ArrayList和Vector是基于数组实现的,所以查询快,增删改速度较慢,LinkedList是基于链式存储结构的,所以在进行查询的时候速度较慢,但是增删改较快。Vector是线程安全的,所以它和ArrayList相比,查询效率要低。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值