自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (9)
  • 收藏
  • 关注

原创 javaCC---可读到可编程的桥梁

简单来说,javacc是一套词法、语法解析器。我们的java程序代码就是通过javacc进行前置的编译处理,对合法性进行校验,并生成对应的抽象语法树(AST),然后基于此做各种编译提示和编译优化的。...

2022-07-12 20:39:23 1480 1

原创 calcite是什么

calcite是什么calcite对外宣称,是新一代的高性能数据库。关系代数

2022-04-14 14:28:34 801

原创 calcite解读专栏前言

前言下定了很大决心,终于决定写一个专栏。某种意义上来讲,这也是一种立flag,倒逼自己的行为。最后有没有打脸暂且不论,开个头总是好的。决定以calcite作为对象,是因为目前工作主要接触到就是它。作为Olap引擎中sql解析和优化的事实标准,caclite有其独特的优势。我个人理解,主要是以下几点:轻量,足够轻量,让其被引入的成本低;扩展性强,在calcite设定的框架下,扩展优化规则和一些代价计算算法十分容易;sqlNode和relNode模型抽象简易,sql标准支持成熟。虽然calcit

2022-04-12 21:13:12 1197

原创 链表反转

初始化结构数据public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } }ListNode n1 = new ListNode(1); ListNode n2 = new ListNode(2); ...

2020-04-08 14:18:39 154

原创 内存数据库

JAVA内存数据库使用demo博客分类: JAVAMySQLjavahsqldbjdbcderbysqlite上篇文章散仙,写了关于SQLite的使用,本篇我们看下几款JAVA开源的数据库,主要有3个,derby,H2,HSQLdb,都是非常不错的数据库,既可以当内存库,又可以嵌入移动设备充当数据存储的角色,而且完全支持关系型数据库的SQL语法,所以适当了解一些,对以后的数据存储的,或计算会...

2019-09-25 15:26:03 1216

转载 BigData-‘基于代价优化’究竟是怎么一回事?

本文系转载,如有侵权,立删还记得笔者在上篇文章无意中挖的一个坑么?如若不知,强烈建议看官先行阅读前面两文-《SparkSQL – 有必要坐下来聊聊Join》和《BigData – Join中竟然也有谓词下推!?》。第一篇文章主要分析了大数据领域Join的三种基础算法以及各自的适用场景,第二篇文章在第一篇的基础上进一步深入,讨论了Join基础算法的一种优化方案 – Runtime Filter...

2019-06-27 14:26:50 249

原创 类和接口

类和接口的设计,作者主要阐述了几个观点:尽量多用接口,少用抽象类将标签类抽取类层次,降低复杂度如果一定是is-a的关系,采用继承,否则优先使用聚合接口优于抽象类java为了降低复杂度,减少菱形继承带来的危害,规范上只允许继承(extends)单个类,但是允许实现(implements)多个接口。这意味着,如果要让一个类具备多种能力,实现接口是最佳的方式。但是抽象类就一定不可取吗?...

2019-04-24 16:56:36 997

原创 我的书单

架构《企业应用架构模式》 Martin Fowler《软件架构实践》林马斯《Clean Architecture》《微服务设计》 Sam NewMan《领域驱动设计》Eric Evans

2019-03-06 19:29:56 231

原创 Linux常用指令备忘

挂载CD,共享盘mount -t cifs //10.19.133.12/共享文件夹 -o username=lfz 目的文件夹路径设置linux主机ip和网关,重启失效ifconfig eth0 192.168.1.20 netmask 255.255.255.0route add default gw 192.168.1.254

2016-10-19 16:04:16 242

原创 简单的C++反射实现

java和c#等高级语言拥有反射机制,可以通过字符串很方便的生成对应实体。这极大的方便了对象的序列化及对象的生产效率。C++开发人员一直想要这么一个机制,希望仅通过配置文件就可以改变程序的行为却不需要修改代码。现实是,我们将希望寄托在工厂类上,需要修改行为,则需要修改工厂的生产产品。尽管将修改集中于一处或者几处,但仍旧是修改了代码,不够完美。所以C++能不能拥有反射机制呢?

2016-08-03 20:52:30 696

原创 c/c++奇技淫巧

一. 变长数组严格说来,变长数组的实现在c++中并不是一件麻烦的事情。Stl中的vector本身就是一个变长数组,并且有自动管理内存的能力。 但是在c中,实现变长数组就稍显麻烦。用C实现,必然需要一个结构,结构当中应当有一个指针,指针分配一段内存空间,空间大小根据需要而定,而且必须有另外一个字段记录究竟开辟了多大多长的空间。

2016-08-03 20:15:06 1425

转载 VS2008的程序,运行时遇到R6034错误:

An application has made an attempt to load the C runtime library without using a manifest.

2016-04-14 10:18:45 1415

原创 QT编码问题之不规则对话框的实现

qt中实现不规则对话框有两种简单方式,一种是调用绘图函数自行绘制,一种是用qt的style sheet实现。

2016-03-16 14:51:50 692

原创 常用工具类之C++线程安全集合类

C++本身并未提供线程安全的集合类,这里封装几个常用集合操作

2016-03-10 14:19:40 2171

原创 windows下的函数耗时统计工具

先上代码:#include <Windows.h>/** @class CFuncTimeTestter * @brief 函数执行时间测试器 */class CFuncTimeTestter{public: explicit CFuncTimeTestter(const std::string& moduleName="", const std::string& test

2016-03-09 09:48:10 685

原创 OCX的调试

