dizi9750的博客

私信 关注
dizi9750
码龄5年
  • 39,393
    被访问量
  • 暂无
    原创文章
  • 400,238
    作者排名
  • 2
    粉丝数量
  • 于 2016-03-27 加入CSDN
获得成就
  • 获得6次点赞
  • 内容获得0次评论
  • 获得24次收藏
荣誉勋章
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

C++拾忆

1、引用1、建立引用的时候,必须初始化,引用一旦初始化,就和一个对象绑定,不能再修改为其他对象的引用2、对引用取地址,和对原始对象取地址,是同一个地址3、不能用做引用的:void、数组2、内联函数1、内联函数不能包含复杂的结构控制语句,如switch和while。如果包含了,将被视为普通函数。2、递归函数不能作为内联函数3、内联VS宏 宏不检查类型,这...
转载
45阅读
0评论
0点赞
发布博客于 2 年前

算法拾忆

参考课程:https://mooc.study.163.com/course/1000002012?_trace_c_p_k2_=71acf89eff5548528d3ffa68b0912f8f#/infohttps://mooc.study.163.com/course/1000005000?_trace_c_p_k2_=60f72128fe6348b7ae19623592d4...
转载
44阅读
0评论
0点赞
发布博客于 2 年前

Copy-On-Write技术

通俗的解释,假定多方需要使用同一个资源时,没有必要为每一方都创建该资源的一个完整的副本,反而令多方共享这个资源,当某方需要修改资源的某处时,利用引用计数,把该处复制一个副本,再把跟新的内容写入该副本中,从而节省创建多个完整副本时带来的空间和时间上的开销。说白了,就是把一块数据拷贝出来修改,然后修改完了再覆盖回去。好处:1、无中间状态,防止断电等,2、易于处理并发,3、修改时可以...
转载
194阅读
0评论
0点赞
发布博客于 2 年前

Google大数据三大论文

简介:https://blog.csdn.net/w1573007/article/details/52966742论文中英文版下载http://pan.baidu.com/s/1slUy4sl经典论文翻译导读之《Google File System》GFS(2003)https://blog.csdn.net/qq_38122518/arti...
转载
728阅读
0评论
0点赞
发布博客于 2 年前

Log Structured Merge Trees (LSM)

1 概念LSM = Log Structured Merge Trees来源于google的bigtable论文。2 解决问题传统的数据库如MySql采用B+树存放数据,B+树是一个随机读写的数据结构。 我们知道,顺序读写要比随机读写快无数倍,所以需要把数据结构改成顺序读写。3 应用场景LSM是当前被用在许多产品的文件结构...
转载
75阅读
0评论
0点赞
发布博客于 2 年前

布隆过滤器:高效、大概的判断数据是否存在

1 什么是布隆过滤器本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”,或者说“判断一个元素是否存在一个集合中”,比如:字处理软件中,需要检查一个英语单词是否拼写正确在 FBI,一个嫌疑人的名字是否已经在嫌疑名单上在网...
转载
220阅读
0评论
0点赞
发布博客于 2 年前

需求分析的方法与实践

1 需求分析的重要性需求缺陷发现越晚成本越高2 需求的分类2.1 功能性需求输入、输出、异常2.2 非功能性需求用户关心的质量属性:性能、规格、可靠性、易用性..开发运维关注的质量属性:可维护性、可移植性、可重用性、可测试性…2.3 约束协议、标准、规范、语言、资源限制、运行环境。。。3...
转载
36阅读
0评论
0点赞
发布博客于 2 年前

系统架构分析与设计方法论

1 什么是架构三要素:1、 构件2、 构件之间的关系3、 构件与环境之间的关系2 软件架构原则2.1 全面解耦原则对业务进行抽象建模,业务数据与业务逻辑解耦,软件和硬件解耦,平台和产品解耦,系统各部件间解耦什么是系统的耦合性耦合性(Coupling),也叫耦合度,是对系统模块间依赖...
转载
80阅读
0评论
0点赞
发布博客于 2 年前

装修-2

1 装修告示https://home.19lou.com/forum-72-thread-147781417073966285-1-1.html2 主体拆改2.1 敲墙审批可找代办。120https://home.19lou.com/forum-72-thread-147731417072410800-1-1.html2.2...
转载
430阅读
0评论
0点赞
发布博客于 2 年前

装修-3

1 主体安装2 软装保洁开荒保洁主要是的工作就是整理建筑垃圾、擦玻璃、擦表面的灰尘、地面清洁等。100方大约500块3卫生间3.1暗卫3.1.1开窗、如果外墙体允许砸的情况,那直接就砸个窗户出来,不过,一般情况下都是不允许改动外墙,所以,这个可不可行需要去问物业才能拍板;...
转载
161阅读
0评论
0点赞
发布博客于 2 年前

装修-1

