操作系统之处理机的死锁部分概述
死锁概述
死锁(Deadlock):是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种状态时,若无外力作用,它们都将无法再向前推进。
资源问题
可重用性资源和消耗性资源:
可重用性资源:
是一种可供用户重复使用多次的资源。每一个可重用性资源只能分配给一个进程使用,不允许多个进程共享。
资源的单元数目是相对固定的,在运行期间既不能创建也不能删除它
消耗性资源:
在进程运行期间,由进程动态地创建和消耗。
资源的单元数目在进程运行期间可以不断变化的。进程可以请求若干个可消耗性资源单元。
可消耗性资源通常由生产者创建,消费者消耗。
可抢占性资源和不可抢占性资源。
可抢占性资源:
某进程获得该资源后,该资源可以再被其他进程或系统抢占。
不会引起死锁。
不可抢占性资源是指资源一旦被分配给进程,只能在进程用完后自行释放。
###...
Java难绷知识03--包装器类及其自动装箱和拆箱
Java难绷知识03——包装器类及其自动装箱和拆箱
本篇文章和之前的倾向稍微有些不同,这篇文章我不仅要讨论一些容易头疼的细节,而且我打算尝试讨论一下如何理解Java中的包装类以及自动拆箱和自动装箱
自动装箱(Autoboxing)和自动拆箱(Unboxing)是在基本数据类型和它们对应的包装类之间“转换”的一个包装过程,其中
装箱:基本数据类型包装成对应的包装类
拆箱:包装类拆包装成基本数据类型
自动拆装箱下,上述转换在代码中是隐式的,由编译器自动完成。...
第十五届蓝桥杯Java国赛B组D题-园丁题解
image-20250424201815331
题目大意
题目的核心是要处理一棵树上每个节点的权值,对于拥有两个及以上儿子节点的父节点,要保证所有儿子节点的权值两两相乘不能是完全平方数,目标是求出最少需要修改多少个节点的权值,才能让整棵树满足这个条件。
思路
完全平方数的判定
首先什么是完美平方数,如果一个正整数 a 是某一个整数 b 的平方,那么这个正整数 a
叫做完全平方数。零也可称为完全平方数。
两个数 x 和 y 的乘积是完全平方数,当且仅当 x 与 y
的乘积中,所有质因子的幂次都是偶数。
例如 4 * 9 = 36 是完全平方数,因为
4 = 22,9 = 32
,他们的质因子的幂次都是偶数。
进一步推导,这个条件等价于 x 和 y 的 “平方因子化简后”
的形式相同。所谓 “平方因子化简”,就是对每个数 a
分解质因数后,只保留每个质因数的奇数次幂(即 ai
的“平方自由部分”),这部分记作 f(ai)。
若 f(ai) = f(aj)
,那么...
SpringFrameworkPart6-Spring Framework常用注解
Spring框架核心注解
Spring的一个核心功能是IOC,就是将Bean初始化加载到容器中,Bean是如何加载到容器的,可以使用Spring注解方式或者Spring
XML配置方式。
Spring注解方式减少了配置文件内容,更加便于管理,并且使用注解可以大大提高了开发效率!
注解本身是没有功能的,和xml一样,注解和xml都是一种元数据,元数据即解释数据的数据,也就是所谓的配置。
我们可以通过
org.springframework.beans.factory.annotation 和
org.springframework.context.annotation 包中的注解来使用
Spring DI 引擎的功能。
xml用来管理bean;
注解只负责完成属性的注入;
使用注解需要开启对注解的支持
12<context:component-scan...
Spring Framework Part5-Spring中的AOP面向切面编程
什么是
AOP,如何理解面向切面编程
AOP,
Aspect Oriented Programming
,即面向切面编程。
通过预编译方法和运行期间动态代理的方式实现,在不修改源代码的方式下,给程序动态统一添加额外功能的一种技术。
AOP是对面向对象编程OOP的一个补充。
它的目的是将复杂的需求分解为不同的切面,将散布在系统中的公共功能集中解决。
它的实际含义是在运行时将代码切入到类的指定方法、指定位置上,将不同方法的同一个位置抽象为一个切面对象,并对该对象进行编程。
AOP 的目的是为了解耦 其次是简化开发,AOP 是 Spring 的核心
面向切面编程
他是一套规范,通过预编译方式和运行期间动态代理实现程序的统一维护
核心概念...
SpringFrameworkPart4-IoC基于注解管理bean
IoC 基于注解方式操作 Bean
管理
使用Spring的IoC容器,实际上就是通过类似XML这样的配置文件,把我们自己的Bean的依赖关系描述出来,然后让容器来创建并装配Bean。一旦容器初始化完毕,我们就直接从容器中获取Bean使用它们。
使用XML配置的优点是所有的Bean都能一目了然地列出来,并通过配置注入能直观地看到每个Bean的依赖。它的缺点是写起来非常繁琐,每增加一个组件,就必须把新的Bean配置到XML中。
我们可以使用Annotation配置
基于注解配置 Bean
在Spring中,基于注解方式配置Bean,主要应用于项目开发中的组件,eg :
Controller, Service, DAO.
常用的组件注解的形式有——
@Component :
表示当前注解标识的是一个组件,相当于定义了一个Bean,它有一个可选的名称,默认是mailService,即小写开头的类名。
@Controller :
表示当前注解标识的是一个控制器,通常用于Servlet
@Service...
Spring Framework part3-IoC基于XML管理Bean下篇
接着上篇进行
p 命名空间
引入 p 命名空间
123456789<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/util ...
Spring Framework Part3-IoC基于XML管理Bean上篇
基于XML管理bean
搭建基本环境
在这之前,建议在父工程中的pom文件里导入我们需要的依赖,这样其里面的子工程会自动添加,会方便许多
父工程(Spring6)的pom.xml文件,导入相关依赖
1234567891011121314151617181920212223242526272829<!-- 依赖关系定义 --> <dependencies> <!--log4j2的依赖--> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.19.0</version> </dependency> <dependency> ...
JavaWeb之Filter过滤器
Filter 介绍
过滤器,顾名思义就是对事物进行过滤的,在Web中的过滤器,当然就是对请求进行过滤,对web服务器管理的所有web资源,我们使用过滤器,就可以对请求进行拦截,然后做相应的处理,实现许多特殊功能。如登录控制,权限管理,过滤敏感词汇等.
Servlet
API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter。通过
Filter
技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截,Filter接口源代码:
123456public abstract interface Filter{ public abstract void init(FilterConfig paramFilterConfig) throws ServletException; public abstract void doFilter(ServletRequest paramServletRequest, ServletResponse...
洛谷P1631序列合并Java题解
image-20250420181227707
image-20250420181227707
题目分析
给定两个长度为 N 的有序数组
$A = \\{a_1, a_2, \ldots, a_N\\}$ 和
$B = \\{b_1, b_2, \ldots,
b_N\\}$,求所有 ai + bj
组合中的前 N 个最小和。
思路
开个 N^2 大小的数组,直接计算所有 N2
个和并排序的时间复杂度为 O(N2log N),这在
N ≤ 105
时显然不可行。
有序数组存在特性:数组 A 和
B
已分别按升序排列,因此对于固定的 ai,ai + bj
的值随 j 增大而单调递增。
考虑使用堆,观察题中的两个数组: [ a 1 , a 2 , … , a N ] , [ b 1 , b
2 , … , b N
],对这两个数组分别从小到大排序,变成两个有序队列。这样,从A和B中各任取一个数相加得到N^2个和,可以把这些和看成形成了n个有序表/队列:
考虑多路归并:
将每个 ai
与...