Java 面试 (三)
目录
1. 并发的概念
是指多个任务(程序,进程)在同一时间间隔内被启动和执行的一种机制。
2. 如何创建线程 四种方式:
1. 通过继承Thread类并重写run()方法实现;
2. 实现Runnable接口并重写run()方法:
3. 通过Callable接口实现有返回值的线程
4. 通过线程池管理线程资源
3. 一个线程频繁的创建和销毁 是否有开销?
会带来显著的系统开销,每次的创建和销毁都需要消耗时间和内存数据结构;
解决方案:通过复用线程避免频繁创建销毁。任务达到时直接使用空闲线程,省去创建延迟。
4. 线程的生命周期和状态
1. new 新建状态
2. runable 可运行状态
3. blocked 阻塞状态
4. waiting 等待状态
5. timed-waiting 期限等待状态
6. terminated 终止状态
5. AQS设计模式
AQS 是java并发包的核心基础框架,用于构建索;核心功能是管理线程和阻塞与唤醒;
设计模式:1. 固化不变部分(父类实现)
线程排队(CLH队列管理)
阻塞/唤醒机制
2. 开放可变部分
资源获取:tryAcquire(int arg)
资源释放:tryRelease(int arg)
6. 七个基本数据类型
byte、short、int、long、float、double、char、boolean
7. 线程和进程的区别
进程就像是一家公司,线程就像是公司里的员工;
进程之间相互独立,一个进程崩溃不会影响其他进程;同一进程内的线程高度依赖。
8. hashmap的底层逻辑
hashmap是一种基于数据+链表/红黑树实现的高效键值对存储结构,其核心在于哈希函数和冲突解决机制。
9. 方法重载和方法重写的区别
重载:在同一个类中定义多个同名但参数方法不同的方法
重写:子类中重新定义父类中已经存在的方法,提供特定的实现
更多推荐
所有评论(0)