普通的stl::set,查找时只能传入key_type. 不能使用属性值查找. 例如: /* an employee record holds its ID, name and age */ class employee { public: int id; std::string name; int age; public: employee():id(){} employee(int id_,std::string name_,int age_):id(id_),name(name_),age…
主要知识点, 修改IK分词器源码来基于mysql热更新词库     一.IK增加新词的原因 在第32小节中学习到了直接在es的词库中增加词语,来扩充自已的词库,但是这样做有以下缺点: (1)每次添加完,都要重启es才能生效,非常麻烦 (2)es是分布式的,可能有数百个节点,你不能每次都一个一个节点上面去修改 这一小节来学习让es不停机,直接在外部mysql中添加新的词语,es中立即热加载到这些新词语.     目前业界的热更新的方案: (1)修改ik分词器源码,然后手动支持从mysql中每隔一定…
一.简介 mt allocator 是一种以2的幂次方字节大小为分配单位的空间配置器,支持多线程和单线程.该配置器灵活可调,性能高. 分配器有三个通用组件:一个描述内存池特性的数据,一个包含该池的策略类,该池将实例化类型链接到公共或单个池,以及一个从策略类继承的类,该类是实际的分配器. 描述内存池特…
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/47721631: 本文出自:[张鸿洋的博客] 一 概述 最近在完善图片加载方面的代码,于是就看看Volley的图片加载相关源码,取取经,顺便写篇博文作为笔记记录下. 在使用Volley作为图片加载库的时候,肯定需要做以下几件事: Application中初始化Volley请求队列 初始化ImageLoader,需要设置ImageCache 需要的时候,调用 getInstanc…
(0)文件夹 STL 之 vector源码实现(云算法<< [] = 重载, new delete,throw catch) STLc++中string类的源码 堆(stack) 之 c 和 c++模板实现(空类默认成员函数 初谈引用 内联函数) 第一次实现list模板(幼稚的我) 浅析STL 谓词 + 仿函数 + 函数指针(c) 队列(queue) 之 c++模板实现(友元函数和运算符重载) STL 之 初识set multiset(map multimap) C++map类型 之 简单介绍…
Why underscore 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. 阅读一些著名框架类库的源码,就好像和一个个大师对话,你会学到很多.为什么是 underscore?最主要的原因是 underscore 简短精悍(约 1.5k 行),封装了 100 多个有用的方法,耦合度低,非常适合逐个方法阅读,适合楼主这样的 JavaScript 初学者.从中,你不仅可以学到用 void 0 代替 undefined 避免 u…
这是这4篇MFC界面的相关源码.建议学习Visual C++的看看这2本微软官方出的教材. [MFC Windows程序设计(第2版,修订版)](美)Jeff Prosise著 [Windows程序设计(第5版,珍藏版)](美)Charles Petzold著 http://files.cnblogs.com/files/sishenzaixian/MFC界面.rar…
不多说,直接上干货! 如果在一个界面里,可以是单个项目 注意:本文是以gradle项目的方式来做的! 如何在IDEA里正确导入从Github上下载的Gradle项目(含相关源码)(博主推荐)(图文详解) 注意:本文是以maven项目的方式来做的! 如何在IDEA里正确导入从Github上下载的Maven项目(含相关源码)(博主推荐)(图文详解) 如果在一个界面里,可以是多个项目 注意:本文是以maven项目的方式来做的! IDEA学习系列之IDEA里如何正确设置(类似eclipse里同一个wor…
[版权声明]:本文章由danvid发布于http://danvid.cnblogs.com/,如需转载或部分使用请注明出处 在业务中经常会用到拼音匹配查询,大家都会用到拼音分词器,但是拼音分词器匹配的时候有个问题,就是会出现同音字匹配,有时候这种情况是业务不希望出现的. 业务场景:我输入"纯生pi酒"进行搜索,文档中有以下数据: doc[1]:{"name":"纯生啤酒"} doc[2]:{"name":"春生啤酒&…
以下是摘抄,实际操作没有测试   先前我曾提到,原本想借由“改动Java标准库源码”来测知Class object的生成,但由于其ctor原始设计为private,也就是说不可能透过这个管道生成Class object(而是由class loader负责生成),因此“在ctor中打印出某种信息”的企图也就失去了意义. 这里我要谈点题外话:如何修改Java标准库源码并让它反应到我们的应用程序来.假设我想修改java.lang.Class,让它在某些情况下打印某种信息.首先必须找出标准源码!当你下载…
修改Sqoop1.4.6源码实现--fields-terminated-by选项支持多字节分隔符 最近项目中需要使用sqoop实现oracle与hdfs的数据交换,从oracle数据表导入到hdfs集群,以及把hdfs数据导出到oracle数据表.客户要求Hdfs文本文件中,字段分隔符必须是“|@|”.然而发现sqoop的—fields-terminated-by选项只能支持单字节分隔符,无法支持多字节分隔符,难以满足要求.上网搜索了一下,并没有太多公开资料能较好的解决这个问题.这篇文章(htt…
1.Netty 是怎么创建服务端Channel的呢? 我们在使用ServerBootstrap.bind(端口)方法时,最终调用其父类AbstractBootstrap中的doBind方法,相关源码如下: private ChannelFuture doBind(final SocketAddress localAddress) { //初始化和注册 final ChannelFuture regFuture = initAndRegister(); ..... 我们继续跟进initAndReg…
目录 1.关键接口和类 1.1.关键类之 DefaultListableBeanFactory 1.2.关键类之XmlBeanDefinitionReader 1.3.关键类之ClassPathXmlApplicationContext 2.spring初始化过程中对外暴露的扩展接口 3.扩展点的启动顺序 spring的IOC容器初始化流程很复杂,本文只关注流程中的关键点,勾勒出主要轮廓,对容器的初始化有一个整体认识,以下基于spring的5.1.2.RELEASE分析,本文演示代码地址:htt…
1. 简介 本篇文章,我们来一起了解一下 Spring 是如何将配置文件中的属性值填充到 bean 对象中的.我在前面几篇文章中介绍过 Spring 创建 bean 的流程,即 Spring 先通过反射创建一个原始的 bean 对象,然后再向这个原始的 bean 对象中填充属性.对于填充属性这个过程,简单点来说,JavaBean 的每个属性通常都有 getter/setter 方法,我们可以直接调用 setter 方法将属性值设置进去.当然,这样做还是太简单了,填充属性的过程中还有许多事情要做.…
简介 Mybatis 是一个持久层框架,它对 JDBC 进行了高级封装,使我们的代码中不会出现任何的 JDBC 代码,另外,它还通过 xml 或注解的方式将 sql 从 DAO/Repository 层中解耦出来,除了这些基本功能外,它还提供了动态 sql.延迟加载.缓存等功能. 相比 Hibernate,Mybatis 更面向数据库,可以灵活地对 sql 语句进行优化. 本文继续分析 Mybatis 的源码,第1点内容上一篇博客已经讲过,本文将针对 2 和 3 点继续分析: 加载配置.初始化S…
之前两篇博客springMVC源码分析--HandlerMethodReturnValueHandler返回值解析器(一)和springMVC源码分析--HandlerMethodReturnValueHandlerComposite返回值解析器集合(二)我们分别介绍了返回值处理器相关的东西,接下来我们选取一个简单的实现类ViewNameMethodReturnValueHandler来简单介绍一下返回值处理操作. 1.返回值为jsp页面地址 @RequestMapping(value = "i…
在上一篇博客springMVC源码分析--HandlerMethodReturnValueHandler返回值解析器(一)我们介绍了返回值解析器HandlerMethodReturnValueHandler,接触到了HandlerMethodReturnValueHandlerComposite,简单来说HandlerMethodReturnValueHandlerComposite其实就是springMVC提供的所有的HandlerMethodReturnValueHandler集合,它定义了…
1.C++标准库和STL C++标准库以header files形式呈现: C++标准库的header files不带后缀名(.h),例如#include <vector> 新式C header files 不带后缀名.h,例如#include<cstdio> 旧式C header files (带有后缀名.h)仍然可用,例如#include <stdio.h> 新式headers内的组件封装于namespace “std”.     using namespace s…
前面一篇文章从Executors中的工厂方法入手,已经对ThreadPoolExecutor的构造和使用做了一些整理.而这篇文章,我们将接着前面的介绍,从源码实现上对ThreadPoolExecutor在任务的提交.执行,线程重用和线程数维护等方面做下分析. 0.    ThreadPoolExecutor类的声明属性变量分析 1 public class ThreadPoolExecutor extends AbstractExecutorService 从这个类声明中我们可以看到java.u…
以STL 的运用角度而言,空间配置器是最不需要介绍的东西,它总是隐藏在一切组件(更具体地说是指容器,container)的背后,默默工作默默付出. 一.分配器测试 测试代码 #include <list> #include <stdexcept> #include <string> #include <cstdlib> //abort() #include <cstdio> //snprintf() #include <algorithm&…
一.摘要 STL的空间分配器(allocator)定义于命名空间std内,主要为STL容器提供内存的分配和释放.对象的构造和析构的统一管理.空间分配器的实现细节,对于容器来说完全透明,容器不需关注内存分配和回收的策略细节如何. STL allocator需实现如下4个标准接口 pointer all…
Why underscore 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. 阅读一些著名框架类库的源码,就好像和一个个大师对话,你会学到很多.为什么是 underscore?最主要的原因是 underscore 简短精悍(约 1.5k 行),封装了 100 多个有用的方法,耦合度低,非常适合逐个方法阅读,适合楼主这样的 JavaScript 初学者.从中,你不仅可以学到用 void 0 代替 undefined 避免 u…
本章节我们重点分析Cocos2d-x3.0与 场景.层相关的源码.这部分源码集中在 libcocos2d –> layers_scenes_transitions_nodes目录下面 我先发个截图大家了解一下都有哪些文件.红色框里面的就是我们今天要分析的文件. 从命名上可以了解,这个文件夹里的文件主要包含了  场景,层,变换这三种类型的文件. 下面我们先分析Scene类 打开CCScene.h文件 /** @brief Scene is a subclass of Node that is us…
由于本人阅读喜欢使用source insight.前段时间接触了linux核代码,而这份代码只能放在ubuntu服务器上编译,刚开始的时候是在windows上修改,完了之后再copy到服务器上去编译,这样很麻烦,效率也很低,经过网上搜索和向别人请教之后,终于可以正常使用了. 1.使用SSH工具在ubuntu上Git clone代码之后,必须修改文件的权限:sudo chmod 777 xxx -R :777为拥有所有权限,详细自己去网上查,xxx为项目文件夹,-R是递归到所有子文件(夹),我第一…
前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 说点什么.. 本篇..基本可以算是Xamarin在应用开发过程中的核心了..真的很很很重要.. 想学习的..想用的..建议仔细阅读..嗯..打酱油的 ..快速滑倒下面点个推荐 - - 哈哈哈... 今天的学习内容? 也只讲一个,关于Xamarin.Forms针对各个平台如何进行可定制化的布局操作. 也就是针对某个平台的细颗…
最近为了做Hyperledger Fabric国密改造,涉及到了golang源码的改动.特将操作过程整理如下,以供参考: golang的源码安装其实比较简单,只需运行源码包中的脚本src/all.bash,等到出现类似以下字样就安装好了: Installed Go for linux/amd64 in xxx(目录地址) Installed commands in xxx(目录地址) 但是在源码安装1.5版本以上的go时会报以下的错误 : ##### Building Go bootstrap…
1.解压apk文件,获取classes.dex并拷贝到资源根目录(使用zip或其他解压工具即可) 2.使用baksmali工具将classes.dex转为smali文件,在命令行定位到资源根目录并执行: java -jar baksmali-2.0.3.jar -x classes.dex 执行完后会在当前目录下生成out目录,目录结构跟源码相同,在对应目录下查找对应的smali文件 3.使用smali-2.0.3.jar工具把smali文件转为dex文件,把命令行定位到资源根目录并执行: ja…
前言 在Spring中AOP是我们使用的非常频繁的一个特性.通过AOP我们可以补足一些面向对象编程中不足或难以实现的部分. AOP 前置理论 首先在学习源码之前我们需要了解关于AOP的相关概念如切点切面等,以及如何使用AOP,这里可以看我之前的文章:Spring系列之AOP的原理及手动实现 创建AOP相关对象 对于Java这种面向对象语言来说任何功能的实现都是依赖于对象,AOP也不例外. 首先我们先来准备好在配置文件中配置好AOP相关的属性. spring.xml <bean id="as…
上周在定位问题时,发现Spring容器实例化Bean的时候抛出异常,为了查看更详细的信息,决定修改spring-context-4.0.2.RELEASE.jar中的CommonAnnotationBeanPostProcessor类的代码,在里面打印出更详细的信息,以便我们分析和定位问题,下面我们一步一步通过实战来修改和编译spring-context的源码: 下载源码 下载源码的第一步,是找个用到了spring-context-4.0.2.RELEASE.jar的java工程,如果读者您手里…
nginx + mysql + php安装 引言 完整的搭建一个nginx+php-fpm+mysql的服务器,一直是我向做的,不过一致没有完成过,这次工作需要,终于安装成功了 我列出了我遇到的一些问题,当然可能读者自己尝试的时候还会有些问题,可以贴出来一起讨论讨论. 这里的创建用户组什么的也省略掉了,想看的可以看参考链接里面的内容. github里面有详细的安装步骤,和用到的大部分软件源码包,下面是github地址 https://github.com/aizuyan/install-php-…