- 博客(244)
- 收藏
- 关注
原创 系统架构设计师——信息系统架构设计(一)
美国国防部开发的C4ISR是美国国防信息基础设施的核心组成部分,它整合了多个系统,以支持战略和战术决策。这一系统的开发可以视为早期信息系统架构设计的典范,专注于如何通过集成不同的信息技术来实现复杂的军事操作需求。Zachman框架由John Zachman于1987年提出,其架构设计理念影响了后续多个架构框架的发展。
2024-09-04 07:15:00 1038
原创 系统架构设计师——层次式架构设计理论与实践
层次式体系结构是一种将系统组织成多个层次的设计方法,每个层次为上层提供服务,并作为下层的客户。这种结构有助于实现关注点分离,使得每个组件只负责本层的逻辑,从而提高了系统的可维护性和可扩展性。在层次式体系结构中,每一层最多只影响两层,只要给相邻层提供相同的接口,就可以允许每层用不同的方法实现。这种设计为软件重用提供了强大的支持。同时,由于组件的划分很容易明确组件的角色和职责,因此也比较容易开发、测试、管理和维护。
2024-09-03 07:30:00 710
原创 系统架构设计师——信息系统
资源三大流ERP系统整合了物流、信息流和资金流,确保这些资源在企业内部顺畅流动并高效利用。管理理论和管理思想ERP融合了现代管理理论,如供应链管理(SCM)、客户关系管理(CRM)和商业智能(BI),旨在通过科学的管理思想提高企业效益。发展历程从最初的物料需求计划(MRP)到制造资源计划(MRPⅡ),再到今天的ERP,该系统经历了多次演变,目前正融入人工智能和云计算等新技术。
2024-09-03 07:15:00 653
原创 系统架构设计师——系统性能
这些方法分别通过直接获取理想数据、应用衍生出的复合指标公式、程序测试以及仪器测试来评估性能指标。计算方法在工程和科学领域内扮演着至关重要的角色,它涵盖了对各种指标的具体评估方式。
2024-09-02 07:15:00 681
原创 系统架构设计师——信息系统概述
信息系统是一个复杂的集成体,它结合了计算机硬件、网络和通信设备、计算机软件、信息资源、信息用户以及规章制度,旨在高效地处理和管理信息流。这个系统不仅仅是技术的组合,还涉及到使用这些技术的人和他们制定的规章,确保信息的有效和安全流通。:信息系统的输入功能是指从外部或内部源收集数据的过程。这些数据可以是事务数据、文档、图像等任何形式的原始事实或观察结果。输入的数据需要通过键盘、扫描仪、传感器或其他设备转换成机器可读的形式,以便系统处理。:存储是信息系统保存数据和信息的功能。
2024-09-02 07:15:00 755
原创 系统架构设计师——架构评估(二)
对场景进行分类,生成特定体系结构的场景描述列表,然后逐一评估这些场景,并分析它们之间的相互作用。:在收集和分析场景后,设计师将最高级别的场景映射到所描述的架构中,并解释相关架构是如何帮助实现这些场景的。ATAM的评估结果包括简洁的架构描述、清晰的业务目标、用场景集合捕获的质量属性、确定的敏感点和权衡点集合、有风险决策和无风险决策、风险主题的集合。:项目决策者从业务的角度介绍系统的概况,包括系统的主要功能、技术或管理或经济和政治方面的限制、与项目相关的业务目标和上下文、关键干系人以及架构的驱动因素。
2024-08-30 07:30:00 943
原创 系统架构设计师——系统工程学
基于模型的系统工程(MBSE)是一种系统化的方法,它通过形式化、图形化、关联化的建模语言和工具,支持系统的需求分析、设计、验证和确认等活动。从概念设计阶段开始,贯穿整个产品或系统的生命周期,包括设计开发和后续的各个阶段。MBSE的核心思想可以概括为以下几点:**形式化建模方法:**使用标准化的建模语言,如SysML(系统建模语言),来确保模型的一致性和精确性。**图形化表示:**通过可视化的图形来表达系统的结构、行为、需求等,使复杂的系统信息更易于理解和沟通。
2024-08-30 07:15:00 1196
原创 系统架构设计师——架构评估(一)
可用性是软件系统的一个重要质量属性,它确保了系统能够在预期的时间内正常运行和提供服务。提升可用性的策略通常包括错误检测、错误恢复和错误避免三个方面。提升安全性是软件系统设计中至关重要的一环,尤其是在网络互联的环境下。提升性能是软件系统中至关重要的方面,尤其是在高负载和高并发的场景下。可修改性是软件系统的一个重要质量属性,它指系统能够容易地被修改、扩展或维护。
2024-08-29 07:15:00 1224
原创 系统架构设计师——微服务架构
微服务架构是一种将单一应用程序作为一套小服务的开发方法,每个服务运行在其独立的进程中,并通常围绕特定的业务功能进行构建。这些服务可以通过轻量级的通信协议(如HTTP/JSON)进行交互和数据交换。
2024-08-28 07:15:00 970
原创 系统架构设计师——其他架构模式
MVC模式将应用程序分为三个核心部分:模型(Model)、视图(View)和控制器(Controller)。这种分离有助于提高代码的可维护性、可扩展性和可复用性。确实,使用MVC模式设计表现层带来了多方面的优势,您列举的这些优点非常到位。
2024-08-28 07:15:00 643
原创 系统架构设计师——SOA面向服务的架构
SOA是一种设计方法,其中业务功能被封装为可重用的服务。这些服务通过定义良好的接口和协议进行交互,独立于编程语言和部署平台。
2024-08-27 07:15:00 658
原创 系统架构设计师——基于架构的软件开发方法
基于体系结构的软件设计(Architecture-Based Software Design,ABSD)方法是一种以软件架构为中心的设计方法论,它强调在软件开发过程中早期和持续地关注软件体系结构。
2024-08-23 07:30:00 1988
原创 系统架构设计师——信息系统基础知识
信息化是指利用信息技术和信息系统收集、处理、存储、传输、分析和利用数据和信息的过程。信息化对于提高组织的效率、竞争力和创新能力至关重要。
2024-08-22 07:15:00 479
原创 系统架构设计师——信息系统应用
旨在提升企业的操作效率和决策质量。ERP系统通过整合主要的业务流程:物流、资金流和信息流,帮助企业各部分之间实现信息共享和流程优化。:物流涉及产品从原材料到最终用户的整个物理流转过程。这包括供应链中的采购、生产、仓储和配送等环节。在ERP中,物流管理模块帮助企业控制和管理库存水平,优化库存位置和移动路径,从而减少运输成本和提高响应速度。:资金流描述了资金在供应链中的流动路径,它通常与物流相反。例如,当产品售出时,资金流向公司,而当购买原材料或服务时,资金流出。
2024-08-22 07:15:00 839
原创 系统架构设计师——系统测试
黑盒测试将软件看作是一个不透明的黑盒,完全不考虑(或不了解)程序的内部结构和处理算法,而只检查软件功能是否能按照SRS的要求正常使用,软件是否能适当地接收输入数据并产生正确的输出信息,软件运行过程中能否保持外部信息(例如,文件和数据库等)的完整性等。自顶向下的单元测试是一种测试策略,从软件结构的顶层开始,并在逐步向下的层次中进行。在这种方法中,底层的函数或模块首先被测试,这些测试通常不需要依赖其他未测试的模块。系统测试是测试整个软件系统的过程,包括所有集成的模块、子系统和软硬件环境。
2024-08-21 07:15:00 1702
原创 JDK源码——String相关
String类别不可变字符串可变字符串可变字符串与同步性能因为不可变,拼接字符串效率较低,每次拼接都会生成新的String对象。在单线程中,相比String效率更高,因为可以直接在原字符串上进行修改,不需要创建新对象。由于添加了同步,所以在多线程环境中是安全的,但在单线程中比StringBuilder慢。线程安全线程安全,因为是不可变的不是线程安全的线程安全修改方式不能被修改可以被修改可以被修改常见用途适用于少量字符串操作和值的比较适用于大量字符串操作且不需要考虑线程安全的场景。
2024-08-16 07:15:00 786
原创 Idea开发代码注释规范
注释风格:尽量保持注释简洁明了,避免过多的冗余信息。注释应该遵循一致的风格,例如使用英文标点符号和空格。注释更新:当代码发生变化时,确保相应的注释也得到更新,以保持代码和注释的一致性。
2024-08-16 07:15:00 299
原创 JDK源码——ThreadLocal
remove(): 移除当前线程的局部变量值。调用此方法后,当前线程将不再持有任何局部变量值。set(T): 为当前线程设置一个新的局部变量值。参数T是要设置的值的类型。get(): 获取当前线程的局部变量值。返回类型为T。withInitial(Supplier): 创建一个新的ThreadLocal实例,其初始值由提供的Supplier提供。这个方法返回一个新的ThreadLocal对象,其类型为S。
2024-08-14 07:15:00 923
原创 JDK源码——线程安全的队列
clear()方法没有参数且返回类型为void,意味着它不返回任何值;element()方法同样没有参数,但返回类型为E,表示它返回队列中的元素;extends E>)方法接受一个集合作为参数,并且返回类型为boolean,表示它将多个元素添加到队列中并返回操作是否成功;remove()方法返回类型也是E,但它从队列中移除并返回头部元素;add(E)方法接受一个元素作为参数,返回类型为boolean,表示它尝试将元素添加到队列中并返回是否成功。
2024-08-12 07:15:00 1136
原创 JDK源码——同步类
初始化:创建一个CountDownLatch实例时,需要指定一个计数器(count)的值。这个值表示需要等待的操作数量。减少计数器:当一个操作完成时,调用CountDownLatch的countDown()方法,将计数器的值减1。阻塞等待:在计数器值为0之前,调用await()方法的线程会被阻塞。一旦计数器的值变为0,所有等待的线程将被唤醒并继续执行。重置:CountDownLatch没有提供重置计数器的方法。如果需要重新开始等待,需要重新创建一个新的CountDownLatch实例。
2024-08-12 07:15:00 935
原创 JDK源码——locks包(一)
这是一个抽象类,提供了锁的拥有者信息。它主要是为了创建具有所有权功能的同步器,例如信号量和事件计数。:这是一个受保护的方法,用于设置当前拥有独占访问权限的线程。传入一个线程对象作为参数,如果传入null,则表示没有线程拥有访问权限。:这是一个受保护的方法,用于获取当前拥有独占访问权限的线程。如果没有线程拥有访问权限,返回null。这是一个为一系列所设计的抽象框架,比如信号量、事件等,其中操作长整型值。它提供了一个基于FIFO的阻塞队列,可以用于构建锁定和相关的同步器。
2024-08-10 07:30:00 1163
原创 JDK源码——Atomic包(二)
允许对指定类的实例中的int类型字段进行原子更新。这意味着在多线程环境下,你可以安全地更新这个字段,而不会导致不一致或者竞态条件的问题。
2024-08-09 07:15:00 967
原创 JDK源码——Atomic包(三)
允许你原子地更新一个引用类型的变量。这意味着在多线程环境下,你可以安全地更新这个引用,而不会导致不一致或者竞态条件的问题。它通常用于实现简单的并发数据结构,如原子计数器、状态标志等。是一个泛型类,用于实现一个线程安全的引用类型。
2024-08-09 07:15:00 1084
原创 JDK源码——Atomic包(一)
Atomic包是Java在并发编程中的重要工具,它利用CAS(Compare-And-Swap)机制保证操作的原子性,同时避免了重量级锁的使用,提高了并发性能。Atomic包中的类通过底层处理器提供的原子指令实现,但不同的CPU架构可能提供的原子指令不同,有时可能需要某种形式的内部锁,因此不能绝对保证线程不被阻塞。
2024-08-08 23:23:08 774
原创 JVM手册——JVM相关配置
通过这个选项,你可以设置一个目标,使得应用程序在垃圾收集上花费的时间占总运行时间的比例尽可能小。:这个选项提供了更详细的垃圾收集日志,包括每一代的回收情况、回收所花费的时间、以及堆的使用情况等。这些选项允许开发者和系统管理员根据应用的具体需求和性能目标,精细地控制并行和并行压缩收集器的行为,从而优化应用的性能和响应时间。这些选项允许开发者和系统管理员根据应用的具体需求和性能目标,精细地控制CMS收集器的行为,从而优化应用的性能和响应时间。正确的线程数可以提升收集效率,减少垃圾收集对应用的影响。
2024-08-08 07:15:00 581
原创 Java HotSpot虚拟机中的内存管理手册阅读笔记
并行收集器是为充分利用多核CPU服务器而设计的,它通过并行执行垃圾收集任务来提高应用程序的吞吐量。尽管它可以减少年轻代收集的暂停时间,但在老年代收集时仍可能面临较长的暂停。因此,它适合那些可以容忍暂停的批量处理型应用程序。在选择垃圾收集器时,应根据应用程序的具体需求和运行环境来决定是否使用并行收集器。
2024-08-07 23:29:08 747
原创 Java多线程学习——JDK工具篇
四种常见的线程池分别是:newCachedThreadPool:创建一个可缓存的线程池,它会根据需要创建新线程,但如果线程空闲时间超过60秒,则会被回收。这种类型的线程池适用于执行大量短期异步任务的场景。newFixedThreadPool:创建一个固定大小的线程池,所有线程都是核心线程。当线程池中的线程都在执行任务时,新的任务会等待队列中的任务完成后再执行。这种类型的线程池适用于执行长期运行的任务。
2024-08-07 07:15:00 559
原创 Java多线程学习——基础篇
线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,但可以访问同属进程下的所有资源。协程则是一种用户级的轻量级线程,完全由用户控制,上下文切换速度快,开销小。:进程是计算机程序关于某个数据集的一次运行活动,是操作系统资源分配和调度的独立单位。每个进程都拥有独立的内存空间,进程间的切换开销较大,但相对安全和稳定。:线程是进程中的一个实体,它不拥有系统资源但可访问进程资源。同一进程内的多个线程共享内存和资源,线程间的切换开销较小。
2024-08-06 07:15:00 875
原创 Java多线程学习——原理篇
重排序是指编译器、运行时或处理器为了优化指令的执行顺序,而对代码中的指令进行重新排序的过程。重排序的主要目的是提高代码的执行效率,例如通过更好地利用CPU资源和减少阻塞时间。Happens-before原则是JMM中用于定义操作之间顺序的一项规则,它保证了操作的可见性、有序性和原子性。
2024-08-06 07:15:00 778
原创 记录一次Dump文件分析之旅
在分析dump文件时,我们建议尝试使用多个工具,以便从不同角度深入分析问题。若存在内存泄漏,可以直接借助JProfiler来识别问题线程和相关对象。如果未发现明显异常,那么可能需要采用其他软件进行进一步分析。事实上,后来发现在IntelliJ IDEA中也能查看完整的对象情况,包括那些等待回收的对象,这为我们的分析提供了更多便利。
2024-07-31 07:30:00 425
原创 Java8文档阅读——工具篇
启动一个图形化控制台,用于监控和管理 Java 应用程序。jconsole的参数如下:-interval=n:设置更新间隔为n秒(默认为4秒)。-notile:初始时不平铺窗口(适用于两个或更多连接)。-pluginpath plugins:指定要搜索JConsole插件的目录或JAR文件列表。
2024-07-25 07:15:00 724
原创 Java并发编程实战读书笔记(四)
Java内存模型(JMM)是通过各种操作来定义的,包括对变量的读/写操作、监视器的加锁和释放操作,以及线程的启动和合并操作。JMM为程序中的所有操作定义了一个偏序关系,称为Happens-Before。要确保执行操作B的线程看到操作A的结果(无论A和B是否在同一个线程中执行),在A和B之间必须满足Happens-Before关系。如果两个操作之间缺乏Happens-Before关系,那么JVM可以对它们任意地重排序。
2024-07-24 07:30:00 502
Java建造者模式示例
2024-08-12
Java工厂模式:简单工厂、工厂方法模式、抽象工厂模式代码示例
2024-08-12
设计模式-Java单例模式的各种实现实例
2024-08-06
esper官网文档中英文对照201-400页
2024-06-02
esper官网文档中英文对照1-200页
2024-06-02
高级信息系统项目管理师英语单词
2024-06-02
Spring Boot+Mybatis集成H2数据库示例
2024-03-22
spirngboot对接Kafka示例
2024-03-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人