1 宗旨预算表,图不贴了,网上下个样房要多看,原则要坚持插座要多装,家具要外买积极沟通,让师傅明白意图。2 装修总流程2.1 原则谁脏谁先上,调度决定速度2.2 装修顺序1 办理开工手续——2自行测量——3前期设计——4主体拆改——5地板厂家测量——6门厂测量——8橱柜第一次测量——(卫生...
转载
38阅读
0评论
0点赞
发布博客于 2 年前

daikuan

圣都:杭州联合银行装修贷款额度100万,1、按月分期,等额本金  10年期0.333%/月,10W块贷款每月还1166  5年期 0.297%/月,10W块贷款每月还19642、循环贷款,0.5075%/月 10W贷款每月还5075钱江日报弄房子中国银行装修贷款最高30W,最多5年等额本息每月0.242%10万5年每月还1908...
转载
23阅读
0评论
0点赞
发布博客于 2 年前

JAVA容器全面总结

1 容器体系图简图: 详图:2基础2.1Iterator接口迭代器。具有的能力:后向迭代、删除。2.2Iterable接口表示一个类具有迭代能力。提供能力:通过iterator()方法,返回iterator。2.3Collection接口...
转载
37阅读
0评论
0点赞
发布博客于 2 年前

Web通信协议:OSI、TCP、UDP、Socket、HTTP、HTTPS、TLS、SSL、WebSocket、Stomp

1 各层的位置1.1 OSI七层模型全景图OSI是Open System Interconnect的缩写,意为开放式系统互联。1.2 五层网络协议在七层的基础上,删除了说不清楚的会话层和表示层,合并到了应用层。1.3 TCP/IP四层参考模型不关心底层,在五层的基础上,去掉了物理层。...
转载
73阅读
0评论
0点赞
发布博客于 2 年前

【如何阅读一本书】略读。

1、阅读的种类阅读分两种:1、第一种意义是我们自己在阅读报纸、杂志,或其他的东西时,凭我们的阅读技巧与聪明才智,一下子便能融会贯通了。这样的读物能增加我们‘的资讯,却不能增进我们的理解力,因为在开始阅读之前,我们的理解力就已经与他们完全相当了。否则,我们一路读下来早就应该被困住或吓住了—这是说如果我们够诚实、够敏感的话。2、第二种意义是一个人试着读某样他一开始并不怎么了解...
转载
67阅读
0评论
0点赞
发布博客于 2 年前

【代码整洁之道】读书笔记

1、整洁代码1.1、Why:学习整洁代码的目的软件质量 = 架构质量 + 项目管理 + 代码质量。代码质量与代码整洁成功成正比。 干净的代码,质量较为可靠,也为后期维护升级奠定了良好的基础。1.2、What:什么是整洁代码各家之言不尽相同,但总结下来,有如下方面:优雅、高效、易读、易改、逻辑直接了当、减少依赖关系、走心。读到简洁代码的感觉是:原该如此。简洁...
转载
37阅读
0评论
0点赞
发布博客于 2 年前

Java代理全攻略【有瑕疵:字节码生成部分没看到,最后两节没仔细看,累了】...

Java代理1、代理模式定义:给某个对象提供一个代理对象,并由代理对象控制对于原对象的访问,即客户不直接操控原对象,而是通过代理对象间接地操控原对象。其实就是委托、聚合、中间人。为了保持行为的一致性,代理类和委托类通常会实现相同的接口,所以在访问者看来两者没有丝毫的区别。代理模式UML图:好处:优点一:可以隐藏委托类的实现;优点二:可以实现客户与委...
转载
29阅读
0评论
0点赞
发布博客于 2 年前

发烧

一、什么是发烧人体的下丘脑有一个体温调节中枢,作用就像空调机的温度设定。正常时婴幼儿设定的温度比成人稍高,婴幼儿肛温大约在摄氏37.5℃,上下变动1℃左右。成人和较大儿童口温大约36.8℃,上下变动0.5℃。例如人体感染病原体后,引起白血球反应,产生“致热原”,就会刺激下丘脑的体温调节中枢,使设定温度提高。当设定温度被调到39℃时,人体增加肌肉收缩产热,或者减少出汗散热,将体温...
转载
20阅读
0评论
0点赞
发布博客于 2 年前

【重构.改善既有代码的设计】14、总结&读后感

14、总结首先,这是一本太老的书,很多观点已经被固化或者过时了。但核心观点没有问题,虽然大多数观点已经被认为是理所当然的事情了。重构的定义重构分几种:1、狭义的代码重构  就是本书讲的,在不改变软件可观察行为的前提下,改变其内部结构。这就是完全不改变程序的功能,只是改变代码的组织方式,也就是只是整理代码而已,目的是优化代码架构,而不是优化行为、算法、逻辑...
转载
42阅读
0评论
0点赞
发布博客于 2 年前

【重构.改善既有代码的设计】13、重构,复用与现实

13、重构,复用与现实为什么开发者不愿意重构他们的程序?重构的好处是显而易见的,但这只是开发者的梦想,那么让梦想进入现实:为什么还不肯重构你的程序呢?有几个可能的原因:1. 你不知道如何重构。2. 如果这些利益是长远(才展现)的,何必现在付出这些努力呢?长远看来,说不定当项目收获这些利益时,你已经不在职位上了。3. 代码重构是一项额外工作,老板付钱给你,...
转载
36阅读
0评论
0点赞
发布博客于 2 年前

【重构.改善既有代码的设计】12、大型重构

12、大型重构这是一个庞大的工程,可能需要几个月。在这个过程中,你应该根据需要安排自己的工作,只在需要添加新功能或修补错误 时才进行重构。你不必一开始就完成整个系统的重构;重构程度只要能满足其他任务的需要就行了。反正明天你还可以回来重构。进行大规模重构时,有必要为整个开发团队建立共识;这是小型重构所不需要的。大型重构为许许多多的修改指定了方向。整个团队都必须...
转载
26阅读
0评论
0点赞
发布博客于 2 年前

【重构.改善既有代码的设计】5、重构名录

5、重构名录寻找引用点本书成书较早,所以也写了如何判断元素是否被使用,但现在的IDE已经足够强大,这部分已经没有意义。这些重构准则有多成熟重构的基本技巧——小步前进、频繁测试——已经得到多年的实践检验。关于这些重构手法,另一个需要记住的就是:我是在「单进程」(single-procerss)软件这一大前提下考虑并介绍它们的。我很希望看到有人介绍用于并发式(...
转载
34阅读
0评论
0点赞
发布博客于 2 年前

【重构.改善既有代码的设计】4、构筑测试体系

4、构筑测试体系本书成书较早,所以用大量的篇幅写了测试的重要性,但随着TDD等理论的普及,现在这已经是理所当然的事情了。所以这里只简单记录几件事1、重构的前提是可测试。2、要不停的测试,小步快跑。3、隔离重构和特性开发转载于:https://www.cnblogs.com/aoyihuashao/p/10388597.html...
转载
33阅读
0评论
0点赞
发布博客于 2 年前

【重构.改善既有代码的设计】3、代码的坏味道

3、代码的坏味道由于好多都太简单了,而且后面讲重构方法的时候,还会讲到,这里就只列名字了。Duplicated Code(重复的代码)Long Method(过长函数)Large Class(过大类)Long Parameter List(过长参数列)Divergent Change(发散式变化)不同的原因导致同一个类发生变化。...
转载
33阅读
0评论
0点赞
发布博客于 2 年前

【重构.改善既有代码的设计】2、重构原则

2、重构原则这章其实和前言很多是相辅相成的,可以合并为一章,但我不暂时不想这么做了,等后面复习的时候再做吧。重构的目的1、提高理解性程序主要是给人看的,而不是给机器看的。2、降低修改成本程序的维护时间比开发时间要长的多。3、重构不会改变软件可观察的行为也就是说,重构不改变对外接口,及软件的功能。那么重构是单纯的整理代码吗?答案是:是的。当然这是单纯的重构。...
转载
33阅读
0评论
0点赞
发布博客于 2 年前

【重构.改善既有代码的设计】1、前言

1、前言重构的定义重构是在不改变软件可观察行为的前提下,改变其内部结构。这个动作,就是动词的重构,这个工作,就是名词的重构。重构是一种经千锤百炼形成的有条不紊的程序整理方法们可以最大限度的减少整理过程中引入错误的几率。本质上说,重构是代码写好后改进他的设计。最纯粹的重构,是不需要了解软件行为的,只是一个代码组织上的优化行为。但事实上,我们一般很少会去做纯粹的重构...
转载
41阅读
0评论
0点赞
发布博客于 2 年前

【重构.改善既有代码的设计】11、处理概括关系【更优雅的继承】

11、处理概括关系【更优雅的继承】Pull Up Field(值域上移)两个subclasses 拥有相同的值域。将此一值域移至superclass。Pull Up Method(函数上移)有些函数,在各个subclass 中产生完全相同的结果。将该函数移至superclass。Pull Up Constructor Body(构造函数本...
转载
29阅读
0评论
0点赞
发布博客于 2 年前

【重构.改善既有代码的设计】10、使接口变得更简洁易用

10、使接口变得更简洁易用Rename Method(重新命名函数)就是重命名而已。Add Parameter(添加参数)就是给函数添加一个参数。但这个并不推荐,除非非得加一个参数,如果可以用其他方式,优先用其他方式。Remove Parameter(移除参数)如果一个参数没用,请移除。除非是多态的其...
转载
30阅读
0评论
0点赞
发布博客于 2 年前

【重构.改善既有代码的设计】9、简化条件表达式

简化条件表达式Decompose Conditional(分解条件式)你有一个复杂的条件(if-then-else)语句。 从if、then、else 三个段落中分别提炼出独立函数。分解为多个独立函数,根据每个小块代码的用 途,为分解而得的新函数命名,并将原函数中对应的代码替换成「对新建函数的调用」,从而更清楚地表达自己的意图。对于条件逻辑,[将每个分支条件分解,形成...
转载
27阅读
0评论
0点赞
发布博客于 2 年前

【重构.改善既有代码的设计】8、重新组织数据(更优雅的封装)

重新组织数据Self Encapsulate Field(自封装值域)自封装值域 就是 getter and setter,这就没啥好说的了。Replace Data Value with Object(以对象取代数据值)比如:不用字符串表示电话号码,而用一个电话号码的类表示。好处:更容易扩展,比如:以后需要一个函数来提取号码中的区号时,就可以直接写在这个类里面了...
转载
33阅读
0评论
0点赞
发布博客于 2 年前

【重构.改善既有代码的设计】7、在对象之间搬移特性(如何优化类)

7、在对象之间搬移特性Move Method(搬移函数)描述:有个函数与其所驻class之外的另一个class进行更多交流:调用后者,或被后者调用。在该函数最常引用(指涉)的class中建立一个有着类似行为的新函数。将旧函数变成一个单纯的委托函数(delegating method),或是将旧函数完全移除。原因:高耦合。依赖情节。注意:1、在迁移的时候,要考虑函数用到...
转载
34阅读
0评论
0点赞
发布博客于 2 年前

【重构.改善既有代码的设计】6、重新组织你的函数(如何优化一个长函数)...

6、重新组织你的函数目的:处理 Long Methods(过长函数)。6.1 提炼函数(Extract Method)描述:你有㆒段代码可以被组织在㆒起并独立出来。将这段代码放进一个独立函数中,并让函数名称解释该函数的用途。判断:看见㆒ 个过长的函数或者㆒ 段需要注释才能让人理解用途的代码原因:1、小函数被复用的机会更大。2、每个小函数的名称都准确描述其功能,使大函数...
转载
31阅读
0评论
0点赞
发布博客于 2 年前

【深入理解JAVA虚拟机】读后感

收获颇多的一本书,非常值得细细品味。1、所谓万变不离其宗,此书便是宗。读过此书后,发现以前看过的网上好多五花八门的文章,都是源自此书。2、举一反三。此书中讲到的jvm用到的各种思想,在工作中其实经常用到,在C++及各种公共组件中也经常看到,在此处系统的看到系统的归纳,还是会对理解多有帮助。3、所谓思而不学则殆,其实,做而不学也怠了。这些年,写了很多代码,做了很多项目,却...
转载
47阅读
0评论
0点赞
发布博客于 2 年前

【深入理解JAVA虚拟机】第5部分.高效并发.2.线程安全和锁优化

1 概述对于这部分的主题“高效并发”来讲,首先需要保证并发的正确性,然后在此基础上实现高效。2 线程安全《Java Concurrency In Practice》 的作者Brian Goetz对“线程安全”有一个比较恰当的定义:“当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用...
转载
36阅读
0评论
0点赞
发布博客于 2 年前

【深入理解JAVA虚拟机】第4部分.程序编译与代码优化.1.编译期优化。这章编译和实战部分没理解通,以后再看。...

1、概述1.1、编译器的分类前端编译器:Sun的Javac、 Eclipse JDT中的增量式编译器(ECJ)[1]。把*.java文件转变成*.class文件JIT编译器:HotSpot VM的C1、 C2编译器。是指虚拟机的后端运行期编译器 ,把字节码转变成机器码AOT编译器:GNU Compiler for the Java(GCJ)[2]、 Excels...
转载
27阅读
0评论
0点赞
发布博客于 2 年前

【深入理解JAVA虚拟机】第4部分.程序编译与代码优化.2.运行期优化。这章提到的具体的优化技术,应该对以后做性能工作会有帮助。...

1、概述Java程序最初是通过解释器(Interpreter)进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁时,就会把这些代码认定为“热点代码”(Hot Spot Code)。为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器(Just In Time Compiler,下文...
转载
27阅读
0评论
0点赞
发布博客于 2 年前

【深入理解JAVA虚拟机】第三部分.虚拟机执行子系统.4.类加载及执行子系统的案例与实战...

1、概述在Class文件格式与执行引擎这部分中 :  用户不能控制的:Class文件以何种格式存储,类型何时加载、 如何连接,以及虚拟机如何执行字节码指令等都是由虚拟机直接控制的行为   用户能控制的:字节码生成与类加载器 2、Tomcat:正统的类加载器架构还是双亲委托模型,继承关系如下图:灰色背景的3个类加载器是JDK默认提供的类加载器 。而...
转载
51阅读
0评论
0点赞
发布博客于 2 年前

【深入理解JAVA虚拟机】第三部分.虚拟机执行子系统.2.虚拟机类加载机制

1、概述虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、 转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 2、类加载顺序类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、 验证(Verification)、 准备(Preparation)、 解析(Resolution...
转载
23阅读
0评论
0点赞
发布博客于 2 年前

【深入理解JAVA虚拟机】第三部分.虚拟机执行子系统.3.函数调用与执行

这章原名叫“虚拟机字节码执行引擎”,实际就是讲的函数如何调用和执行的。1、概述“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、 硬件、 指令集和操作系统层面上的,而虚拟机的执行引擎则是由自己实现的,因此可以自行制定指令集与执行引擎的结构体系,并且能够执行那些不被硬件直接支持的指令集格式。 在Java...
转载
30阅读
0评论
0点赞
发布博客于 2 年前

【深入理解JAVA虚拟机】第三部分.虚拟机执行子系统.1.类文件结构

无关性无关性的体现有两个方面:  1、平台无关性:可在不同的操作系统和机器指令集上执行,可在不同厂商的虚拟机平台上执行。  2、语言无关性:用不同编程语言写出的代码编译生成的文件都可以运行。实现思想:  面向接口,定义虚拟机和编译器之间的接口规范。也就是编译后文件的存储格式——字节码(ByteCode)。任意一种编程语言,只要生成符合存储格式规范的Class...
转载
28阅读
0评论
0点赞
发布博客于 2 年前

dailiaojie new

http://imushan.com/categories/Java/编译优化手段。转载于:https://www.cnblogs.com/aoyihuashao/p/10350889.html
转载
12阅读
0评论
0点赞
发布博客于 2 年前

【深入理解JAVA虚拟机】第二部分.内存自动管理机制.2.HotSpot虚拟机对象探秘

对象的创建过程1、加载类虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、 解析和初始化过。如果没有,那必须先执行相应的类加载过程。2、分配内存在类加载检查通过后,接下来虚拟机将为新生对象分配内存。 对象所需内存的大小在类加载完成后便可完全确定。为对象分配空间的任务等同于把一块确...
转载
21阅读
0评论
0点赞
发布博客于 2 年前

【深入理解JAVA虚拟机】第二部分.内存自动管理机制.3.垃圾收集器与内存分配策略...

1、学习目的当需要排查各种内存溢出、 内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调节。Java内存运行时区域的各个部分,其中程序计数器、 虚拟机栈、 本地方法栈3个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。因此这几个区域的内存分配和回收都具备确定性,在这几个区域内就...
转载
29阅读
0评论
0点赞
发布博客于 2 年前

【深入理解JAVA虚拟机】第一部分.走进Java

Java技术体系如果仅从传统意义上来看,Sun官方所定义的Java技术体系包括以下几个组成部分:Java程序设计语言各种硬件平台上的Java虚拟机Class文件格式Java API类库来自商业机构和开源社区的第三方Java类库 我们可以把Java程序设计语言、 Java虚拟机、 Java API类库这三部分统称为JDK(JavaDevelopment Kit),JDK是用于...
转载
21阅读
0评论
0点赞
发布博客于 2 年前

【设计模式最终总结】组合模式:树形结构的处理

组合模式概述组合模式为处理树形结构提供了一种较为完美的解决方案,它描述了如何将容器和叶子进行递归组合,使得用户在使用时无须对它们进行区分,可以一致地对待容器(包含子节点的节点)和叶子(不包含子节点的节点)。常用到组合模式的场景:操作系统中的目录结构、应用软件中的菜单、办公系统中的公司组织结构等等。凡是遇到XXX,子XXX的这种结构,就可以考虑组合模式。组合模式(Compos...
转载
46阅读
0评论
0点赞
发布博客于 2 年前

【深入理解JAVA虚拟机】第二部分.内存自动管理机制.1.内存区域

1、内存区域根据《Java虚拟机规范(Java SE 7版)》 的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域,如图所示。程序计数器当前线程所执行的字节码的行号指示器属于线程唯一不会OutOfMemoryError的区域Java虚拟机栈描述的是Java方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧(Stack F...
转载
21阅读
0评论
0点赞
发布博客于 2 年前

【设计模式最终总结】桥接模式 VS 外观模式

差异点外观模式,是把功能通过一个接口提供出来,方便日后更换实现,或者这种实现可以由多方提供,但同时只用一个。典型例子:@Slf4j桥接模式,多个维度,每个维度提供一个接口,这些接口集中在一个类中,供这个类使用。相同点都是通过抽象一个接口,通过接口访问具体的功能。设计思想:分离不同的变化方向,用组合替代继承,面向接口编程转载于:https://www.cnbl...
转载
26阅读
0评论
0点赞
发布博客于 2 年前

【设计模式最终总结】适配器模式

什么是适配器我的笔记本电脑的工作电压是20V,而我国的家庭用电是220V,如何让20V的笔记本电脑能够在220V的电压下工作?答案是引入一个电源适配器(AC Adapter),俗称充电器或变压器,有了这个电源适配器,生活用电和笔记本电脑即可兼容。在软件开发中,有时也存在类似这种不兼容的情况,我们也可以像引入一个电源适配器一样引入一个称之为适配器的角色来协调这些存在不兼容的结构,这...
转载
20阅读
0评论
0点赞
发布博客于 2 年前

【设计模式最终总结】桥接模式(接口模式):处理多维度变化

桥接模式概述 桥接模式是一种很实用的结构型设计模式,如果软件系统中某个类存在两个独立变化的维度,通过该模式可以将这两个维度分离出来,使两者可以独立扩展,让系统更加符合“单一职责原则”。与多层继承方案不同,它将两个独立变化的维度设计为两个独立的继承等级结构,并且在抽象层建立一个抽象关联,该关联关系类似一条连接两个独立继承结构的桥,故名桥接模式。 桥接模式...
转载
20阅读
0评论
0点赞
发布博客于 2 年前

深入编解码:ASCII,UNICODE,UTF8等

ASCIIASCII = AmericanStandardCode forInformationInterchange(美国信息交换标准码)美国最先有了计算机技术,计算机里面只有01,也就是数字,要用数字代表附号,所以需要制定一张数字附号对应表。所以美国就自己定义了一张表,也就是ascii表,用7位bit代表一个附号,最多表示128个附号。Unicode...
转载
17阅读
0评论
0点赞
发布博客于 2 年前

好妈妈【第四章】培养良好的学习习惯

在培养“好习惯”过程中如果方法用的不对,恰恰就培养了坏习惯。方法用对了,好习惯就是水到渠成的事。正确的方法,其实远比错误的方法简单易做。1.“不陪”才能培养好习惯家长陪孩子学习 的时间越长,扮演的角色越接近监工。而孩子从骨子里是不喜欢一个监工的,他最多表面上暂时屈从他,内心绝不会听他的话。所以说,陪孩子写作业,不是培养孩子的好习惯上,而是在瓦解好习惯,是对儿童自制力的日渐磨损。...
转载
62阅读
0评论
0点赞
发布博客于 2 年前

【设计模式最终总结】建造者模式:复杂对象的组装与创建

建造者模式又称为生成器模式,它是一种较为复杂、使用频率也相对较低的创建型模式。建造者模式为客户端返回的不是一个简单的产品,而是一个由多个部件组成的复杂产品。建造者模式概述建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一种对象创建型模式。建造者模式结构图在建造者...
转载
137阅读
0评论
0点赞
发布博客于 2 年前

上火流鼻血

上火医理人体阴阳平衡失调的结果感受外邪,或人体机能活动亢进,就会出现阳盛阴衰的热证证候。病因病因可以概括为五个方面:①外感火热之邪;②寒邪入里化热;③七情过激,郁而化热;④饮食不节,积久化热;⑤房室劳伤,劫夺阴津。实火多由于火热之邪内侵或嗜食辛辣所致,而精神过度刺激、脏腑功能活动失调亦可引起实火内盛虚火多因内伤劳损所致,如久病精气...
转载
98阅读
0评论
0点赞
发布博客于 2 年前

好妈妈【第三章】一生受用的品格教育,不止孩子需要,父母也需要。

一、如何面对性教育1、不要做过多的启蒙青少年出现早孕、滥性等问题,根本不是因为他对性知识了解得少,而是因为精神空虚,道德情感发育不良,缺少自爱及爱人的能力。正确的两性观绝不可能孤立存在,它是一个人整个价值观、人生观的一部分。孩子只要有良好的价值观和正确的人生观,他一定会同时有健康的两性观。把“性教育”做成“性启蒙”,比不做还要坏得多。家长们不仅要在意识上给孩子以健康的...
转载
48阅读
0评论
0点赞
发布博客于 3 年前

Spring Data Jpa 学习笔记

什么的Spring Data JPASpring Data JPA为Java Persistence API(JPA)提供了存储库支持。它简化了需要访问JPA数据源的应用程序的开发。maven依赖 <dependency> <groupId>org.springframework.boot</groupId>...
转载
38阅读
0评论
0点赞
发布博客于 3 年前

好妈妈【第一章】提高爱的质量,小学前的儿童教育

注:本文大多来源于《好妈妈胜过好老师》读后总结,还有其他育儿读物总结。一、如何对待孩子的痛苦及由痛苦引起的哭1、对于能预期的痛苦,要事先和孩子说通,让他也有心理预期。  说通的办法:  1.1平静自若,不要表现出焦虑。    如果大人首先一脸焦虑,孩子就会觉得问题严重,会吓着他们。  1.2对于为什么要这样做,要用孩子能懂的语言向他说明。    比如告...
转载
37阅读
0评论
0点赞
发布博客于 3 年前

spring core

https://docs.spring.io/spring/docs/5.1.3.RELEASE/spring-framework-reference/core.html#beans转载于:https://www.cnblogs.com/aoyihuashao/p/10190552.html
转载
16阅读
0评论
0点赞
发布博客于 3 年前

【设计模式最终总结】装饰模式

1 装饰模式举例如图,在一个图表上,加上滚动条,便是装饰了图表。2 装饰模式概述装饰模式的定义:装饰模式(Decorator Pattern):动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活。装饰模式是一种对象结构型模式。装饰模式的特点:1、在不改变一个对象本身功能的基础上给对象增加额外的新行为。2、装饰...
转载
24阅读
0评论
0点赞
发布博客于 3 年前

好妈妈【第二章】把学习做成轻松的事,父母如何提升孩子的学习成绩

注:本文大多来源于《好妈妈胜过好老师》读后总结,还有其他育儿读物总结及生活感悟。一、如何读书识字1、不需要刻意去强迫孩子认字学习一个个的字是枯燥无聊的,只有在阅读中学字才是有趣的。孤立的学一个个的字词,是没有意义的,是低效的学习。2、在读故事中识字给孩子反复的读故事,先家长用手指着字一个一个的读,最后孩子用手指着字一个一个地读。这样把故事和字联系在一起,在生...
转载
116阅读
0评论
0点赞
发布博客于 3 年前

java访问windows远端共享文件的方法

没密码的,直接用url访问就可以了,跟本地文件相同。有密码的,用smb。远端需要开启smb。win10启动smb的方法:https://jingyan.baidu.com/article/47a29f2477fb56c014239996.html注意,配完必须要重启windows。smb需要在服务器端启动,也就是那台windows机器,不启动会报错 Softwar...
转载
267阅读
0评论
0点赞
发布博客于 3 年前

Java日志系统

前言各组件之间的关系:slf4j是The Simple Logging Facade for Java的简称,是一个简单日志门面抽象框架,它本身只提供了日志Facade API和一个简单的日志类实现,一般常配合Log4j,LogBack,java.util.logging使用。Slf4j作为应用层的Log接入时,程序可以根据实际应用场景动态调整底层的日志实现框架(Log4j/...
转载
22阅读
0评论
0点赞
发布博客于 3 年前

【设计模式最终总结】外观模式(门面模式):外观即接口。

1.外观模式概述  外观模式又称为门面模式,它是一种对象结构型模式。  解决的问题:大侠喝茶。   做法:通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口。  目的:将客户类与子系统的内部复杂性分隔开,降低子系统与客户端的耦合度,客户端不需要与子系统内部的很多对象打交道,调用非常方便。 ...
转载
49阅读
0评论
0点赞
发布博客于 3 年前

C++默认值。

类成员变量:char :�      //随机int :2685372    //随机string :size:0length:0vector :0map :0结构体  //取决于成员自己的类型类成员静态变量:== 全局变量char : int :0string :size:0length:0vector :0map :0struct AAA1...
转载
59阅读
0评论
0点赞
发布博客于 3 年前

【设计模式最终总结】原型模式:对象的克隆

1 原型模式概述通过一个原型对象克隆出多个一模一样的对象,该模式称之为原型模式。比如孙悟空可以用猴毛根据自己的形象,复制(又称“克隆”或“拷贝”)出很多跟自己长得一模一样的“身外身”来。2 原型模式的一个需求订会议室:当你预定一个会议室时,可能有十几个项需要填写,但这些项呢,基本都是一致的,只有个别项需要修改,所以可以生成一个模板,然后复制出来,再去修改。查询特征值...
转载
41阅读
0评论
0点赞
发布博客于 3 年前

在Clion里链接gtest

本来以为像之前链接boost一样,加个链接路径就好了,没想到报找不到gtest的符号,搞了半天,没弄明白啥原因。网上也没搜到好方法,只能把gtest的源码加到项目里,然后在链接了。CMake配置如下:set(googleTestDir "C:/Users/z00199662/CLionProjects/MyCppProject/googletest-master")...
转载
334阅读
0评论
0点赞
发布博客于 3 年前

机器学习资料

小鸟:https://github.com/yenchenlin/DeepLearningFlappyBird五子棋:https://github.com/ArinoWang/AlphaZero_Gomoku-master强化学习方法汇总https://zhuanlan.zhihu.com/p/24806654Q – LEARNLING:一个 Q-learning 算法的简明...
转载
25阅读
0评论
0点赞
发布博客于 3 年前

【设计模式最终总结】单例模式:确保对象的唯一性

1 单例模式的动机为了节约系统资源,有时需要确保系统中某个类只有唯一一个实例,当这个唯一实例创建成功之后,我们无法再创建一个同类型的其他对象,所有的操作都只能基于这个唯一实例。为了确保对象的唯一性,我们可以通过单例模式来实现,这就是单例模式的动机所在。2单例模式概述单例模式(Singleton Pattern):确保某一个类只有一个实例,而且自行实例化并向整个系统...
转载
41阅读
0评论
0点赞
发布博客于 3 年前

maven仓库使用HTTP代理,maven仓库使用本地jar

setting.xml<proxies><proxy><id>proxy</id><active>true</active><protocol>http</protocol><username>xxxxx</username><pa...
转载
22阅读
0评论
0点赞
发布博客于 3 年前

gmock使用、原理及源码分析

1 初识gmock1.1 什么是Mock便捷的模拟对象的方法。1.2 Google Mock概述google mock是用来配合google test对C++项目做单元测试的。它依赖于googletestGoogle Mock(简称gmock)是Google在2008年推出的一套针对C++的Mock框架,它灵感取自于jMock、EasyM...
转载
378阅读
0评论
0点赞
发布博客于 3 年前

CMake是用于生成make文件的跨平台编译文件

参考:https://www.cnblogs.com/hbccdf/p/introduction_of_cmake.htmlhttps://elloop.github.io/tools/2016-04-10/learning-cmake-2-commands转载于:https://www.cnblogs.com/aoyihuashao/p/9356882.html...
转载
23阅读
0评论
0点赞
发布博客于 3 年前

如何使用cntlm配置代理上网

https://blog.csdn.net/SdustLiYang/article/details/7034974https://blog.csdn.net/bluishglc/article/details/37600773用了后,就不需要软件自己配置代理了。转载于:https://www.cnblogs.com/aoyihuashao/p/9225297.html...
转载
270阅读
0评论
0点赞
发布博客于 3 年前

fork/join框架

1. Fork/Join是什么  Fork/Join框架是Java 7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。Fork/Join框架要完成两件事情:  Oracle的官方给出的定义是:Fork/Join框架是一个实现了ExecutorService接口的多线程处理器。它可以把一个大的任务划分为...
转载
39阅读
0评论
0点赞
发布博客于 3 年前

C++使用BOOST操作文件、目录

开始使用在BOOST库出现之前,C++对于文件和目录的操作,大都借助于UNIX提供的底层文件和目录接口,从使用角度来看,这些底层的操作不够友好。BOOST中filesystem库是一种可移植的文件系统操作库,可以跨平台的操作目录、文件等,在不失性能的情况下,提供了友好的操作方法。本文主要介绍在UNIX环境中,boost::filesystem的常用操作方法。假设你已经安装好了bo...
转载
285阅读
0评论
0点赞
发布博客于 3 年前

【设计模式最终总结】概述、分类、原则

1 什么是设计模式模式是在特定环境下人们解决某类重复出现问题的一套成功或有效的解决方案。【A pattern is a successful or efficient solution to a recurring problem within a context】软件模式是在软件开发中某些可重现问题的一些有效解决方法,软件模式的基础结构主要由四部分构成,包括问题描...
转载
41阅读
0评论
0点赞
发布博客于 3 年前

各种排序算法的时间复杂度和空间复杂度

各种排序算法的时间复杂度和空间复杂度看起来归并排序还挺不错的,时间复杂度,空间复杂度都不错。直接选择排序排序过程:1、首先在所有数据中经过n-1次比较选出最小的数,把它与第1个数据交换, 2、然后在其余的数据内选出排序码最小的数,与第2个数据交换......依次类推,直到所有数据排完为止。在第i趟排序...
转载
47阅读
0评论
0点赞
发布博客于 3 年前

全文检索及ElasticSearch框架学习

1. 全文检索的通用步骤:1、建库步骤:   a 分词  b 倒排索引 : 关键词和记录Id的对应关系,1对多。2、查询步骤:   a 分词  b 查索引  c 取交集或并集2. 产品使用全文检索的一种场景如上图,由数据库或者应用软件生成数据,通过logstash导入...
转载
21阅读
0评论
0点赞
发布博客于 3 年前

全文检索之solr学习

solr下载:http://www.apache.org/dyn/closer.lua/lucene/solr/7.3.1学习教程除了官网的教程,一切教程都是可以有错误的。https://lucene.apache.org/solr/guide/7_3/solr-tutorial.html1、安装启动https://lucene.apache.o...
转载
11阅读
0评论
0点赞
发布博客于 3 年前

【zz】史上最全设计模式导学目录(完整版)

2012年-2013年,Sunny在CSDN技术博客中陆续发表了100多篇与设计模式学习相关的文章,涵盖了七个面向对象设计原则和24个设计模式(23个GoF设计模式 + 简单工厂模式),为了方便大家学习,现将所有文章的链接进行了整理,希望能给各位带来帮助! 祝大家圣诞节快乐!花絮:本文的工作量大大超过之前的估计,几乎整个平安夜都花在它身上了,基础知识...
转载
23阅读
0评论
0点赞
发布博客于 3 年前

nginx导致的session丢失的解决方法

nginx把同一用户的请求分发到了不同的服务器,如果不做处理,就会导致session丢失。1、粘性IP:在nginx配置文件中,增加配置, 对IP进行HASH后,散列到服务器。这个实现最简单。但对于前端部署了SBC的,或者很多请求都是从某一个外网网关过来的,就没用了。而且对于app会切换wifi变ip的,也不好用。2、服...
转载
249阅读
0评论
0点赞
发布博客于 3 年前

在IDE中集成boost

1. 获得Boost进入Boost的网站(http://www.boost.org/) 下载boost_1_62_0.zip2. 解压Boost解压boost_1_62_0.zip,比如解压到D:\Program Files\boost\boost_1_62_0。3. 仅需头文件的库许多人会问:“我该如何安装Boost库?” 实际上,常使用的boost库...
转载
44阅读
0评论
0点赞
发布博客于 3 年前

Effective Java 第二版 Enum

/** * Effective Java 第二版 * 第30条:用enum代替int常量 */import java.util.HashMap;import java.util.Map;public class EnumTest { /*媒体操作*/ public final static int START = 1; public final static in...
转载
18阅读
0评论
0点赞
发布博客于 3 年前

nginx知识图谱

nginx启动起来后有两个进程,一个是主进程,一个是守护进程转载于:https://www.cnblogs.com/aoyihuashao/p/9057963.html
转载
268阅读
0评论
0点赞
发布博客于 3 年前

分布式锁

为什么需要锁 多任务环境 任务需要对统一共享资源进行写操作 对资源的访问是互斥的锁的操作: 竞争锁-->占有锁-->释放锁。转载于:https://www.cnblogs.com/aoyihuashao/p/9043302.html...
转载
9阅读
0评论
0点赞
发布博客于 3 年前

一个较复杂的执行redis的lue脚本

转载于:https://www.cnblogs.com/aoyihuashao/p/9053503.html
转载
82阅读
0评论
0点赞
发布博客于 3 年前

缓存穿透,缓存击穿,缓存雪崩

互联网开发四大法宝: 多线程,异步,缓存,分布式。什么是缓存一致性 使用缓存的必要性: 需要从大量数据表进行计算统计 业务计算规则复杂 首页展现,活跃用户并发量较高 缓存信息的本质是硬盘数据的副本,归根究底是一种用空间换时间的技术,数据一致性是不可避免的。 ...
转载
8阅读
0评论
0点赞
发布博客于 3 年前

redis知识树

转载于:https://www.cnblogs.com/aoyihuashao/p/9043079.html
转载
79阅读
0评论
0点赞
发布博客于 3 年前

分布式锁原理介绍

分布式服务中,如果各个服务节点需要竞争资源,不能像单机多线程应用一样使用线程锁,需要由一套分布式锁机制保证节点对资源的访问。通常分布式锁以单独的服务方式实现,目前比较常用的分布式锁实现有三种:zookeeper实现、redis实现和memcache实现。后两者本质上相同。一个需要用到分布式锁的典型场景是,分布式服务的各个节点注册到用于服务发现的服务器,注册后的节点需要是有序的。此时就需要...
转载
12阅读
0评论
0点赞
发布博客于 3 年前

Java内存使用情况查看工具

Java通过jvm自己管理内存,同时Java提供了一些命令行工具,用于查看内存使用情况。这里主要介绍一下jstat、jmap命令以及相关工具。一、jstat查看gc实时执行情况jstat命令命令格式:jstat [Options] vmid [interval] [count]命令参数说明:Options,一般使用-gcutil或-gc查...
转载
26阅读
0评论
0点赞
发布博客于 3 年前

Redis的7个应用场景

Fromhttps://www.cnblogs.com/NiceCui/p/7794659.html一:缓存——热数据热点数据(经常会被查询,但是不经常被修改或者删除的数据),首选是使用redis缓存,毕竟强大到冒泡的QPS和极强的稳定性不是所有类似工具都有的,而且相比于memcached还提供了丰富的数据类型可以使用,另外,内存中的数据也提供了AOF和RDB等持久化机制...
转载
14阅读
0评论
0点赞
发布博客于 3 年前

做技术选型时,要注意些什么?

FROMhttps://36kr.com/p/5097526.html编者按:本文来自微信公众号"InfoQ"(ID: infoqchina),作者:周明耀,浙江大学工学硕士,13 年软件研发经验,近 10 年技术团队管理经验,4 年分布式计算、大数据技术经验,出版书籍包括《大话 Java 性能优化》、《深入理解 JVM&G1 GC》、《技术领导力 - 码农如何才能带团队...
转载
41阅读
0评论
0点赞
发布博客于 3 年前

C/C++ 标准

正式标准是需要付费的,不过可以在http://open-std.org/上找到标准的草案(和实际标准相差不大但是可以免费获取)下面列出一下可能会用到的标准草案:C99:http://open-std.org/JTC1/SC22/WG14/www/docs/n897.pdfC11:http://open-std.org/JTC1/SC22/WG14/www/docs/n1570...
转载
18阅读
0评论
0点赞
发布博客于 3 年前

简单结构算法复杂度

图例数据结构操作数组排序算法图操作堆操作转载于:https://www.cnblogs.com/aoyihuashao/p/8996821.html
转载
22阅读
0评论
0点赞
发布博客于 3 年前

图片及存储选型

1 图片大小计算1.1 图片选择像素大小:500px*500px支持格式:JPG(JPEG),PNG(在数字成像领域,有两种图像格式优先于其他格式:JPEG(或JPG)和PNG。)第三方限制大小:base64:2M1.2 BMP原始图片直接色、有损、点阵图(14+40+(500×3+1)×500)/1024= 732K...
转载
133阅读
0评论
0点赞
发布博客于 3 年前

理解HTTP幂等性

FROMhttp://www.cnblogs.com/weidagang2046/archive/2011/06/04/idempotence.html基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式。无论是在大型互联网应用还是企业级架构中,我们都见到了越来越多的SOA或RESTful的Web API。为什么Web API如此流行呢?我认为很大程度上应归...
转载
10阅读
0评论
0点赞
发布博客于 3 年前

Hibernate、Mybatis与Spring Data JPA

从零开始集成Springboot+MyBatis+JPAhttps://www.jianshu.com/p/e14c4a6f6871MyBatis 与Hibernate的区别http://xhrong.github.io/2016/11/24/ORM%EF%BC%9AHibernate%E3%80%81Mybatis%E4%B8%8ESpring%20Data%20JPA%E...
转载
41阅读
0评论
0点赞
发布博客于 3 年前

从多线程编程探讨高并发实现

多线程的介绍线程的来源,为什么会有线程?在早期的操作系统中并没有线程的概念,进程是能拥有资源和独立运行的最小单位,也是程序执行的最小单位。任务调度采用的是时间片轮转的抢占式调度方式,而进程是任务调度的最小单位,每个进程有各自独立的一块内存,使得各个进程之间内存地址相互隔离。后来,随着计算机的发展,对CPU的要求越来越高,进程之间的切换开销较大,已经无法满足越来越复杂的程序的要求了...
转载
37阅读
0评论
0点赞
发布博客于 3 年前

postgraSql支持View可以修改的两种方法。

http://www.postgresqltutorial.com/postgresql-views/Creating PostgreSQL updatable views– gives you examples of creating updatable views that allow you to issueINSERT,UPDATE, andDELETEstat...
转载
52阅读
0评论
0点赞
发布博客于 3 年前

CDN缓存策略

以下内容就是FAQ,自己也学习一下。。。1.CDN加速原理通过动态域名解析,网友的请求被分配到离自己最快的服务器。CDN服务器直接返回缓存文件或通过专线代理原站的内容。网络加速+内容缓存,有效提供访问速度2.CDN节点数量全国多个机房,每个机房多台服务器,CDN节点一般上百台3.CDN缓存什么内容缓存html、图片、css、xml等静态资源,不缓存含有?的动态地址、jsp、p...
转载
19阅读
0评论
0点赞
发布博客于 3 年前

RBTree和AVL

红黑树和AVL的相同:都是平衡二叉树,所以插入删除修改查询都非常高效。红黑树和AVL的区别:红黑树: 不是要求绝对平衡,付出的代价是要着色,查询次数可能会多一层,好处是减少旋转次数。AVL: 要求绝对平衡,付出的代价是要计数,旋转次数可能会多,好处是所有查询都是最短路径。红黑树的实现见维基百科。红黑树比 AVL 树具体更高效在哪里...
转载
24阅读
0评论
0点赞
发布博客于 3 年前

maven

https://www.imooc.com/video/8598maven项目目录结构src-main-java -test-javaresourcesmaven install 发布本项目到本地仓库。pom.xml里面依赖的组件,先在本地仓库查找,...
转载
18阅读
0评论
0点赞
发布博客于 3 年前