Java 面试 (三)

目录

[1. 并发的概念](#1. 并发的概念)

[2. 如何创建线程 四种方式:](#2. 如何创建线程 四种方式:)

[3. 一个线程频繁的创建和销毁 是否有开销?](#3. 一个线程频繁的创建和销毁 是否有开销?)

[4. 线程的生命周期和状态](#4. 线程的生命周期和状态)

[5. AQS设计模式](#5. AQS设计模式)


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. 线程和进程的区别

  1. hashmap的底层逻辑

  2. 方法重载和方法重写的区别

相关推荐
测试老哥1 小时前
接口自动化测试分层设计与实践总结
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
风栖柳白杨2 小时前
【面试】职位要求_准备
面试·职场和发展
Assby3 小时前
为什么我不建议你在 MySQL 里写 `IN (超过1000个ID)`?从 AST 解析到存储引擎的深度拆解
后端·面试
过期动态3 小时前
【LeetCode 热题 100】找到字符串中所有字母异位词
java·数据结构·算法·leetcode·职场和发展·rabbitmq
触底反弹16 小时前
🚀 从 DOM0 级到 React 合成事件:前端事件监听的 20 年演进史
前端·react.js·面试
kyriewen16 小时前
我给前端项目的接口请求套了6层保护——才发现以前一直在裸奔
前端·javascript·面试
wdfk_prog16 小时前
嵌入式面试真题第 15 题:不可恢复异常后的通用崩溃快照、调用栈保存与离线分析架构
linux·开发语言·面试·架构
LayZhangStrive19 小时前
JUC相关的函数、注解、变量杂记
java·面试·多线程·juc
程序员清风19 小时前
OpenAI官方发布最新提示词技巧!
java·后端·面试
GitLqr19 小时前
别再盲目复制了:彻底搞懂 CORS 的本质与那些“神坑”
安全·http·面试