- 博客(8)
- 资源 (9)
- 收藏
- 关注
原创 (面经总结)一篇文章带你完整复习 Java 中的 AQS
文章目录一、什么是AQS二、AQS的原理三、state:状态四、AQS共享资源的方式:独占式和共享式一、什么是AQSAQS(Abstract Queued Synchronizer)是一个抽象的队列同步器,通过维护一个共享资源状态(Volatile Int State)和一个先进先出(FIFO)的线程等待队列来实现一个多线程访问共享资源的同步框架。二、AQS的原理AQS为每个共享资源都设置一个共享资源锁,线程在需要访问共享资源时首先需要获取共享资源锁,如果获取到了共享资源锁,便可以在当前线程中使用该
2021-02-25 13:12:05 1690
原创 (面经总结)一篇文章带你完整复习 Java 中进程调度算法
文章目录一、进程调度算法二、优先调度算法1. 先来先服务调度算法2. 短作业优先调度算法三、高优先权优先调度算法1. 非抢占式优先调度算法2. 抢占式优先调度算法3. 高响应比优先调度算法四、时间片的轮转调度算法1. 时间片轮转法2. 多级反馈队列调度算法一、进程调度算法进程调度算法包括优先调度算法、高优先权优先调度算法和基于时间片的轮转调度算法。其中,优先调度算法分为先来先服务调度算法和短作业优先调度算法;高优先权优先调度算法分为非抢占式优先权算法、抢占式优先权调度算法和高响应比优先调度算法。基
2021-02-24 16:57:43 185
原创 (面经总结)一篇文章带你完整复习 Java 中线程上下文切换和多线程如何共享数据
文章目录一、线程上下文切换1. 上下文切换2. 引起线程上下文切换的原因二、多线程如何共享数据1. 将数据抽象成一个类,并将对这个数据的操作封装在类的方法中2. 将Runnable对象作为一个类的内部类,将共享数据作为这个类的成员变量一、线程上下文切换CPU利用时间片轮询来为每个任务都服务一定的时间,然后把当前任务的状态保存下来,继续服务下一个任务。任务的状态保存及再加载就叫作线程的上下文切换进程:指一个运行中的程序的实例。在一个进程内部可以有多个线程在同时运行,并与创建它的进程共享同一地址空间(一
2021-02-23 18:15:42 479 1
原创 (面经总结)一篇文章带你完整复习 Java 中阻塞队列
文章目录一、Java阻塞队列二、阻塞队列的主要操作1. 插入操作2. 获取数据操作(移除操作)三、Java中的阻塞队列实现1. ArrayBlockingQueue2. LinkedBlockingQueue3. PriorityBlockingQueue4. DelayQueue5. SynchronousQueue6. LinkedTransferQueue7. LinkedBlockingDeque一、Java阻塞队列队列是一种只允许在表的前端进行删除操作,而在表的后端进行插入操作的线性表。阻塞
2021-02-22 10:49:39 174
原创 (面经总结)一篇文章带你整理面试过程中关于线程的周期和基本方法的相关知识点
文章目录一、线程的生命周期1. 新建状态:New2. 就绪状态:Runnable3. 运行状态:Running4. 阻塞状态:Blocked5. 线程死亡:Dead二、线程的基本方法1. 线程等待:wait方法2. 线程睡眠:sleep方法3. 线程让步:yield方法4. 线程中断:interrupt方法5. 线程加入:join方法6. 线程唤醒:notify方法7. 后台守护线程:setDaemon方法8. sleep方法与wait方法的区别9. start方法与run方法的区别10. 终止线程的4种
2021-02-06 21:59:50 299 3
原创 (LeetCode)Java 求解整数反转
文章目录一、题目二、代码三、总结一、题目给你一个 32 位的有符号整数 x ,返回 x 中每位上的数字反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231,231−1][−2^{31}, 2^{31} − 1][−231,231−1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。解析:该题可以借助字符串实现,但是转换过程复杂而且效率低,所以通过数学的计算解决。通过循环将数字 x 的每一位拆开,计算新值时,每一步都判断是否溢出溢出的条件:大于整
2021-02-04 10:50:02 426 5
原创 (LeetCode)Java 求解全排列
文章目录一、题目二、代码三、总结一、题目给定一个 没有重复 数字的序列,返回其所有可能的全排列。解析:该题也是明显的回溯问题。题目要求选过的数字不能重复选,例如[1,2,3],第一次选了1,第二次只能选[2,3],如果第二次选择2,第三次只能选3.所以需要设置一个布尔数组,用来判定一个数字是否已经被选过。二、代码class Solution { List<List<Integer>> lists = new ArrayList(); publi
2021-02-01 23:50:32 402
原创 (LeetCode)Java 求解组合总和
文章目录一、题目二、代码三、总结一、题目给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。解析:该题很明显是一道回溯的题目,与以前的题目不同的是,每次回溯可选择的依然是整个数组。但是题目要求不能有重复的组合存在:比如 [2,3,6,7],如果选了[2,2,3],
2021-02-01 10:36:21 564 3
工业级图像分类实现(包含完整代码+注释)
2020-12-03
建模思路解决智慧政务的代码和论文
2020-11-21
Java 旅游网案例.zip
2020-04-23
java 用户信息展示案例.7z
2020-03-30
MySQL-5.5.40软件(win32和win64包括安装卸载说明).7z
2020-02-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人