IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    love 0
    Nicksxs
    发表于
    2023-08-13 12:39:57

    springboot mappings 注册逻辑

    前面讲了怎么获取 mapping url,继续说下这些mappings 是怎么注册进去的,来看下这个RequestMappingHandlerMapping的继承关系 ...继续阅读 (149)


    love 0
    宋星
    发表于
    2023-08-13 11:36:41

    90%的企业在假用CDP

    【作者注】 CDP是Customer Data Platform(客户数据平台)的简称。我更宁愿称之为Consumer Data Platform(消费者数据平台)。它被广泛应用于消费者的数字化运营、数字广告投放,以及数字资产管理等多个场景 […] ...继续阅读 (168)


    love 0
    admin
    发表于
    2023-08-13 09:36:44

    吴恩达机器学习一站式学习系列(3)——机器学习涉及的数学知识

    机器学习中涉及大量的大学线性代数内容,虽然大学时候学习该课程也不知道为什么学习,但后知后觉才发现,任何一门课程真是“存在即合理”。矩阵矩阵是一个数学概念,它是一个由行和列组成的矩形排列的数表。每个单独的数字在矩阵中被称为元素。矩阵在许多领域中有广泛的应用,包括线性代数、统计学、物理学、工程学等。一个 m × n 的矩阵由 m 行和 n 列组成,如下所示:| a11 a12 a13 ... a1n | | a21 a22 a23 ... a2n | | a31 a32 a33 ... a3n | | ... ... ... ... ... | | am1 am2 am3 ... amn |其中,a_ij 表示位于第 i 行第 j 列的元素。矩阵在线性代数中有重要的作用,它们可以用于表示线性方程组、进行向量空间的变换、求解特征值和特征向量等。矩阵还在计算机图形学中用于表示变换、旋转和缩放操作。在数据分析和统计学中,矩阵用于表示数据集的关系和变换。除了普通的矩阵,还有一些特殊类型的矩阵,如方阵(行数等于列数)、对角矩阵(非对角元素均为零)、单位矩阵(对角元素均为1,其余元素为零)等。矩阵在数学和应用领域中扮演着重要的角矩阵的维数即行数×列数矩阵的运算运算规则加法对应元素相加若两个矩阵的维度不同,无法相加减法对应元素相减若两个矩阵的维度不同,无法相减 ...继续阅读 (167)


    love 0
    admin
    发表于
    2023-08-13 09:26:06

    吴恩达机器学习一站式学习系列(2)——单变量线性回归Linear Regression with One Variable

    模型概述单变量线性回归是机器学习中的一种简单线性回归方法,用于建立一个输入变量(自变量)与输出变量(因变量)之间的线性关系。它适用于只有一个自变量和一个因变量的情况。因为只含有一个特征/输入变量,因此这样的问题叫作单变量线性回归问题。训练单变量线性回归模型的目标是找到最佳的斜率 m 和截距 b,使得预测值与实际值之间的误差(通常使用均方误差)最小化。代价函数Cost Function代价函数(Cost Function)也被称为损失函数(Loss Function)或平方误差函数(Mean Squared Error,MSE)。代价函数用于衡量线性回归模型的预测值与实际值之间的误差,并且我们的目标是通过优化代价函数来找到最佳的模型参数。代价函数的一般形式是平方误差函数:MSE = (1/n) * Σ(yᵢ – ŷᵢ)²其中:n 是样本的数量,yᵢ 是第 i 个样本的实际输出值,ŷᵢ 是第 i 个样本的模型预测输出值。代价函数直观理解1代价函数直观理解2在训练过程中,我们使用梯度下降等优化算法来最小化代价函数。梯度下降算法通过计算代价函数的梯度(对参数的偏导数),来找到代价函数的最小值点,从而得到最佳的模型参数(斜率 m 和截距 b)。优化代价函数的过程是迭代的,模型会根据每一步的梯度更新参数,直到达到收敛条件或达到预定的迭代次数。梯度下降Gradient Descent ...继续阅读 (185)


    love 0
    admin
    发表于
    2023-08-13 09:10:35

    吴恩达机器学习一站式学习系列(1)——概述

    机器学习是一种人工智能(AI)的分支,它涉及开发一系列算法和技术,使计算机能够从数据中学习和提高性能,而无需明确编程。机器学习的目标是使计算机在面对新数据时能够做出准确的预测或决策。分类监督学习无监督学习英文Supervised LearningUnsupervised Learning数据标记需要有标记的训练数据(输入-输出对)无需有标记的训练数据目标预测输出/目标变量(目标已知)发现数据内在结构/模式(目标未知)任务分类、回归、序列预测等聚类、降维、关联规则挖掘等监督信息通过与目标变量的比较进行学习依赖于数据本身的特征和分布示例分类:垃圾邮件过滤、图像识别聚类:用户分群、图像分割应用领域机器学习中的主要类型数据挖掘、特征学习、无监督预训练等例子预测房价:给定房子特征,预测价格聚类新闻:将新闻按相关主题分组目标最小化预测误差最大化数据间的相似性/聚类紧凑性优点可以处理多类任务、有监督信息指导学习发现隐藏模式、自动学习特征表示缺点需要标记数据,对数据依赖较强无法直接获得精确目标,结果解释较困难该表格由chatgpt生成 ...继续阅读 (162)


    love 0
    admin
    发表于
    2023-08-13 09:01:43

    Azure Openai 服务文档一站式学习系列(5)——Embeddings嵌入/向量化

    概论定义嵌入是翻译后的词语,更贴切的翻译建议是“向量化”;将对象向量化,完成数值化的转换。Embedding 就是用一个数值向量“表示”一个对象(Object)的方法。“实体对象”可以是image、word等,“数值化表示”就是一个编码向量。例如对“颜色“这种实体对象用(R,G,B)这样一个三元素向量编码。在推荐系统中,其核心就是Embedding。为什么有Embeddings假如我们需要对以下文本进行数值化,就需要确定编码:字符pmsol编码12345那么,pmsolo的一维即 [1 2 3 4 5 4],将该编码转换成one hot encoding,就变成了[ [1 0 0 0 0 ] //p [0 1 0 0 0 ] //m [0 0 1 0 0 ] //s [0 0 0 1 0 ] //o [0 0 0 0 1 ] //l [0 0 0 1 0 ] //o ]经过这样的编码后,pmsolo就变成了一个二维的矩阵;由于其存在大量的为0的数字,所以一般称为稀疏矩阵。稀疏矩阵做矩阵计算的时候,只需要把1对应位置的数相乘求和即可,计算便捷快速。但其缺点是过于稀疏,会过渡占用资源。于是Enmeddings出现了。Enmeddings可用来升降维 ...继续阅读 (167)


    love 0
    ChenSoul
    发表于
    2023-08-13 09:00:00

    Java设计模式:API Gateway

    本文主要介绍 API Gateway 模式,在 Java Design Patterns 网站上有对该模式进行介绍。这里主要是做个笔记,并添加一些扩展,以加深对该设计模式的理解。 目的 API 网关设计模式旨在将所有对微服务的调用聚合到一起。客户端通过调用 API 网关来实现对多个微服务的访问,而不是直接调用每个微服务。这种模式的目的是解决以下问题: 减少客户端的网络请求:如果客户端直接调用每个微 … ...继续阅读 (106)


    love 0
    ChenSoul
    发表于
    2023-08-13 09:00:00

    Java设计模式:Arrange/Act/Assert

    本文主要介绍 Arrange/Act/Assert 模式,在 Java Design Patterns 网站上有对该模式进行介绍。这里主要是做个笔记,并添加一些扩展,以加深对该设计模式的理解。 介绍 Arrange/Act/Assert(安排/执行/断言)又称 Given/When/Then,是一种测试设计模式,用于组织和编写单元测试的结构。它提供了一种清晰的测试布局,使得测试代码易于理解和维护。 … ...继续阅读 (109)


    love 0
    Phodal Huang
    发表于
    2023-08-13 07:36:13

    LLM as Co-integrator:重塑团队间交互,持续改进信息对齐

    在五月份的 QCon 大会上,我们分享了《探索软件开发新工序:LLM 赋能研发效能提升》。在那次分享里,我们重点提及了团队并非所有的时间在 SDLC 上,可能只有 30%~50% 时间在开发软件上,甚至于有可能只有晚上才有时间写代码。所以,LLM 对于总结的提升是有限的,加之工具本身的缺乏,有可能导致带来的提升更有限。 ...继续阅读 (157)


    love 0
    admin
    发表于
    2023-08-13 06:51:32

    Azure Openai 服务文档一站式学习系列(4)——API调用私有数据的能力

    基于自有数据结合 Azure OpenAI,可以让GPT-35-Turbo 和 GPT-4无需训练或微调即可基于私有的数据运行聊天模型。主要优势:能够定制对话式 AI 的内容;模型有权访问并可引用特定源来支持其回复,因此答案不仅基于其预先训练的知识,还基于指定数据源中提供的最新信息。 这些基础数据还有助于模型避免过时或不正确的信息生成回复。主要特点:能够以增强模型输出的方式检索和利用数据;根据用户输入和提供的对话历史记录确定从指定数据源检索哪些数据;然后,作为提示重新提交到 OpenAI 模型,并将检索到的信息追加到原始提示中。数据处理自有数据的使用需要依赖Azure Cognitive Search来构建索引,以便根据用户输入或对话历史确定检索的内容。对于包含长文本的文档和数据集,应使用可用的数据准备脚本将数据引入认知搜索。 该脚本可将数据分块,以实现更准确的对服务的响应。 此脚本还支持扫描的 PDF 文件和图像,并使用文档智能引入数据。基于自有数据的 Azure OpenAI 支持以下文件类型:.txt.md.htmlMicrosoft Word 文件Microsoft PowerPoint 文件PDF如果有内部的知识库,完全可以基于此构建垂直领域的专有chat工具,且不需要进行微调或训练。 ...继续阅读 (189)


    love 0
    admin
    发表于
    2023-08-13 06:47:24

    Azure Openai 服务文档一站式学习系列(3)——OpenAI API的使用

    GPT-35-Turbo和GPT-4模型是专为会话优化过的语言模型,采用会话输入和消息输出方式交互。在Azure OpenAI中提供了两种类型接口:Chat Completion API(也有翻译称为 聊天补全API) :访问GPT-4唯一方式,兼容GPT-35-Turbo和GPT-4Completion API with Chat Markup Language (ChatML):仅支持GPT-35-Turbo作为产品经理,重点关注接口中需要的参数即可;代码实现还是交给专业的小伙伴来完成。下文主要以 Chat Completion API 为例进行说明。//请求 import os import openai openai.api_type = "azure" openai.api_version = "2023-05-15" openai.api_base = os.getenv("OPENAI_API_BASE") # Your Azure OpenAI resource's endpoint value. openai.api_key = os.getenv("OPENAI_API_KEY") response = openai.ChatCompletion.create( engine="gpt-35-turbo", # The deployment nam ...继续阅读 (167)


    love 0
    Wayne
    发表于
    2023-08-13 05:47:16

    创建自己的本地音乐库

    前言#关于音乐的前两篇文章分别提到了如何通过歌单批量下载无损音乐和如何快速地迁移自己喜欢的歌曲和歌单这样以来,我的音乐体验舒服了许多,但是最近听歌的时候,还是发现很多歌曲没了版权,一些歌曲由于一些原因更换了版本,虽然是同一个歌手的创作,但是却没有当初的味道了;再加上上次虽然下载了我喜欢的歌曲到本地,但是没有整理和集中管理,也没有歌词。于是我便下定决心创建自己的本地音乐库本文将介绍如何下载无损音乐、批量将音乐信息(包括歌词、封面、作者、流派等)导入歌曲中、集中化管理歌曲(多平台软件推荐)下载你喜欢的歌曲#在上一篇教程中已经十分详细地说明了如何批量下载自己在 qq 音乐等平台收藏的歌曲,详细可见这一篇文章如何下载 qq、网易云等平台的无损音乐当然,你也可以在庞大的互联网中寻找你喜欢的歌曲,善于使用搜索引擎能让你的搜索效率翻倍,可以看我的这篇文章来更好的利用搜索引擎搜到你想要的资源善用搜索引擎这里推荐一下我经常用来下载音乐的网站:HIFINI - 音乐磁场,这里所有的音乐都来自网友的分享,下载的音乐为一个压缩包,压缩包的音乐分为两种,一种是常见的 mp3 格式,一种是无损的 flac 格式,根据自己需求解压自己需要的格式即可。ps:在这里下载歌曲需要金币,金币十分便宜,几块钱就能下载几十首歌曲将歌曲信息导入到下载的歌曲#刚刚下载了自己喜欢的歌曲,在播放器上一播放,既没有歌词,有没有封面, ...继续阅读 (42)


    love 0
    vgbhfive
    发表于
    2023-08-13 03:52:25

    ML-决策树

    概要决策树(decision tree)是一种基本的分类和回归方法。其主要呈现为树状结构,在分类问题中,表示基于特征对实例进行分类的过程,可以被认为是if-then的规则集合,也可以被认为是定义在特征空间与类空间上的条件概率分布。其优点主要有分类速度快、模型具有可读性,在学习时利用训练数据根据损失函数最小化的原则建立决策树模型;而在预测时对新的数据利用决策树模型进行分类。决策树模型主要包含以下步骤:特征选择决策树的生成决策树的修剪决策树决策树模型分类决策树模型是一种描述对实例进行分类的树状结构。决策树有结点(node)和有向边(directed edge)组成,结点有两种类型:内部结点(internal node)和叶结点(leaf node),其中内部结点表示一个特征或属性,叶结点表示一个类。用决策树分类,首先从根结点开始对实例的某一个特征进行测试,根据测试结果将实例分配到其子结点上,每个子结点对应着一个特征的取值。如此递归地对实例进行测试和分配,直至到达叶结点,最后将实例分配到叶结点的分类中。分类过程if-then规则集合决策树可以看成是if-then规则的集合。将决策树转换为if-then规则的流程如下:由决策树的根结点到叶结点的每一条路径构建一个规则;路径上的内部结点的特征表示规则的条件,而叶结点的分类则对应的规则的结论。决策树上的路径或其对应的if-then规则集合具有一 ...继续阅读 (187)


    love 0
    白宦成
    发表于
    2023-08-13 03:48:01

    向世界告知你的价格

    我最近几年,每年都会更新一下自己的个人说明书,除了会更新一部分我近期关注的方向,很重要的便是更新一下我今年的报价。实际上,我每年的咨询报价都是会有所调整的,会根据当时的市场情况、我自己在对应可接受咨询的领域的理解层次,来确认我今年的报价如何。而坚持这么做,最核心的原因是 ——向世界告知我的价格。我们华人最大的好处是谦逊,但最大的坏处也是谦逊。我们心中没有“配得感”,我们往往觉得自己“不配”这么干。所以很多时候,我们不会选择向别人说”我可以“,而是更多的说”我不行“。但是,谦逊会让需要我们的人不知道如何向我们寻求帮助。以及,也会让需要你的人不知道如何和你合作。交易是谈判的艺术,很多时候,大家不是怕你有价格,而是怕你没有价格。因为有价格,无非是和你沟通谈判,谈一个合适的价格。但如果你没有价格,那别人又怎么知道你的预期是多少呢,无从下手,从而无法开始一场交易。就像常说大家去相亲市场上相亲,有条件要求的其实好找对象,找符合条件的就好了;怕的是哪些说自己没条件要求的,往往是有很多隐含条件。大部分时候,大家怕的是没条件背后的那一堆条件。当你有了一个属于你的价格之后,后续就是当别人有需要找你的时候,看看你的价格,是否可以接受,如果可以接受,那么继续你们的交易。 ...继续阅读 (141)


    love 0
    admin
    发表于
    2023-08-13 01:57:56

    Azure Openai 服务文档系列(2)——Prompt工程和技巧

    上文中对模型基础概念有基本的描述,传送门最近的GPT-3.5 和 GPT-4 等模型基于提示词使用,通过输入文本提示与模型进行交互,文本提示通过文本补全进行相应。模型对提示词非常敏感,提示词的构建变得很重要;其有点玄学,而非科学,通常需要根据经验或实验来完成提示词的创建。值得注意的一点,提示词并非适用于所有的模型,即使在某模型验证比较成熟的提示词换一个模型后依然需要重头再来,但提示词构建的架构、方法和提问技巧可能是可以复用的。熟读唐诗三百首 不会作诗也会吟对于prompt最好的学习方式是多看、多试;下面更多是方法论或经验,想要掌握prompt,需要 “知行合一”“世上练”王阳明提示词构成以下构成并非全部每次都需要,任意一项其实也可以得到chatgpt的结果输出。指令Instructions主要内容content示例Examples指示Cue支撑信息Supporting content指令指向模型说明要执行的操作,可以很简单也可以很复杂。主要内容是指模型正在处理或转换的某种文本。 主要内容通常与指令一起使用,比如指令要求都某内容进行翻译或内容概要提取。在常见的prompt建议中,一般均将内容进行间隔包裹,如使用 “””内容””” 或 【内容】。即“one-shot”或“few-shot”,给予一个例子将有助于模型 ...继续阅读 (169)


    love 0
    Winson
    发表于
    2023-08-13 01:48:40

    How to do Unit Testing for the Core Api Project with Repository

    This is post 8 of 8 in the series“Create a website with ASP.NET Core and Angular”In this series, I will show you how to create the web API with .Net core and communicate with Angular in frontend, and I will keep to update it!How to setup VS Code environment for ASP.NET Core ProjectUse code first to connect database in .Net Core APIUse the Repository pattern in .Net coreCreate .Net Core Api controller for CRUD with repositoryUse the Serilog in .Net CoreCreate Angular Project and Communicate with .Net CoreCreate Paging Data from .Net Core ApiHow to do Unit Testing for the Core Api Pr ...继续阅读 (167)


    love 0
    admin
    发表于
    2023-08-13 01:38:48

    Azure Openai 服务文档系列(1)——基础概念

    最近业务和个人工作中,逐步开始试用chatpgt等来完成部分文档的输出,也借着这个机会对于Azure Openai的服务文档进行学习和总结。接下来以系列的方式,逐步完成对该服务文档的学习笔记输出;Azure Openai基本上和OpenAI官方服务文档一致,两者学习其一即可。Azure OpenAI 服务提供对 OpenAI 强大语言模型的 REST API 访问,这些模型包括 GPT-4、GPT-35-Turbo 和嵌入模型系列。 Azure OpenAI的使用需要进行申请,申请入口点这里;其与直接调用OpenAI能力基本一致。模型MODELSDESCRIPTIONGPT-4一组改进GPT-3.5的模型,可以理解和生成自然语言或代码GPT-3.5一组改进GPT-3的模型,可以理解和生成自然语言或代码DALL·E可以在自然语言提示时生成和编辑图像的模型Whisper一个可以将音频转换为文本的模型Embeddings一组可以将文本转换为数字形式的模型Moderation一个微调的模型,可以检测文本是否敏感或不安全*截止2023年7月数据Token令牌OpenAI 通过将文本分解为标记来处理文本。 标记可以是单词,也可以是字符块。给定请求中处理的标记总数取决于输入、输出和请求参数的长度; 处理的标记数量也会影响模型的响应延迟和吞吐量。作为一个粗略的经验法则,1个令牌对于英语文本来说大约 ...继续阅读 (168)


    love 0
    谭光志
    发表于
    2023-08-13 00:32:35

    从零开始实现一个玩具版浏览器渲染引擎

    前言浏览器渲染原理作为前端必须要了解的知识点之一,在面试中经常会被问到。在一些前端书籍或者培训课程里也会经常被提及,比如 MDN 文档中就有渲染原理的相关描述。作为一名工作多年的前端,我对于渲染原理自然也是了解的,但是对于它的理解只停留在理论知识层面。所以我决定自己动手实现一个玩具版的渲染引擎。渲染引擎是浏览器的一部分,它负责将网页内容(HTML、CSS、JavaScript 等)转化为用户可阅读、观看、听到的形式。但是要独自实现一个完整的渲染引擎工作量实在太大了,而且也很困难。于是我决定退一步,打算实现一个玩具版的渲染引擎。刚好 Github 上有一个开源的用 Rust 写的玩具版渲染引擎robinson,于是决定模仿其源码自己用 JavaScript 实现一遍,并且也在 Github 上开源了从零开始实现一个玩具版浏览器渲染引擎。这个玩具版的渲染引擎一共分为五个阶段:分别是:解析 HTML,生成 DOM 树解析 CSS,生成 CSS 规则集合生成 Style 树生成布局树绘制每个阶段的代码我在仓库上都用一个分支来表示。由于直接看整个渲染引擎的代码可能会比较困难,所以我建议大家从第一个分支开始进行学习,从易到难,这样学习效果更好。现在我们先看一下如何编写一个 HTML 解析器。HTML 解析器HTML 解析器的作用就是将一连串的 HTML 文本解析为 DOM 树。比如将这样的 H ...继续阅读 (131)


    love 0
    询盘云-贾定强
    发表于
    2023-08-13 00:00:00

    越南外贸软件推荐:哪些软件最受欢迎?

    越南是一个外贸大国,许多企业都在寻找可靠的外贸软件来帮助他们更好地管理业务。那么,越南用什么外贸软件好呢?在这篇文章中,我们将探讨越南外贸软件的几个最受欢迎的选择,以帮助您找到最适合您的软件。1. TradeManagerTradeManager是阿里巴巴的一款免费软件,可为越南企业提供即时通讯、在线交易和订单管理等功能。它是越南外贸行业中最受欢迎的软件之一,因为它可以帮助企业更好地与国际买家沟通,并更有效地管理订单。2. SkypeSkype是一款免费的视频通话和即时通讯软件,它是越南外贸行业中最受欢迎的软件之一。它可以帮助越南企业与国际买家更好地沟通,提高效率。此外,Skype还提供语音邮件、文件共享和屏幕共享等功能,使越南企业更方便地管理业务。3. WhatsAppWhatsApp是一款免费的即时通讯软件,它是越南外贸行业中最受欢迎的软件之一。它可以帮助越南企业与国际买家更好地沟通,提高效率。此外,WhatsApp还提供语音邮件、文件共享和屏幕共享等功能,使越南企业更方便地管理业务。总结以上就是越南外贸软件的三个最受欢迎的选择。当然,还有其他的选择,如Global Sources、Made-in-China等,您可以根据自己的需要选择适合自己的软件。如果您有任何问题或需要进一步的帮助,请随时与我们联系。我们将尽最大努力为您提供帮助。The post越南外贸软件推荐:哪些软件最 ...继续阅读 (133)


    love 0
    Moon will know
    发表于
    2023-08-13 00:00:00

    更喜欢原始的地方

    去过杭州周边很多古镇,有些古镇只是当地人的居所,有了岁月的痕迹之后,人们为了领悟其中的古意所加的名字。古镇中人们生活居住并无二样,只是多了些景点入驻的乌篷船和贩卖土产的商户。这样的古镇其实是我所喜爱的,比起那种原地拔起的旅游景点,流露的自然之美和生活气息已经超越了古或不古的议题。 ...继续阅读 (63)


    love 0
    Yiran\'s Blog
    发表于
    2023-08-13 00:00:00

    Weekly Issue 2023-08-13

    文章 链接到标题 技术 链接到标题 不秃也变强:让 AI 当大师傅,编程和写作效率提升两三倍 | 歌词经理 每当觉得 [[copilot]] 不行的时候,就去写一写单元测试,会感激他的。 最近非常喜欢用 [[ChatGPT]] 问一些 vs 问题,这个是在使用 [[Google]] 搜索时,一直使用的,当要了解一个东西 A 时,我通常看完这个东西自身的基本信息和文档之后,就去搜索 A vs,会看到很多同类的产品和对比,然后一篇一篇的看。现在有了 [[ChatGPT]] 之后,都是直接问:A 和 B 相比,有什么差别,各自有什么优缺点,在什么场景下推荐使用 A?,方便了许多。 HashiCorp adopts Business Source License [[hashicorp]] 决定将[[开源]] [[License]] 从Mozilla Public License v2.0 (MPL 2.0)切换到Business Source License (BSL) v1.1。 [[Pulumi]] 是可以直接使用 [[terraform]] provider 的,这些会收到影响么? [[Pulumi]] CEO 说他们尝试贡献给[[terraform]] ,但是 [[hashicorp]] 不接受这些提交,只能 fork 单独维护。同时 [[Spacelift]] 联合创始人保证用 ...继续阅读 (155)


    love 0
    10k
    发表于
    2023-08-13 00:00:00

    设计模式之美-课程笔记27-原型模式

    原型模式:如何最快速地clone一个HashMap散列表?原型模式针对创建成本比较大的对象,利用已有对象进行复制的方式进行创建,以达到节省创建时间的目的。原理与应用如果对象的创建成本比较大,而同一个类不同对象之间的差别不大(大部分字段相同),在这种情况下,我们可以利用已有对象(原型)进行复制(或者叫拷贝)的方式来创建新对象,以达到节省创建时间的目的。什么时候“对象的创建成本比较大”?普通的对象创建是申请内存、成员变量赋值,本身不会花费太多时间。我们指的是:对象中的数据需要复杂的计算(排序、计算哈希),或者需要从RPC、网络、数据库、文件系统等非常慢速的IO中读取。一个例子:假设数据库中存储了大约 10 万条“搜索关键词”信息,每条信息包含关键词、关键词被搜索的次数、信息最近被更新的时间等。系统 A 在启动的时候会加载这份数据到内存中,用于处理某些其他的业务需求。为了方便快速地查找某个关键词对应的信息,我们给关键词建立一个散列表索引。如果你熟悉的是 Java 语言,可以直接使用语言中提供的 HashMap 容器来实现。其中,HashMap 的 key 为搜索关键词,value 为关键词详细信息(比如搜索次数)。我们只需要将数据从数据库中读取出来,放入 HashMap 就可以了。不过,我们还有另外一个系统 B,专门用来分析搜索日志,定期(比如间隔 10 分钟)批量地更新数据库中的数据, ...继续阅读 (52)


    love 0
    10k
    发表于
    2023-08-13 00:00:00

    设计模式之美-课程笔记26-建造者模式

    建造者模式:详解构造函数、set方法、建造者模式三种对象创建方式为什么需要建造者模式一般情况下,我们可以通过构造函数来创建一个对象后初始化,也能通过set方法手动赋值。我的一个思路是,如果参数过多,写在构造函数中,必须要保证正确的顺序,会比较麻烦。看个例子:我们需要定义一个资源池配置类ResourcePoolConfig,这里的资源池可以理解为线程池、连接池、对象池等。他有几个成员变量:普通情况下或者没学习构造者模式之前,这就是一个普通的类的实现:publicclassResourcePoolConfig{privatestaticfinalintDEFAULT_MAX_TOTAL=8;privatestaticfinalintDEFAULT_MAX_IDLE=8;privatestaticfinalintDEFAULT_MIN_IDLE=0;privateString name;privateintmaxTotal=DEFAULT_MAX_TOTAL;privateintmaxIdle=DEFAULT_MAX_IDLE;privateintminIdle=DEFAULT_MIN_IDLE;publicResourcePoolConfig(String name, Integer maxTotal, Integer maxIdle, Integer minIdle) {if(Str ...继续阅读 (34)


    love 0
    YY.K
    发表于
    2023-08-12 23:49:55

    caddy1服务启动报错问题

    纯粹口水一下caddy1遇上的启动报错问题.报错内容如下Process: 472999 ExecStart=/usr/bin/caddy -conf /etc/caddy/caddy.conf -root /tmp -agree (code=exited, status=1/FAILURE) Main PID: 472999 (code=exited, status=1/FAILURE) CPU: 26ms Aug 12 11:48:36 klayer systemd[1]: Starting Caddy HTTP/2 web server... Aug 12 11:48:36 klayer caddy[472992]: Caddyfile is valid Aug 12 11:48:36 klayer systemd[1]: Started Caddy HTTP/2 web server. Aug 12 11:48:36 klayer caddy[472999]: Activating privacy features... 2023/08/12 11:48:36 failed storage check: open /var/lib/caddy/rw_test_1203782840230465039> Aug 12 11:48:36 klayer sys ...继续阅读 (241)


    love 0
    leftfist
    发表于
    2023-08-12 22:49:29

    项目管理师基础之项目管理计划和项目文件

    项目管理过程中,会使用并产生两大类文件:项目管理计划和项目文件。内容一般如下:整个项目生命周期需要收集、分析和转化大量的数据。从各个过程收集项目数据,并在项目团队内共享。在各个过程中所收集的数据经过结合相关背景的分析、汇总,并加工成项目信息。信息通过口头形式进行传达,或以各种格式的报告存储和分发。关于这一主题的更多信息,请参见 4.3 节。 ...继续阅读 (210)


    love 0
    oscar999
    发表于
    2023-08-12 21:49:54

    Java实现对称加密(DES,AES)快速入门示例

    对称加密是使用相同的密码进行加密和解密, 对称加密实现简单,安全性相比非对称加密较弱, 常用的对称加密算法有 DES,AES以及PDE等,关于对称加密相关概念参考: [对称加密、非对称加密深度解析] 本篇介绍Java的DES和AES的加密和解密, 关于PDE算法的加解密实现, 可以参考: ...继续阅读 (200)


    love 0
    惜分飞
    发表于
    2023-08-12 16:14:55

    Patch SCN一键解决ORA-600 2662故障

    联系:手机/微信(+86 17813235971) QQ(107644445)标题:Patch SCN一键解决ORA-600 2662故障作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]客户强制重启库之后,数据库启动报ORA-600 2037,ORA-745 kcbs_reset_pool/kcbzre1等错误Wed Aug 09 13:25:38 2023 alter database mount exclusive Successful mount of redo thread 1, with mount id 1672229586 Database mounted in Exclusive Mode Lost write protection disabled Completed: alter database mount exclusive alter database open Beginning crash recovery of 1 threads parallel recovery started with 15 processes Started redo scan Completed redo scan read 84074 KB redo, 37037 data blocks need recovery We ...继续阅读 (238)


    love 0
    惜分飞
    发表于
    2023-08-12 16:14:55

    Patch SCN一键解决ORA-600 2662故障

    联系:手机/微信(+86 17813235971) QQ(107644445)标题:Patch SCN一键解决ORA-600 2662故障作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]客户强制重启库之后,数据库启动报ORA-600 2037,ORA-745 kcbs_reset_pool/kcbzre1等错误Wed Aug 09 13:25:38 2023 alter database mount exclusive Successful mount of redo thread 1, with mount id 1672229586 Database mounted in Exclusive Mode Lost write protection disabled Completed: alter database mount exclusive alter database open Beginning crash recovery of 1 threads parallel recovery started with 15 processes Started redo scan Completed redo scan read 84074 KB redo, 37037 data blocks need recovery We ...继续阅读 (152)


    love 0
    惜分飞
    发表于
    2023-08-12 14:28:25

    amdu参数详解

    联系:手机/微信(+86 17813235971) QQ(107644445)标题:amdu参数详解作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]最近发现amdu命令比以前认知中的强大,记录下相关参数[oracle@xifenfei ~]$ amdu help=y a/usize AU size for corrupt disks -ausize: This option must be set when -baddisks is set. It must be a power of 2. This size is required to scan a disk looking for metadata, and it is normally read from the disk header. The value applies to all disks that do not have a valid header. The value from the disk header will be used if a valid header is found. ba/ddisks Include disks with bad headers -b ...继续阅读 (216)


    love 0
    惜分飞
    发表于
    2023-08-12 14:28:25

    amdu参数详解

    联系:手机/微信(+86 17813235971) QQ(107644445)标题:amdu参数详解作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]最近发现amdu命令比以前认知中的强大,记录下相关参数[oracle@xifenfei ~]$ amdu help=y a/usize AU size for corrupt disks -ausize: This option must be set when -baddisks is set. It must be a power of 2. This size is required to scan a disk looking for metadata, and it is normally read from the disk header. The value applies to all disks that do not have a valid header. The value from the disk header will be used if a valid header is found. ba/ddisks Include disks with bad headers -b ...继续阅读 (183)

上一页 548/4404 下一页
沪ICP备19023445号-2号
友情链接