系统分析
文章平均质量分 83
程序员杂谈
自我评价
诚实信用 勤奋刻苦 有较强的组织能力和团队意识
责任心强 有创新精神 自学能力较好
精通seo优化
展开
-
系统分析师易错题整理
多核CPU 多核 CPU 环境下进程的调度算法一般有全局队列调度和局部队列调度两种。(18)属于全局队列调 度的特征。 (18)A.操作系统为每个 CPU 维护一个任务等待队列 B.操作系统维护一个任务等待队列C.任务基本上无需在多个 CPU 核心间切换,有利于提高 Cache 命中率 D.当系统中有一个 CPU 核心空闲时,操作系统便从该核心的任务等待队列中选取适当的任务执 行 参考答案:(18)B 试题解析: 对于多核 CPU,优化操作系统任务调度算法是保证效率的关原创 2021-04-23 09:18:56 · 1664 阅读 · 0 评论 -
java字节码技术
什么是java字节码技术 Java之所以可以“一次编译,到处运行”,一是因为JVM针对各种操作系统、平台都进行了定制,二是因为无论在什么平台,都可以编译生成固定格式的字节码(.class文件)供JVM使用。因此,也可以看出字节码对于Java生态的重要性。之所以被称之为字节码,是因为字节码文件由十六进制值组成,而JVM以两个十六进制值为一组,即以字节为单位进行读取。在Java中一般是用javac命令编译源代码为字节码文件,一个.java文件从编译到运行的示例如图1所示。字节码技术应用场景AO...原创 2020-08-08 15:01:20 · 1221 阅读 · 0 评论 -
java垃圾回收器
一、Java有四种类型的垃圾回收器串行垃圾回收器(Serial Garbage Collector) 并行垃圾回收器(Parallel Garbage Collector) 并发标记扫描垃圾回收器(CMS Garbage Collector) G1垃圾回收器(G1 Garbage Collector)每种类型都有自己的优势与劣势。重要的是,我们编程的时候可以通过JVM选择垃圾回收器类型。我们通过向JVM传递参数进行选择。每种类型在很大程度上有 所不同并且可以为我们提供完全不同的应用程序性能.原创 2020-08-06 13:56:57 · 464 阅读 · 0 评论 -
并发编程--Disruptor框架
Disruptor它是一个开源的并发框架,并获得2011 Duke’s 程序框架创新奖,能够在无锁的情况下实现网络的Queue并发操作;它是一个高性能的异步处理框架,或者可以认为是最快的消息框架(轻量的JMS),也可以认为是一个观察者模式的实现,或者事件监听模式的实现;它是基于使用CAS机制实现的。CAS:Compare And Swap/Set 顾名思义比较和交换CPU级别的指令,cpu去更新一个值,但如果跟新过程中值发生了变化,操作就失败,然后重试,直到更新成功!Disruptor的seque原创 2020-07-20 14:11:30 · 278 阅读 · 0 评论 -
CPU密集型 vs IO密集型
CPU密集型(CPU-bound)CPU密集型线程的作用是进行无阻塞的逻辑运算的线程。比如:RPG游戏中的游戏逻辑服务器(也叫地图服务器)里面的主逻辑线程,这个主逻辑线程需要进行大量的无阻塞的逻辑处理。当被操作系统内核调度的时候,这个线程就在给定的CPU执行时间内进行无阻塞的操作。如果这个游戏逻辑服务器还创建更多的线程来进行逻辑操作的话,这样的行为是得不尝失的。因为,本进程的线程越多,而本进程获取的CPU执行时间又是固定的,导致了进程内每个线程的执行时间很短。所以,像游戏逻辑服务器中的线程应该属于CPU密原创 2020-07-11 16:09:02 · 1193 阅读 · 0 评论 -
设计模式的六大原则
一、单一职责原则 Single Responsibility Principle,应该有且仅有一个原因引起类的变更,实际中比较不好把握,因为职责的划分没有一个统一的标准。 二、里氏替换原则 Liskov Substitution Principle,通俗点讲,只要父类能出现的地方子类就可以出现,而且替换为子类也不会产生任何错误或异常,使用者可能根本就不需要知道是父类还是子类。但是,反过来就不行了,有子类出现的地方,父类未必就能适应。 三、依赖倒置原则 Dependence I.原创 2020-07-09 16:15:22 · 313 阅读 · 0 评论 -
线程池简介
线程池的概念: 线程池就是首先创建一些线程,它们的集合称为线程池。使用线程池可以很好地提高性能,线程池在系统启动时即创建大量空闲的线程,程序将一个任务传给线程池,线程池就会启动一条线程来执行这个任务,执行结束以后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待执行下一个任务。 线程池的工作机制: 在线程池的编程模式下,任务是提交给整个线程池,而不是直接提交给某个线程,线程池在拿到任务后,就在内部寻找是否有空闲的线程,如果有,则将任务交给某个空闲的...原创 2020-06-06 08:17:14 · 215 阅读 · 0 评论 -
多媒体媒体分类
媒体的概念范围相当广泛,按照国际电话电报咨询委员会(Consultative Committee on International Telephone and Telegraph,CCITT)的定义,媒体可以分为如下5类。(1)感觉媒体(Perception Medium):指直接作用于人的感觉器官,使人产生直接感觉的媒体。如引起听觉反应的声音,引起视觉反应的图像等。(2)表示媒体(r...原创 2020-04-15 14:10:45 · 3213 阅读 · 0 评论 -
结构化布线子系统
结构化布线分为6个子系统:工作区子系统(Work Location):是由终端设备到信息插座的整个区域。一个独立的需要安装终端设备的区域划分为一个工作区。工作区应支持电话、数据终端、计算机、 电视机、监视器以及传感器等多种终端设备。水平子系统(Horizontal):各个楼层接线间的配线架到工作区f息插座之间所安装的线缆属于水平子系统。水平子系统的作用是将干线子系统线路延伸到用户工作区。...原创 2020-04-07 15:44:01 · 1051 阅读 · 0 评论 -
线性规划问题
线性规划的可行解域是由一组线性约束条件形成的,从几何意义来说,就是由一些线性解面围割形成的区域。由于线性规划的目标函数也是线性的,因此,目标函数的等值域是线性区域。如果在可行解域中的某内点处目标函数达到最优值,则通过该内点的目标函数等值域与可行解域边界的交点也能达到最优解。所以,第一步的结论是:最优解必然会在可行解域的边界处达到。由于目标函数的各个等值域是平行的,而且目标函数的值将随着该等值域向某...原创 2020-04-07 11:07:51 · 2606 阅读 · 0 评论 -
敏捷开发方法之Scrum
介绍Scrum 是一个增量的、迭代的敏捷软件开发过程。某软件公司计划开发一个基于Web的 Scrum项目管理系统,用于支持项目团队采用Scrum敏捷开发方法进行软件开发,辅助主管智能决策。此项目管理系统提供的主要服务包括项目团队的管理、敏捷开发过程管理和工件的管理。 Scrum敏捷开发中,项目团队由Scrum主管、产品负责人和开发团队人员三种不同的角色组成,其开发过程由若干个Sp...原创 2020-04-03 11:12:30 · 1435 阅读 · 0 评论 -
信息技术软件生存周期过程
在GBT8566—2007(信息技术软件生存周期过程)标准中,软件生存周期的基本过程包括五个,分别是获取过程、供应过程、开发过程、运作过程、维护过程。其中获取过程是为获取系统、软件产品或软件服务的组织即需方而定义的活动;供应过程是为向需方提供系统、软件产品或软件服务的组织即供方定义的活动;开发过程是为定义并开发软件产品的组织即开发方而定义的活动;运作过程是为在规定的环境中为其用...原创 2020-03-30 15:33:50 · 2140 阅读 · 0 评论 -
多核处理器介绍
多核是多微处理器核的简称,是将两个或更多的独立处理器封装在一起,集成在一个电路中。多核处理器是单枚芯片(也称为硅核),能够直接插入单一的处理器插槽中,但操作系统会利用所有相关的资源,将它的每个执行内核作为分立的逻辑处理器。通过在多个执行内核之间划分任务,多核处理器可在特定的时钟周期内执行更多任务。多线程是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同...原创 2020-03-24 11:18:22 · 7856 阅读 · 0 评论 -
利用开源软件搭建JAVA工程CI&CD自动化工具链(K8S)
JAVA传统项目交付流程的问题开发和运维间环境有明显差异 代码缺乏统一质量度量 客户要求上线时间紧,人工测试慢,导致测试不充分,时常做线上BUG修复打造工具链源码管理Gitlab 持续集成Jenkins 代码扫描SonarQube 接口测试PostMan+NewMan 制品管理ArtifactoryOSS版本(仅支持Maven) 自动部署AnsibleGi...转载 2020-03-16 17:24:15 · 756 阅读 · 0 评论 -
网络技术的选择考虑哪些因素?
根据用户需求选择网络技术时应考虑如下因素:①通信带宽。所选择的网络技术必须保证足够的带宽,能够保证用户快速地访问应用系统。在进行选择时,不仅局限于现有的应用需求,还要适当考虑将来的带宽增长需求。②技术成熟性。所选择的网络技术必须是成熟稳定的技术,有些新的网络技术在尚没有大规模投入使用时,还存在着较多不确定因素,这将会给网络建设带来很多无法估量的损失。对于大型网络工程来说,项目本身不能成为新...原创 2020-03-13 10:15:29 · 2384 阅读 · 0 评论 -
Kafka与RabbitMQ的区别
作为消息队列来说,企业中选择mq的还是多数,因为像Rabbit,Rocket等mq中间件都属于很成熟的产品,性能一般但可靠性较强,而kafka原本设计的初衷是日志统计分析,现在基于大数据的背景下也可以做运营数据的分析统计,而redis的主要场景是内存数据库,作为消息队列来说可靠性太差,而且速度太依赖网络IO,在服务器本机上的速度较快,且容易出现数据堆积的问题,在比较轻量的场合下能够适用。Ra...原创 2020-03-12 17:24:10 · 7965 阅读 · 0 评论 -
数据库的三级模式结构
数据库的三级模式结构中,视图对应外模式、基本表对应模式、存储文件对应内模式。数据库系统在三级模式之间提供了两级映像:模式/内模式映像、外模式/模式映像。正因为这两级映像保证了数据库中的数据具有较髙的逻辑独立性和物理独立性。①外模式/模式的映像:存在于外部级和概念级之间,实现了外模式到概念模式之间的相互转换。数据的逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构发生...原创 2020-03-11 10:25:37 · 3231 阅读 · 0 评论 -
螺旋模型与增量模型
1988年,Barry Boehm正式发表了软件系统开发的“螺旋模型”,它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。螺旋模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。但是,螺旋模型也有一定的限制条件,具体如下:①螺旋模型强调风险分析,但要求许多客户接受和相信这种分析,并做出相关反应是...原创 2020-03-10 14:52:01 · 3683 阅读 · 0 评论 -
敏捷开发原则及方法
敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。敏捷开发的原则包括:①最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。②即使到了开发的后期,也欢迎改变需求。敏捷过...原创 2020-03-10 11:41:28 · 3547 阅读 · 0 评论 -
软件质量保证和软件配置管理
对于软件开发项目而言,控制是十分重要的管理活动。软件质量保证 (Software Quality Insurance, SQA)是在软件过程中的每一步都进行的“保护性活动”。SQA主要由基于非执行的测试(也称为评审)、基于执行的测试(即通常所说的测试) 和程序正确性证明。软件评审是最为重要的SQA活动之一。它的作用是,在发现及改正错误的成本相对较小时就及时发现并排除错误。审查和走查是进...原创 2020-03-10 11:31:34 · 1936 阅读 · 0 评论 -
I/O设备和CPU之间数据传送控制方式
常用的I/O设备和CPU之间数据传送控制方式有4种,分别为程序直接控制方式、中断控制方式、DMA方式和通道方式。程序直接控制方式和中断控制方式都只适用于简单的、外设很少的计算机系统,因为程序直接控制方式耗费大量的CPU时间,而且无法检测发现设备或其他硬件产生的错误,设备与CPU、设备与设备只能串行工作。中断控制方式虽然在某种程度上解决了上述问题,但由于中断次数多,因而CPU仍需要花费较多的...原创 2020-03-10 11:21:01 · 12020 阅读 · 0 评论 -
RISC(精简指令集计算机)和CISC(复杂指令集计算机)
RISC(精简指令集计算机)和CISC(复杂指令集计算机)是目前设计制造微处理器的两种典型技术,虽然它们都试图在体系结构、操作运行、软件硬件、编译时间和运行时间等诸多因素中做出某种平衡,以求达到高效的目的,但采用的方法不同,主要区别有:①指令系统:RISC设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。对不常用的功能,常通过组合指令来完成。因此,在RISC机器上实现特殊...原创 2020-03-10 10:56:57 · 6611 阅读 · 0 评论 -
服务降级、服务隔离、服务熔断、服务限流简介
服务降级:在高并发的情况下,防止用户一直等待,使用服务降级方式进行处理(返回友好的提示给客户端,fallback回调方法)。当服务不可用的时候(正在等待的时候、网络延迟、响应时间过长),客户端会处于一直等待的状态。显然一直等待是不合理的,所以我们应该给客户端返回一个友好的提示,使用fallback(回调方法)进行服务降级处理。服务降级目的:为了提高用户体验(自定义消息返回给客户端),防止服务雪...原创 2020-03-06 15:22:19 · 860 阅读 · 1 评论 -
面向对象设计原则
面向对象设计原则可以有效地提高系统的复用性和可维护性。1、单一职责原则定义:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。单一职责原则是实现高内聚、低耦合的指导方针,是最简单却最难运用的原则,需要设计人员发现类的不同职责并将其分离2、开闭原则定义:软件实体应当对扩展开放,对修改关闭。指软件实体应尽量在不修改原有代码的情况下进行扩展。3、里氏替换原则定义:...原创 2020-03-06 14:05:17 · 263 阅读 · 0 评论 -
软件开发方法简介
如何选择一个合适的开发方法,以保证在多变的市场环境下,在既定的预算和时间要求范围内,开发出让用户满意的信息系统,是系统分析师必须要面对的问题。面向对象方法使系统的描述及信息模型的表示与客观实体相对应,符合人们的思维习惯,有利于系统开发过程中用户与开发人员的交流与沟通,缩短开发周期,提供系统开发的正确性和效率。模型驱动开发(MDD Model-Driven Development):一种新型...原创 2020-03-03 14:54:36 · 1699 阅读 · 0 评论 -
软件配置项的基本概念
随着软件开发工作的开展,会得到许多工作产品或阶段产品,还会用到许多工具软件。所有这些独立的信息项都要得到妥善的管理,决不能出现混乱,以便于在提出某些特定的要求时,将它们进行约定的组合来满足使用的目的。这些信息项目是配針管理的对象,称为软件配置项。软件配置项目可以分为以下几类:(1)环境类,指软件开发环境或软件维护环境,例如编译器、操作系统、编辑器、数据库管理系统、开发工具、项目管理工具、文...原创 2020-03-03 11:53:05 · 10706 阅读 · 0 评论 -
嵌入式系统特点
嵌入式系统具有以下特点:(1)系统专用性强。嵌入式系统是针对具体应用的专门系统。它的个性化很强,软件和硬件结合紧密。一般要针对硬件进行软件的开发和移植,根据硬件的变化和增减对软件进行修改。由于嵌入式系统总是用来完成某一特定任务的,整个系统与具体应用有机地结合在一起,升级换代也以更换整个产品的方式进行,因此,嵌入式产品一旦进入市场,一般具有较长的生命周期。(2)系统实时性强。很多嵌入式系统对外...原创 2019-12-24 11:45:36 · 6422 阅读 · 1 评论 -
结构化方法和面向建模技术
结构化方法假定待开发的系统是一个结构化的系统,其基本思想是将系统的生命周期划分为系统规划、系统分析、系统设计、系统实施、系统维护等阶段。这种方法遵循系统工程原理,按照事先设计好的程序和步骤,使用一定的开发工具,完成规定的文档,在结构化和模块化的基础上进行信息系统的开发工作。结构化方法的开发过程一般是先把系统功能视为一个大的模块,再根据系统分析与设计的要求对其进行进一步的模块分解或组合。OM...原创 2019-12-24 10:45:25 · 1075 阅读 · 0 评论