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 小时前
C语言预处理详解:编译器真正动手之前的那些事
c语言·开发语言·算法·面试·bug
怕浪猫5 小时前
AI Agent 的安全围栏:DeepSeek Harness 沙箱隔离策略全解析
面试·agent·产品经理
丰锋ff7 小时前
面试问题合集
面试·职场和发展
颜挺锐8 小时前
如何轻松通过性能测试之第四篇:性能测试项目怎么交付?一文讲透九步实施流程(附面试话术 + 实战清单)
面试·职场和发展
敲代码的嘎仔9 小时前
28届后端开发-海康威视日常实习一面(已OC)
java·开发语言·后端·面试·海康威视·实习·大厂
kyriewen9 小时前
面试官让我用 AI 重构一个 8 年陈的 React 组件——他说他不看代码,只看我会不会拆
前端·javascript·面试
黄敬峰10 小时前
一文搞懂 Agent Memory 管理:从临时记忆到长期记忆
面试
汉堡大王952711 小时前
面试必考:手写代码 new 做了什么?从原理到实现全解析
前端·javascript·面试
数智启示录12 小时前
Apache Doris 4.0.8 混合检索实战(第 5 篇):三套系统只返回两条结果,一条 SQL 如何避开交集丢失
大数据·数据库·经验分享·sql·面试
带多刺的玫瑰13 小时前
Leecode#15刷题之三数之和
算法·leetcode·职场和发展