自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(412)
  • 收藏
  • 关注

转载 算法拾忆

参考课程:https://mooc.study.163.com/course/1000002012?_trace_c_p_k2_=71acf89eff5548528d3ffa68b0912f8f#/infohttps://mooc.study.163.com/course/1000005000?_trace_c_p_k2_=60f72128fe6348b7ae19623592d4...

2019-05-15 18:35:00 293

转载 C++拾忆

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

2019-05-13 14:58:00 281

转载 Copy-On-Write技术

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

2019-05-10 14:31:00 682

转载 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...

2019-05-07 17:17:00 2033

转载 Log Structured Merge Trees (LSM)

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

2019-04-22 11:26:00 244

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

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

2019-04-20 16:37:00 1074

转载 需求分析的方法与实践

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

2019-04-17 17:06:00 164

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

1 什么是架构三要素:1、 构件2、 构件之间的关系3、 构件与环境之间的关系2 软件架构原则2.1 全面解耦原则对业务进行抽象建模,业务数据与业务逻辑解耦,软件和硬件解耦,平台和产品解耦,系统各部件间解耦什么是系统的耦合性耦合性(Coupling),也叫耦合度,是对系统模块间依赖...

2019-04-17 16:35:00 545

转载 装修-3

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

2019-04-09 17:36:00 533

转载 装修-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...

2019-04-09 17:35:00 1852

转载 装修-1

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

2019-04-09 17:33:00 211

转载 daikuan

圣都:杭州联合银行装修贷款额度100万,1、按月分期,等额本金  10年期0.333%/月,10W块贷款每月还1166  5年期 0.297%/月,10W块贷款每月还19642、循环贷款,0.5075%/月 10W贷款每月还5075钱江日报弄房子中国银行装修贷款最高30W,最多5年等额本息每月0.242%10万5年每月还1908...

2019-04-08 22:30:00 90

转载 JAVA容器全面总结

1 容器体系图简图: 详图:2基础2.1Iterator接口迭代器。具有的能力:后向迭代、删除。2.2Iterable接口表示一个类具有迭代能力。提供能力:通过iterator()方法,返回iterator。2.3Collection接口...

2019-04-02 21:06:00 161

转载 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四层参考模型不关心底层,在五层的基础上,去掉了物理层。...

2019-03-20 11:00:00 892

转载 如何用搜狗拼音输入法输入希腊字母及各种上下标

本篇介绍使用搜狗拼音输入法输入希腊字母工具/原料搜狗拼音输入法方法一:软键盘右击输入法悬浮窗打开菜单-选择软键盘这里有很多软键盘,其中第二个就是希腊字母软键盘,点击打开第二次使用可以点击输入法悬浮窗上的软键盘快...

2019-03-13 10:47:00 6700

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

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

2019-03-11 17:16:00 208

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

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

2019-03-01 09:48:00 121

转载 发烧

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

2019-02-25 17:18:00 247

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

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

2019-02-19 14:51:00 122

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

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

2019-02-16 23:12:00 144

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

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

2019-02-16 22:31:00 117

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

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

2019-02-16 21:43:00 90

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

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

2019-02-16 18:15:00 70

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

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

2019-02-16 18:00:00 111

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

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

2019-02-16 17:54:00 79

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

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

2019-02-16 17:10:00 81

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

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

2019-02-16 13:40:00 130

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

11、处理概括关系【更优雅的继承】Pull Up Field(值域上移)两个subclasses 拥有相同的值域。将此一值域移至superclass。Pull Up Method(函数上移)有些函数,在各个subclass 中产生完全相同的结果。将该函数移至superclass。Pull Up Constructor Body(构造函数本...

2019-02-16 12:56:00 95

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

10、使接口变得更简洁易用Rename Method(重新命名函数)就是重命名而已。Add Parameter(添加参数)就是给函数添加一个参数。但这个并不推荐,除非非得加一个参数,如果可以用其他方式,优先用其他方式。Remove Parameter(移除参数)如果一个参数没用,请移除。除非是多态的其...

2019-02-15 23:49:00 128

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

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

2019-02-15 17:14:00 75

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

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

2019-02-15 16:46:00 118

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

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

2019-02-15 14:53:00 92

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

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

2019-02-14 17:51:00 149

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

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

2019-02-13 22:21:00 130

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

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

2019-02-13 18:44:00 88

转载 【深入理解JAVA虚拟机】第5部分.高效并发.1.Java内存模型与线程。

1、概述摩尔定律:描述处理器晶体管数量与运行效率之间的发展关系。Amdahl定律:通过系统中并行化与串行化的比重来描述多处理器系统能获得的运算加速能力。从摩尔定律到Amdahl定律的转变,代表了近年来硬件发展从追求处理器频率到追求多核心并行处理的发展过程。并发的好处: 1、计算机的运算速度与它的存储和通信子系统速度的差距太大,充分利用磁盘I/0、网络通信、数据库访问等的等...

2019-02-13 18:21:00 216

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

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

2019-02-12 16:40:00 80

转载 【深入理解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...

2019-02-12 15:45:00 89

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

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

2019-02-12 15:14:00 99

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

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

2019-02-11 17:25:00 97

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除