OCX实际上还是一种dll,只不过暴露的接口能够被web直接访问。在vc6.0时代,有提供ocx容器进行接口的测试,但是在新版的vs2008以及后续版本的vs工具中,该工具已被移除。那么,我们该如何方便的对ocx进行调试呢? 既然ocx是被web调用的,我的思路是直接用html写一段测试代码。但是怎么进行调试呢? 上图中的Command和CommandArgument是关键所在——C

2016-03-05 11:16:14 1000

原创 守护进程的开发

所谓守护进程,顾名思义是通过另一个进程对某个重要的进程进行保护,防止被保护进程异常退出,与看门狗功能类似。编写此类功能,思路非常简单,首先我们需要一个定时任务对所有的进程进行扫描,然后核对需要守护的进程的相关信息如进程名,是否在系统进程列表中,如果不在则表示进程已经退出,需要通过编码方式启动被守护进程。

2016-03-03 15:33:08 441

转载 Windows调试——使用windbg查找内存泄露

内存泄露查找方法C++程序员经常不注意内存使用的关闭,虽然此类问题不会导致程序逻辑问题,但随着时间的推移,内存占用量越来越多,最终导致程序崩掉。对服务端的程序,内存泄漏经常是致命的。 对于已经存在内存泄露的程序,可能Windbg查找内存泄露的代码。下面介绍如果通过Windbg查找内存泄露。Windbg 加载程序依赖库所用pdb文件。挂载进程或者加载已生成的pdb文件输入命令查看内存。3.1

2016-02-23 20:35:40 5927

转载 Windows调试——死锁的查找

首先看看什么是死锁呢?死锁是指两个或两个以上的线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。 1) 先用!locks查看所有的线程占用的锁 注意,该指令在新版本的windbg中已经无法使用。需要使用的话必须切换版本到dbg_x86_6.10.3.233.msi。 这里可以看到有三个线程正在等待三个锁,第一个线程等待的锁是0043a620

2016-02-23 20:07:31 3570

原创 Windows调试——基本知识

基本寄存器和反汇编知识 EBP: 扩展基址指针寄存器(extended base pointer) 其内存放一个指针,该指针指向系统栈最上面一个栈帧的底部。 ESP: 栈顶指针,用于指向栈的栈顶(下一个压入栈的活动记录的顶部),而EBP为帧指针,指向当前活动记录的底部。 EIP: 指令寄存器,存放当前指令的下一条指令的地址。CPU该执行哪条指令就是通过IP来指示的。具体代码: 反汇编代码:#

2016-02-23 19:01:30 660

转载 VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确,应用程序未能启动”的问题

VC9编译的程序在没有装过VC9(确切的说是.Net Framework3.5)的机器上运行时,如果提示“由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。”这个错误,那么就说明该程序动态链接了VC9的运行时库,(如果还用到了MFC,那么可能动态链接了VC9的MFC库,同理还有ATL库),以及缺少对应的manifest文件,程序在目标机器上没有找到这些库和配置文件,因此导

2016-02-23 15:52:22 681

转载 vs2008突然不能使用查找功能了

查找全部 “xxx”, 大小写匹配, 全字匹配, 查找结果 1, “整个解决方案”, “.” 找不到要查找的文件。 查找进行的过程中被停止。 . VS”Find in Files”失效的解决方法一: 让VS窗口获得焦点,依次按以下快捷键 Ctrl+Break Ctrl+Scroll Lock Alt+BreakVS”Find in Files”失效的解决方法二: 在注册表中删除”HK

2016-02-23 15:33:35 750

原创 给VC程序添加版本号与编译时间

一般来说,发布的正式软件都会包含程序的svn版本号以及软件的编译版本和编译时间等信息,但是这些东西并不是默认就存在的,需要我们进行一些步骤的处理。具体做法有几种,万变不离其宗的是,利用SVN自带的指令获取到版本号以及当前时间,填充模板当中的占位符,最后用替换后的模板覆盖资源文件即可。这里只讲最简单的一种:

2016-02-23 14:59:13 4410

原创 dll动态加载,LoadLibrary和LoadLibraryEx的区别

如果一个dll存在其他dll依赖,且不再相同目录,则需要使用Ex接口 具体说来若DLL不在调用方的同一目录下,可以用LoadLibrary(L”DLL绝对路径”)加载。但若调用的DLL内部又调用另外一个DLL,此时调用仍会失败。解决办法是用LoadLibraryEx: LoadLibraryEx(“DLL绝对路径”, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);

2016-02-23 11:25:58 32234

转载 PCLint与VS集成

网上关于工程lnt的创建非常难找,特整理如下:

2016-01-25 13:59:03 2045

c++语言的设计和演化

c++怨言的设计和演化,c++之父经典巨著

2015-06-14

深度探索c++对象模型

深度探索c++对象模型,理解c++的底层机制

2015-06-14

Qt程序设计

这本书对于qt的内层机制有一定的阐述,属于qt中阶读物

2015-06-14

Linux常用命令全集.CHM

linux常用的指令大全,而且是chm格式,支持快速检索,非常好用。

2015-06-14

人月神话,软件工程的圣经

这本人月神话,是项目管理人员一直引为经典的读物,推荐!

2014-01-10

vc助手1854

vc助手,1854版本。功能大改进,提示更强大。

2012-11-20

vc助手1837版本

vc破解助手,开发利器。附破解文件. 用过之后,才知道什么叫爱不释手,欲罢不能

2012-05-15

vc wndtab,可以使vc多标签显示

vc6.0一下只能打开一个cpp文件,但是有了它之后,你可以随心所欲的打开你想要的文件!

2010-12-10

vc6.0最好用的助手+注册机

vc上最好用的插件,让你用了之后再也离不开它。 完美提高编程速度!

2010-12-10

空空如也

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

TA关注的人

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