- 博客(268)
- 问答 (1)
- 收藏
- 关注
原创 中级软考(软件攻城狮)算法总结——常考的六大基础排序算法
本文系统梳理了六大经典排序算法:直接插入排序(稳定,适合小规模有序数据)、冒泡排序(逻辑直观但效率低)、简单选择排序(移动少,不稳定)、堆排序(高效,适合海量数据Top K)、快速排序(平均性能优,广泛应用)和归并排序(稳定,适用于外部排序)。通过对比其核心思想、执行步骤、时间复杂度、空间复杂度及应用场景,揭示了各算法的适用场景与设计哲学,为算法理解与软考备考提供清晰框架。
2026-09-12 23:20:51
87
原创 中级软考(软件攻城狮)第十二章知识点——软件系统分析与设计
本文系统梳理了软件工程中结构化分析与设计、数据库设计及面向对象分析与设计三大核心内容。重点讲解数据流图(DFD)与结构图的转换、数据库生命周期各阶段任务与产出物,强调需求分析与E-R图设计的关键作用;深入剖析概念-逻辑-物理三层设计流程,突出聚簇索引与规范化原则;同时介绍面向对象的用例图、类图、状态图与序列图四大建模工具,明确“万物皆对象”的核心思想与四类核心关系。全文紧扣考试重点,为下午场大题提供清晰解题框架。
2026-09-12 12:36:02
133
原创 中级软考(软件攻城狮)第十一章知识点——标准化和软件知识产权基础知识
- 职务作品(我在公司上班,利用公司电脑,为公司项目写的代码): - 著作权归单位。 - 开发者(我)只享有署名权。- 委托开发(甲公司出钱,请乙公司开发): - 有合同,看合同。 - 无合同(或合同没说清楚):```著作权归受托人(乙公司/开发者```)。注意:这是反直觉的!出钱的不一定是大爷。- 合作开发: - 共同享有。 - 如果能分割(模块化),各自享有各自模块的版权。 - 如果不能分割,需协商;协商不成,一方不得无故阻碍另一方行使权利(除转让权外)。
2026-08-29 15:39:35
23
原创 中级软考(软件攻城狮)第十章知识点——网络与信息安全基础
- Y 轴:OSI 网络参考模型(```7层模型```)```7 层模型(物理层、链路层…应用层```)。含义:安全是要覆盖到网络的每一层的,从```物理线缆到应用程序都要保护```- Z 轴:安全服务 ——```目的```含义:我们要达成什么样的安全目标?内容:认证(你是谁?)访问控制(你能干什么?)数据保密性(不被偷看)数据完整性(不被篡改)不可否认性/禁止否认(做了赖不掉)- X 轴:安全机制 —— ```手段```含义:具体的实施环节或技术领域。内容:基础设施安全、平
2026-08-29 13:39:22
18
原创 中级软考(软件攻城狮)第九章知识点——数据库技术基础
- (1) 逻辑独立性:当模式(概念模式)改变时(例如:表中增加了一个新列),管理员只需要修改 “外模式/模式映像”,而使外模式保持不变,应用程序不需要修改- (2)物理独立性:当内模式改变时(例如:更换了更快的硬盘、改变了索引结构、```数据存储路径变了```),管理员只需要修改 “模式/内模式映像”,而使**模式(概念模式)**保持不变,应用程序(以及逻辑结构)完全不知道底层发生了变化
2026-08-27 22:41:04
236
原创 中级软考(软件攻城狮)第八章知识点——算法设计与分析
动态规划:子问题是重叠的(Overlapping),做完了要把结果存到一个表(数组)里,下次遇到直接查表,不用重算。2、问题可以分解为若干个规模较小的相同问题(具有最优子结构性质)。1、递归的概念: 分治法通常通过递归来实现。2、分治法思想:📝 分治法不是一种具体的代码,而是一种策略。4、子问题是相互独立的(这点最重要,用来区分动态规划)分治法(如归并排序):子问题是独立的,做完了就扔。3、归并排序:📝 归并排序是分治法最完美的体现。3、子问题的解可以合并为该问题的解。3、复杂度分析(软考必背)
2026-08-25 21:30:14
21
原创 中级软考(软件攻城狮)第七章知识点——面相对象技术
UML:统一建模语言,不是程序语言,由事务+关系+图构成对特定代买设计编写的一套解决特定问题的方案(总结的经验)
2026-08-25 19:04:51
138
原创 中级软考(软件攻城狮)第六章知识点——结构化开发方法
系统分析报告(系统方案说明书)以数据流为中心进行构建,抽象(自底向上): 忽略具体、次要的细节,是一种从具体到一般的思维过程,可以理解为将一些具体的细节如验证密码、账号、验证码登抽象为登录,或者说将不同的水果抽象为水果一样。分解(自顶向下): 核心是“分而治之”,指的是将一个复杂的大系统,按照一定的逻辑拆分为若干个相对独立或简单的小系统,如果还复杂继续再往下。抽象:从下到上的高度性的概况,忽略细节分解:从上到下的详细分解,具体的详细的以结构化分析 (SA)
2026-08-24 21:03:21
136
原创 中级软考(软件攻城狮)第5章知识点——软件工程
📝 软件工程指的是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件工程中的问题,目的是提高软件的生产率、提高软件质量、降低成本(降本增效)
2026-08-23 19:05:06
37
原创 中级软考(软件攻城狮)第4章知识点——操作系统(进程+存储)
操作系统核心概念与进程管理摘要 基本概念:操作系统是管理硬件资源、提供用户接口的系统软件,核心功能包括资源管理、任务调度、文件管理等。主要类型有批处理、分时、实时、网络、嵌入式和分布式系统。 进程管理: 进程是资源分配的基本单位,线程是调度的最小单位。进程状态包括创建、就绪、运行、阻塞和终止。 进程通信涉及同步(有序协作)和互斥(资源争抢),通过信号量机制和PV操作实现。 调度算法包括先来先服务、时间片轮转、优先级和多级反馈队列。 死锁产生的四大条件(互斥、保持请求、不可剥夺、环路等待)及处理策略(预防、避
2026-08-21 18:50:06
23
原创 中级软考(软件攻城狮)第3章知识点——数据结构与数据运算(查找+排序)
本文系统介绍了查找和排序两大核心算法。查找部分涵盖顺序查找(O(n))、二分查找(O(logn))和哈希查找(O(1)),重点分析各类方法的适用场景及优缺点。排序算法分为基础排序(直接插入、冒泡、简单选择)和高级排序(快速排序、堆排序、归并排序、基数排序),详细对比了时间复杂度、稳定性及空间复杂度特性,如快速排序平均最优但不稳定,归并排序稳定但需额外空间。最后总结了数据结构三要素(逻辑结构、存储结构、数据运算)及其应用选择策略,强调应根据业务需求在时间与空间效率间权衡。全文通过图示和表格直观呈现各类算法特性
2026-08-19 13:51:56
199
原创 中级软考(软件攻城狮)第3章知识点——数据结构与数据运算(线性结构+非线性结构)
本文系统梳理了数据结构中的线性与非线性结构。线性部分详细介绍了线性表(顺序/链式存储及时间复杂度对比)、栈(后进先出特性及应用)、队列(循环队列与双端队列)以及串(空串与子串概念)。非线性部分涵盖数组、矩阵、广义表,重点解析了树结构(二叉树性质、存储方式及遍历方法),并深入讲解了最优二叉树(哈夫曼树)的构建原理与编码应用。全文通过图示对比和实例说明,清晰呈现了各类数据结构的特点、存储方式及典型应用场景。
2026-08-18 18:51:29
179
原创 中级软考(软件攻城狮)第2章知识点——程序设计语言基础知识
本文摘要: 程序设计语言基础知识框架介绍了语言分类(汇编、编译、解释、混合型)、基本成分(数据、运算、控制、传输)和函数调用方式。重点包括编译过程的六个阶段(词法、语法、语义分析,中间代码生成,优化和目标代码生成)以及文法的四种类型(0型无限制、1型上下文有关、2型上下文无关、3型正规文法)。最后解释了有限自动机(DFA/NFA)的概念及其状态转换表示方法,强调DFA的确定性状态转换特性。
2026-08-17 17:54:29
126
原创 中级软考(软件攻城狮)第1章知识点——计算机安全(3)
计算机安全主要分为以下两种:系统资源+信息资源系统资源:软件、硬件、配套设置、文件资料以及相关的服务系统和业务工作人员信息资源:计算机中存储、处理、传输的各种信息(1)信息安全的基本要素机密性: 确保信息不暴露给未授权的实体或者进程。完整性: 只有被允许的人才能修改数据,并能判断数据是否已经被篡改。可用性: 得到授权的实体在需要时可访问数据。可控性: 可控制授权范围内的信息流向及行为方式。可审查性: 对出现的安全问题提供调查的依据和手段。(2)计算机的安全等级技术安全性管理安全性政策法律。
2026-08-17 12:15:26
17
原创 中级软考(软件攻城狮)第1章知识点——计算机体系结构(2)
本文摘要: 文章系统介绍了计算机体系结构核心概念,包括: 体系结构分类:从宏观(单/多处理机)和微观(指令/数据并行度)角度分类; 指令系统:详解指令格式(操作码+地址码)、寻址方式(立即/直接/间接/寄存器/变址等)及CISC与RISC区别; 流水线技术:分析顺序/重叠/流水三种控制方式,给出流水线执行时间计算公式及例题; 存储系统:阐述层次结构(寄存器→Cache→主存→辅存),对比速度/容量/成本特性,重点解析Cache的工作原理(局部性原理、命中/未命中机制)及存取时间计算。 全文通过图示与实例结合
2026-08-13 19:11:09
15
原创 中级软考(软件攻城狮)第1章知识点——计算机系统知识(1)
本文摘要:文章系统介绍了计算机系统基础知识,重点解析了CPU的功能组成及数据表示方式。CPU由运算器、控制器、寄存器组和内部总线构成,其中运算器执行算术逻辑运算,控制器协调工作流程,寄存器组分为专用和通用两类。详细阐述了原码、反码、补码、移码的转换规则,以及定点数、浮点数的表示方法。最后讲解了奇偶校验码、海明码和循环冗余校验码三种校验码的工作原理,比较了它们在检错纠错能力上的差异。全文从硬件组成到数据存储校验,构建了完整的计算机系统知识框架。
2026-08-12 18:08:54
26
原创 springmvc注解执行原理(框架利用反射读取类、方法、属性上的注解元数据)
本文阐述了Spring注解的工作原理,主要基于反射机制。注解本身只是元数据标记,不含业务逻辑,其功能由外部程序通过反射读取并执行。Spring通过包扫描和反射读取类/方法上的注解信息(如@Component、@RequestMapping等),进而执行相应逻辑,如IOC容器注册、URL映射等。核心注解均设置运行时保留,确保反射可读。整体流程包括容器启动、组件扫描、反射解析注解信息,最终实现依赖注入、请求映射等功能。
2026-08-06 17:04:20
206
原创 Spring MVC的前端控制器配置(servlet+DispatcherServlet)
SpringMVC框架概述 SpringMVC是Spring框架内置实现的MVC设计模式,通过模型-视图-控制器架构实现前后端代码分离。其核心功能包括请求方法映射、数据自动封装、文件上传和JSON转换等。核心组件DispatcherServlet作为前端控制器,统一拦截请求并分发到对应Controller,实现一对多的请求处理。 配置方式分两种:传统Servlet单一配置(每个功能对应一个Servlet)和DispatcherServlet集中管理(通过XML+注解)。后者通过web.xml配置Dispat
2026-08-06 13:21:28
344
原创 springmvc中Model和ModelAndView
SpringMVC中Model和ModelAndView的区别与使用 摘要: 本文介绍了SpringMVC中两种主要的数据传递方式。1) Model作为数据容器,只负责存储数据,视图名称通过方法返回字符串指定;2) ModelAndView则同时封装数据和视图名称。Model使用addAttribute()存数据,ModelAndView通过addObject()存数据、setViewName()设视图。开发中推荐Model+String方式,简洁高效;需要动态切换视图时可用ModelAndView。两者数
2026-08-06 00:58:13
302
原创 Servlet体系
本文介绍了Servlet及其请求响应体系的核心概念。Servlet是JavaWeb组件顶层规范,HttpServlet是其HTTP实现类。ServletRequest/Response是通用接口,HttpServletRequest/Response是其HTTP专属子接口。关键区别在于:转发(forward)属于Request,重定向(redirect)属于Response。文章详细对比了各接口的功能差异,指出ServletRequest提供基础请求处理能力,而HttpServletRequest扩展了HT
2026-08-05 23:08:53
223
原创 spring注解和xml配置相互替换
Spring注解开发相比XML配置更加简洁高效。常用注解包括:@Component(及其衍生注解@Controller、@Service、@Repository)用于实例化Bean,@Autowired、@Qualifier、@Resource用于依赖注入,@Value注入普通属性。此外还有@Configuration、@ComponentScan等配置类注解。注解开发通过组件扫描替代了繁琐的XML配置,简化了Bean的定义(id/class)、作用域设置、初始化/销毁方法等配置。例如@Component(
2026-07-30 16:01:46
227
原创 java和class的相互关系
本文介绍了Java反射机制的核心概念与应用。主要内容包括:1)普通实例对象与Class对象的区别,前者存储业务数据,后者作为类的元数据模板;2).java文件编译加载过程,从源码到Class对象再到实例对象的转换;3)三种获取Class对象的方式;4)反射的核心功能(动态创建对象、调用方法、访问属性等)及其在框架中的应用;5)反射的优缺点分析,强调其灵活性与框架支撑作用,同时也指出性能损耗和封装破坏等问题。文章系统梳理了反射机制的原理与实践,是理解Java动态编程特性的重要参考。
2026-07-28 22:51:32
235
原创 spring aop面向切面编程实现方式2----------使用注解实现AOP面向切面编程
本文介绍了面向切面编程(AOP)的基本概念及其在Spring框架中的实现。AOP作为面向对象编程的补充,采用横向开发方式,通过切面将横切关注点模块化。文章详细讲解了AOP的核心术语:通知(Advice)、连接点(Join Point)、切点(PointCut)、切面(Aspect)、引入(Introduction)和织入(Weaving)。重点演示了使用注解实现AOP的步骤:1)定义目标类;2)创建切面类;3)配置XML启用注解支持;4)通过@Aspect、@Before等注解定义切点和增强逻辑;5)测试验
2026-07-24 23:09:29
260
原创 spring aop面向切面编程实现方式1----------bean.xml中配置标签 <aop:config>实现AOP(主要切面定义)
摘要:AOP(面向切面编程)是OOP的补充,通过横向切面抽象程序模块。核心概念包括通知(Advice)、连接点(Join Point)、切点(PointCut)等。Spring实现AOP可通过自定义切面类,如定义DiyPoint类实现前置/后置通知,再通过XML配置将切面织入目标类(如User类)的方法中,实现在方法执行前后插入自定义逻辑。测试验证了切面成功拦截目标方法并按顺序执行通知逻辑。
2026-07-24 22:22:12
307
原创 spring中xml和注解开发的对比
Spring IOC(控制反转)通过XML配置和注解两种方式管理Java对象(Bean)。XML方式通过<bean>标签定义对象及其属性,实现配置与业务逻辑分离,便于环境切换;注解方式(如@Component、@Service等)简化开发,提升可读性,适用于分层架构。两种方式各有优势:XML适合配置灵活的场景,注解则更高效简洁,开发者可根据项目需求选择。核心都是将对象创建和依赖注入交由Spring容器管理,降低耦合度。
2026-07-20 21:12:06
228
原创 springIOC创建对象的方式--spring容器中的注入
Spring IOC(控制反转)的核心思想是将对象的创建、依赖管理及生命周期的控制权从程序员转移给容器。传统方式需要手动new对象并管理依赖,而IOC通过容器自动实例化对象并注入依赖。其实现手段是DI(依赖注入),主要包括构造器注入和setter注入两种方式。Spring容器本质上是一个存储bean的Map,启动时扫描并创建对象,通过XML配置或注解(如@Autowired)实现自动装配。常见实例化方式包括无参构造(默认)、有参构造(通过索引、参数名或类型匹配)以及p/c命名空间简化注入配置。IOC提高了代
2026-07-19 16:23:03
284
转载 MyBatis的生命周期
MyBatis核心组件的生命周期管理:SqlSessionFactoryBuilder仅用于创建SqlSessionFactory后就应销毁;SqlSessionFactory作为单例存在,生命周期等同于整个应用;SqlSession相当于数据库连接,应在业务请求完成后立即关闭;Mapper的生命周期不超过SqlSession。正确管理这些组件生命周期对资源利用和系统稳定性至关重要。
2025-08-19 22:30:35
149
原创 oracle表分区--范围分区
分区,就类似于我们将图书分类放到了不同的区间中,这个时候,我们就可以只针对其中的某一类图书进行操作,比如进行该类书籍的查询、上架、下架、甚至将该类图书付之一炬,这带来了两个特别大的优势,第一,我们无视其他分区的数据;节约维护的成本,传统的维护操作,例如重建索引等,因为有锁机制的存在,是会影响到其他人的读取和更新删除操作的,但是由于有了分区,我们在维护IT类书籍的时候,就不会对其他分类的数据造成影响,这个时候,可以降低因为维护数据而对其他系统数据产生的各种影响。3)在最高的分区中,MAXVALUE被定义。
2025-02-12 14:58:30
1988
1
原创 oracle闪回表
#### 1、删除关于表的所有数据(表数据,索引,主键等对象),闪回恢复的时候同时恢复。#### 2、未清理回收的情况下,成功闪回表,清理回收站的情况下,闪回表失败### 3、闪回表的同时对原有的表进行重新命名后,所有的数据将恢复到新表中
2025-01-10 12:14:43
608
原创 oracle闪回版本查询
闪回版本查询(Flashback Versions Query)是Oracle数据库提供的一种功能,允许用户查看某个表在特定时间范围内的所有版本。这对于审计和调试数据修改问题非常有用。通过闪回版本查询,你可以了解表中的数据在某个时间段内的变化历史。
2025-01-08 18:54:34
674
原创 oracle闪回恢复数据:(闪回查询,闪回表,闪回库,回收站恢复)
oracle的闪回查询,可以查询提交在表空间的闪回数据,并可以还原所查询的数据,用于恢复短时间内的delele 或者 update 误操作,非常方便,缺点是只能恢复大概几小时内的数据。
2025-01-07 18:16:54
3409
原创 oracle 数据库回收站恢复误删除表
在Oracle 12c及更高版本中,被删除的表一旦进入回收站,就会被立即清除,所以从技术角度来看,“回收站中的记录保留时间”是不适用的。执行后,被误删的表和表中的索引会一起恢复到原来的状态和删除前的状态保持一致,同时表恢复后,oracle回收站中的记录也消失。1、通过回收站来恢复删除的表的前提为“回收站”的功能是打开的情况下,则能使用回收站来恢复;TYPE:删除的类型(表、视图、索引),表中添加的索引,表和索引一起被删除。回收站已经有刚才被误删除的表信息,接下来利用命令恢复就行。的回收站功能,如果是。
2025-01-06 18:47:47
1085
原创 性能优化一:oracle 锁的原则
根据上面两个视图中查到的sid可以在dba_objects通过事务的查询到具体那个事务的阻塞情况和具体那个表。,导致session2进行事务操作的时候被阻塞需要等待session1,通过这个视图可以看到一个用户所有拥有的所有对象,方便dba进行检测。8、当一行被修改后 , Oracle通过回滚段提供给数据的一致性读。,STATISTIC#就是统计量的编号(用来唯一确定统计量的名称)当会话seesion1进行事务操作的情况下,未对相关的事务进行。3、当某行被修改时 ,它将阻塞别人对它的修改。
2024-09-13 12:27:27
1365
1
原创 oracle执行计划分析
索引全扫描是指扫描目标索引所有叶子块的索引行,但不意思着需要扫描所有的分支块,索引全扫描时只需要访问必要的分支块,然后定位到位于该索引最左边的叶子块的第一行索引行,就可以利用该索引叶子块之间的双向指针链表,从左往右依次顺序扫描所有的叶子块的索引行。类似一个嵌套的循环。全表扫描是采用多数据块一起扫的,并不是一个个数据库扫的,然后我们经常说全表扫描慢是针对数据量很多的情况,数据量少的话,全表扫描并不慢的,不过随着数据量越多,高水位线也就越高,也就是说需要扫描的数据库越多,自然扫描所需要的IO越多,时间也越多。
2024-09-11 18:29:30
1455
1
原创 oracle锁的机制
1. 避免应用不运行长事务。2. 经常提交以避免长时间锁定行。3. 避免使用LOCK命令锁定表。4. 在非高峰期间执行DDL操作,在非高峰期间执行长时间运行的查询或事务。另外需注意,需监测系统中死锁,调查为什么这些锁正被保持,频率;当死锁发生通过回滚事务rollback或者终止会话来解决它。持续更此篇章--------->2024年9月6日!!!!!
2024-09-06 19:25:56
1656
原创 oracle事务隔离级别
事务T1更新了一行记录,还未提交所做的修改,这个T2读取了更新后的数据,然后T1执行回滚操作,取消刚才的修改,所以T2所读取的行就无效,也就是脏数据。事务T1读取一行记录,紧接着事务T2修改了T1刚刚读取的记录并commit,然后T1再次查询,发现与第一次读取的记录不同,这称为不可重复读。3. Isolation(隔离性):多个并发事务可以独立运行,而不能相互干扰,一个事务修改数据未提交前,其他事务看不到它所做的更改。4. Durability(持久性):事务提交后,数据的修改是永久的。
2024-09-06 19:10:00
1083
原创 字节、字符、字符集、字符编码
使用该法则能够对自然语言的字符的一个集合(如字母表或音节表),与其他东西的一个集合(如号码或电脉冲)进行配对。而以计算机为基础的信息处理系统则是利用元件(硬件)不同状态的组合来存储和处理信息的。元件不同状态的组合能代表数字系统的数字,因此字符编码就是将符号转换为计算机可以接受的数字系统的数,称为数字代码。随着时代的发展,程序员们希望在计算机中显示字符,但计算机只能识别0和1的二进制数。,在GBK编码中一个汉字占2个字节,在UTF-8编码中一个汉字占3个字节。是一个系统支持的所有抽象字符的集合。
2024-09-05 18:35:19
374
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