学习笔记

设计模式-结构型-装饰者模式

装饰者模式(wrapper):   允许向一个现有的对象添加新的功能,同时又不改变其结构。装饰器模式是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。 示例:英雄学习技能 复制代码 1 public class Program 2 { 3 private static void Main(string[] args) 4 { 5 //选择英雄 6 Hero hero = new BlindMonk(); ...

C# 打印PPT幻灯片

本文主要归纳总结了常见的几种PPT幻灯片文档打印的方法及需求。具体通过C#示例来分别阐述以下几种情况: 一、通过PresentationPrintDocument 对象来打印 使用默认打印机打印文档 使用虚拟打印机(Microsoft XPS Document Writer)打印 设置打印页码范围、份数和打印PPT时的显示名称 二、通过PrinterSettings 对象来设置打印选项并打印 指定幻灯片打印页面 设置打印方向 设置纸张页面打印的幻灯片数量 设置灰度打印 设置幻灯片加框打印 使用工具:Spire.Presentation for .NET ...

JavaScript 中call()、 apply()、 bind()改变this指向理解

   最近开发的过程中遇到了this指向问题,首先想到的是call()、apply()、bind()三个方法,有些时候这三个方法确实是十分重要,现在我们就把他们的使用方法及异同点讲解一下。...

理解setState

 近来在学习react源码, 最初是直接从入口一行一行的看, 结果跟着调用的函数跳转来跳去头都晕了. 后来决定带着一个目的去看源码, 每次看只研究一个东西. 一开始最想了解的就是充满魔性的setState. 本文是我对setState的一些理解, 不当之处欢迎留言指正....

.Net轻量状态机Stateless

  很多业务系统开发中,不可避免的会出现状态变化,通常采用的情形可能是使用工作流去完成,但是对于简单场景下,用工作流有点大财小用感觉,比如订单业务中,订单状态的变更,涉及到的状态量不是很多,即使通过简单的if-else也能足够使用,甚至是用上switch去减少if-else的使用,都是可以的,尽管这会丧失某些东西。为更好的优化整个流程,此时会考虑到使用状态模式来解决一些问题。...

Redis 的底层数据结构(字典)

字典相对于数组,链表来说,是一种较高层次的数据结构,像我们的汉语字典一样,可以通过拼音或偏旁唯一确定一个汉字,在程序里我们管每一个映射关系叫做一个键值对,很多个键值对放在一起就构成了我们的字典结构。 有很多高级的字典结构实现,例如我们 Java 中的 HashMap 底层实现,根据键的 Hash 值均匀的将键值对分散到数组中,并在遇到哈希冲突时,冲突的键值对通过单向链表串联,并在链表结构超过八个节点裂变成红黑树。 那么 redis 中是怎么实现的呢?我们一起来看一看。 一、字典结构定义 Redis 中的字典相关结构都定义在 dict.h 文件中,dict 表示一个字典结构: ...

生成式学习算法(四)之----朴素贝叶斯分类器

朴素贝叶斯分类器(算法)与朴素贝叶斯假设 在高斯判别分析模型(GDA)中,特征向量x 是连续实值向量。现在我们来讨论分量xj 取离散值的贝叶斯朴素贝叶斯模型。 在文本分类问题中,有一个问题是分出一个邮件是(y=1 )或者不是(y=1 )垃圾邮件。我们的训练数据集是一些标好是否是垃圾邮件的邮件。现在我们首先需要把每个邮件表示成特征向量的形式。 假设我们有一个固定长度的词表。这个词表不包括一些在每个文档中都出现的,高频的对判别垃圾邮件没有太大作用的停用词。然后对于每一个邮件。可以用一个长度为词表长度的0,1向量来表示。向量的分量$ x_j就表示这个词表中的第 j$项所代表的单词是否出现在这个邮件中,0表示没有出现,1表示出现。 ...

如何更规范化使用MySQL

 背景:一个平台或系统随着时间的推移和用户量的增多,数据库操作往往会变慢;而在Java应用开发中数据库更是尤为重要,绝大多数情况下数据库的性能决定了程序的性能,如若前期埋下的坑越多到后期数据库就会成为整个系统的瓶颈;因此,更规范化的使用MySQL在开发中是不可或缺的。...

【原创】(五)Linux内存管理zone_sizes_init

背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本:4.14 ARM64处理器,Contex-A53,双核 使用工具:Source Insight 3.5, Visio 1. 介绍 在(四)Linux内存模型之Sparse Memory Model中,我们分析了bootmem_init函数的上半部分,这次让我们来到下半部分吧,下半部分主要是围绕zone_sizes_init函数展开。 ...

C++ std::thread概念介绍

 C++ 11新标准中,正式的为该语言引入了多线程概念。新标准提供了一个线程库thread,通过创建一个thread对象来管理C++程序中的多线程。...

新版本SpringCloud sleuth整合zipkin

SpringCloud Sleuth 简介 Spring Cloud Sleuth为Spring Cloud实现了分布式跟踪解决方案。 Spring Cloud Sleuth借鉴了Dapper的术语。 Span:基本的工作单元。Span包括一个64位的唯一ID,一个64位trace码,描述信息,时间戳事件,key-value 注解(tags),span处理者的ID(通常为IP)。 Trace:一组Span形成的树形结构。 Annotation:用于及时记录存在的事件。常用的Annotation如下: ...
青岛软件培训

可能你正在寻找一家靠谱的IT培训机构,学习一些专业的软件开发技术,找一份得体的工作。恰巧我们就是一家踏踏实实做教育的IT人才培养机构,我们咨询电话是 0532-85025005,如果你确实对IT感兴趣,我们不妨交流一下。

申请免费试听课程